如何在运行时添加新列?

问题描述:

我需要在Asp.net MVC中构建一个应用程序,其中用户将在视图中呈现数据,如表格。现在用户需要能够向表中添加新列,然后输入新列的数据并保存。我的问题是如何动态添加列,以及如何将这些数据保存在后端?如何在运行时添加新列?

任何建议,意见或现有项目的链接做类似的赞赏。

+2

你应该发布你迄今为止得到的。我们应该从头开始写一切吗? – gdoron 2012-04-16 19:57:57

+1

你的问题太广泛了。你需要几件事情;用户指定新列的方式,将列添加到数据库的方式,用户使用新列执行数据输入的方式以及该列自动出现在新呈现的数据中的方式。另请参阅http://en.wikipedia.org/wiki/Inner-platform_effect – 2012-04-16 20:03:22

+0

我在寻求一些指导,因为我不知道如何解决这个问题。 – 2012-04-16 20:15:38

这只能用一些动态AJAX来完成。您将而不是能够为新列创建视图模型或使用助手;并且必须使用javascript收集数据(在使用javascript或jQuery动态显示新列之后),然后放入JSON数组并发布到动作,然后动作使用现有数据库上下文直接执行SQL向现有表添加一行的脚本(可以说安全风险?),然后插入从JSON发布的数据,并以某种方式将其与任何其他数据表示的相关联。

你最好隐藏一些列,然后让用户选择通过某种选择来“添加”它们。这样,您就可以在数据库中拥有这些列,并且您不必担心恶意用户会通过注入破坏数据库。

+0

我没有考虑它形成veiw的注入点,这是有道理的。 – 2012-04-16 20:20:08

一种可能的方式是通过ajax和jquery。你可以给用户一种通过链接添加新列的方法,如果它总是只有一次,请在html中包含该列,但将其设置为隐藏,然后将其切换为可见。如果它不止一列,那么你必须在表中的最后一列包含一个类,然后在此之后使用jquery添加一个额外的列。

将数据发回数据库将会是更大的挑战。再次,如果它是一个单一的列,那么你可能可以将它包含在视图模型中并随时进行填充,但如果它是多列而不是固定数量,那么你将不得不做一些棘手的JSON来将其发回数据库。

+0

你的权利这是保存我困惑的数据。 – 2012-04-16 20:31:13