2011-01-06 44 views
1

我写的函数的代码来创建动态表后面的控制上的SelectedIndexChanged复选框, 那就是当使用者将检查2代checkboxex 2表将与文本框来产生,找到从动态创建的表

然后在按钮点击我想插入这些文本框数据库, 的,我想使用的FindControl找到文本框的值,但我无法找到它,

因此,我呼吁在页面加载, 创建表的相同的功能,但随后显示错误该文本框有重复的ID

Plz告诉我这个解决方案。

感谢

+0

你可以包含代码片段吗?这听起来像是你创建表两次,一次在Page_Load上,一次在SelectedIndexChanged上,导致重复的ID。在这种情况下,您根据用户输入创建控件,必须在Page_Load之前重新创建它们,以便捕获回发数据,但在用户启动的事件可以重新创建它们之前销毁它们。 – 2011-01-06 13:52:41

回答

1

当您创建动态控件,您需要重新创建他们在每次回发。

最好的地方是在OnInit事件处理程序中。在复选框的SelectedIndexChanged事件处理程序中执行此操作的问题是,在回发时它们不会被重新创建并且无法访问。

查看this文章的详细内容,也许还可以在asp.net page life cycle上阅读。

+0

我试过这个,但它给错误重复的文本框ID不允许,PLZ给这个解决方案 – tina 2011-01-06 13:47:36

+0

@tina - 你应该给每个表和其他动态添加的控件一个_different_ ID。 – Oded 2011-01-06 13:49:54

1

使用runat =“Server”在页面上添加一个div,并为其指定一个ID,例如div1。 表添加到这个div但你应该总是写

div1.Controls.Clear(); 

在第一然后再添加表到div。