【问题标题】:access values of controls dynamically created on postback访问回发时动态创建的控件的值
【发布时间】:2010-06-11 02:06:00
【问题描述】:

我的问题是: 我有一个动态创建的表格,里面有很多下拉列表,女巫的 ID 是动态创建的。

当按下按钮时,我需要扫描表格中的所有控件并保存它们的值。

但是在回发之后,我无法再访问该表,而且我不知道如何获得这些值...

谢谢!

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    必须在事件 Init 或 PreInit 的每次回发时(在加载 ViewState 之前)再次创建动态创建的控件,否则您将无法检索它们的值。

    一些参考链接

    http://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic4

    http://aspnet.4guysfromrolla.com/articles/081402-1.aspx

    http://aspnet.4guysfromrolla.com/articles/082102-1.aspx

    【讨论】:

    • +1 只要不重置值,您也可以在 Page_Load() 事件中执行此操作。
    • 其实我想查询一下是否可以在Page_Load中进行。我尝试了 Page_Load() 事件(除了再次创建控件之外没有其他任何事情发生)并且它没有将值绑定回控件。另外查看上面关于 ViewState 的 MSDN 文章,似乎 ViewState 加载发生在 Page_Load 事件之前。
    【解决方案2】:

    如果表单已发布,它们不应该在 Request.Forms 集合中。

    假设您将它们都以 dct 开头命名。

    然后您可以遍历集合并获取您需要的值。

    您可以使用 Request.Form("dct_001") 等访问这些值...

    由于查找是基于字符串的,您可以将其放入循环中以捕获值。

    顺便说一句,这种经典的 ASP 方法在 4.0 中仍然有效

    【讨论】:

    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多