我有一个服务器端表控件。由于我不知道它预先有多少行和列,我在我的页面Form_Load
事件处理程序中构建了该表的内容。
效果很好。但我正在使用文本框填充相同的表,如果单击提交按钮,我需要能够读取这些文本框。
目前看来,表格内容在回发时会被清除。
在表格中动态创建文本框,然后在回发页面时读取这些文本框的值的最佳方法是什么?
答案 0 :(得分:1)
如果要在回发上保留值,则需要在Page_Init
事件上重新创建表控件层次结构。这通常意味着您需要将表控件重新绑定到来自数据库的数据结构。
一旦控制层次结构到位,ASP.NET将加载ViewState
中的任何数据。该数据实际上可以是先前从文本框上的服务器设置的数据。此步骤将确保在控件上保留这些值。
在下一步中,ASP.NET将处理POST数据,这里基本上将使用客户端(浏览器)的输入更新表文本框。从ViewState设置的任何值都将(很可能)被覆盖。
所有这些都发生在Page_Load
之前,因此在此阶段您应该能够访问客户端文本框值。
查看ASP.NET Page Life Cycle,尤其是this图片。