好的,在这个方面做得很好,但是需要具有优秀ASP技能的人的帮助。我正在使用代码来填充ASP表以及SQL查询的结果。只读值存储在某些表格单元格的.text
中,而读写值存储在.text
文本框控件中(动态创建并添加到表格单元格中。)
这在第一次加载时工作正常。当页面使用不同的查询重新加载时(例如:用户选择不同的列来排序),表格单元格值正确地重新填充,而文本框值保持不变。在查询之前投入table.rows.clear()
似乎无法解决此问题。
更多信息:
textbox.text
擦除所有table.findcontrol()
值的方法。绑定到按钮时,此方法适用于规范(指示findcontrol能够查找/更新文本框),但如果重新加载页面,则所有受影响的文本框仍为空白。如果置于页面加载中,则该方法不执行任何操作(文本框保留其以前的值。)在调试模式下,findcontrol在按钮上使用时会拉取一个值,但在添加到pageload时会显示为null。我使用table.rows.clear()
评论和取消评论完成了此操作。oninit
。这似乎没有任何明显的区别。答案 0 :(得分:2)
必须在每个页面请求上添加动态控件,最好在Init
事件期间添加。听起来你没有按时重新创建它们。
在每个页面请求中添加它们,并且作为页面生命周期的一部分,它们将从viewstate
答案 1 :(得分:0)
为了让动态控件保留其值,您需要:
a。)确保为页面启用了Viewstate。 b。)在每个页面加载上重新创建控件,确保使用与最初为控件提供的ID相同的控件创建控件。您还需要在加载视图状态之前执行此操作(最好是在Onit或PreInit方法中。请参阅此处的页面生命周期:http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx