如何在运行时添加新列?

时间:2012-04-16 19:56:52

标签: asp.net asp.net-mvc asp.net-mvc-3

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

任何有关类似事情的现有项目的建议,评论或链接都表示赞赏。

2 个答案:

答案 0 :(得分:1)

这只能通过一些动态ajax来完成。您将能够为新列提供视图模型或使用帮助程序;并且必须使用javascript收集数据(在使用javascript或jQuery动态呈现新列之后),然后将其放入JSON数组并发布到操作,然后操作使用现有数据库上下文直接执行SQL脚本向现有表添加一行(你能说安全风险吗?)然后插入从JSON发布的数据,并以某种方式将其与所代表的其余数据相关联。

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

答案 1 :(得分:0)

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

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