改变/更新动态创建的文本框

本文关键字:文本 创建 动态 更新 改变 | 更新日期: 2023-09-27 17:52:57

好的,在这个问题上取得了相当大的进展,但需要有高级ASP技能的人的协助。我使用后台代码用SQL查询的结果填充一个ASP表。只读值存储在一些表格单元格的.text中,而读写值存储在文本框控件(动态创建并添加到表格单元格中)的.text中。

这在第一次加载时运行良好。当使用不同的查询重新加载页面时(例如:用户选择了不同的列进行排序),表格单元格值重新正确填充,而文本框值保持不变。在查询之前抛出table.rows.clear()似乎并不能解决这个问题。

更多信息:

  • 我创建了一个使用table.findcontrol()擦除所有textbox.text值的方法。当绑定到按钮时,此方法可以正常工作(这表明findcontrol能够查找/更新文本框),尽管所有受影响的文本框在重新加载页面时仍保持空白。如果放置在页面加载中,该方法什么也不做(文本框保留其先前的值)。在调试模式下,findcontrol在按钮上使用时提取一个值,但在添加到页面加载时显示为空。我已经完成了table.rows.clear()的注释和未注释。
  • 我也试图把所有的代码扔进oninit。这似乎没有任何明显的区别。

改变/更新动态创建的文本框

必须在每个页面请求上添加动态控件,最好是在Init事件期间。听起来你并没有按时重建它们。

将它们添加到每个单独的页面请求中,作为页面生命周期的一部分,它们将从viewstate

接收它们的值

为了使动态控件保持其值,您需要:

)。确保页面的Viewstate是启用的。b。)在每次页面加载时重新创建控件,确保创建的控件具有与最初提供给控件的相同的id。此外,您需要在加载视图状态之前执行此操作(最好是在Onit或PreInit方法中)。在这里查看页面生命周期:http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx