我有一个TextBox输入字段,用户将在其中输入一个整数值。然后有一个“创建”按钮,单击该按钮时必须生成一个包含2列的表: “名称”和“电子邮件”是列标题。
我希望每一行在每个列中都有一个文本框。
点击按钮后,所有这一切都必须发生。我发现如果你在ASP.NET中动态添加一个控件(我正在使用C#),那么在回发期间控件会丢失。我不知道如何防止这种情况发生。
有人可以给我一些关于如何动态地向表添加行的想法(我尝试使用asp.net服务器端表控件但遇到了“丢失在回发期间”的问题 - 我可以试试吗像gridview这样的其他东西?但如果没有数据绑定,GV将无法工作)
要注意的是,我的表具有用于用户输入的文本框,并且它不用于显示数据。而是用于接受来自用户的数据,该数据稍后将用于将详细信息保存到数据库。
答案 0 :(得分:0)
这涉及到了。关于动态控制问题,这是一个有趣的article。
我认为通常如果您创建动态控件,那么您负责在回发时重新创建它们;但是,如果它与您的应用程序共存,则该文章包含使用Init事件的方法。
您可以使用数据绑定的ASP.NET控件,如:DataList,Repeater,GridView等(您可以将文本框和所有其他类型的控件放入其中以便在每行中重复 - 或“item”)并绑定值它。如果您需要首先对用户输入执行某些处理,则生成内部数组,List,Dictionary,DataTable等(您的选择)并将该数据作为数据源绑定到所选的ASP.NET控件。
aspnetControl.DataSource = myDataTable;
aspnetControl.DataBind();
或
aspnetControl.DataSourceId = "name_of_control";
有多种方法可以分配数据源。
这样你就不会遇到与动态控件创建相同的问题;但是,要学习这种方式还有很多东西需要学习。