【问题标题】:Persisting user control values afer postback in asp.net在 asp.net 中回发后保留用户控制值
【发布时间】:2011-06-01 14:27:47
【问题描述】:

根据用户从组合框中的选择,我将一些用户控件添加到 aspx 表单中。 我有一个用户控件,其中有一个文本框和一个返回文本框值的 getValue() 方法。

用户选择相关项目后,我加载控件并使用 loadControl 方法添加到面板。用户输入一些文本。回发后,我想保持用户控件和用户输入之前的状态相同。

希望这很清楚。

【问题讨论】:

    标签: c# asp.net user-controls dynamic postback


    【解决方案1】:

    将有一个两步过程。

    1. 确保在 Page_Init 方法上将控件添加到页面
    2. 然后您可以使用 ViewState (ViewState["MyKey"] = "My Value";) 来存储和检索值。

    这里的关键是您必须在 Init 中添加控件才能加载视图状态。

    【讨论】:

    • 正确,但是要添加一件事,如果您在 page_init 方法中动态添加控件并为控件启用视图状态,它应该满足您的需求。无需将值显式存储在状态包中。
    【解决方案2】:

    您可以使用 ViewState 将您喜欢的任何内容添加到页面状态。

    ViewState["myvalue"] = "?";

    通过这种方式,您可以在未来的回发中检查以前的值,如下所示:

    someVariable = ViewState["myvalue"];

    更好的是,您可以将其封装在页面上的属性中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多