根据用户输入向表中添加行(ASP.NEt)

时间:2010-01-19 06:29:13

标签: c# asp.net dynamic-data

我有一个TextBox输入字段,用户将在其中输入一个整数值。然后有一个“创建”按钮,单击该按钮时必须生成一个包含2列的表: “名称”和“电子邮件”是列标题。

我希望每一行在每个列中都有一个文本框。

点击按钮后,所有这一切都必须发生。我发现如果你在ASP.NET中动态添加一个控件(我正在使用C#),那么在回发期间控件会丢失。我不知道如何防止这种情况发生。

有人可以给我一些关于如何动态地向表添加行的想法(我尝试使用asp.net服务器端表控件但遇到了“丢失在回发期间”的问题 - 我可以试试吗像gridview这样的其他东西?但如果没有数据绑定,GV将无法工作)

要注意的是,我的表具有用于用户输入的文本框,并且它不用于显示数据。而是用于接受来自用户的数据,该数据稍后将用于将详细信息保存到数据库。

1 个答案:

答案 0 :(得分:0)

动态控件

这涉及到了。关于动态控制问题,这是一个有趣的article

我认为通常如果您创建动态控件,那么您负责在回发时重新创建它们;但是,如果它与您的应用程序共存,则该文章包含使用Init事件的方法。

编辑:

或常规ASP.NET控件

您可以使用数据绑定的ASP.NET控件,如:DataList,Repeater,GridView等(您可以将文本框和所有其他类型的控件放入其中以便在每行中重复 - 或“item”)并绑定值它。如果您需要首先对用户输入执行某些处理,则生成内部数组,List,Dictionary,DataTable等(您的选择)并将该数据作为数据源绑定到所选的ASP.NET控件。

aspnetControl.DataSource = myDataTable;
aspnetControl.DataBind();

aspnetControl.DataSourceId = "name_of_control";

有多种方法可以分配数据源。

这样你就不会遇到与动态控件创建相同的问题;但是,要学习这种方式还有很多东西需要学习。