【问题标题】:Button click event按钮点击事件
【发布时间】:2009-02-06 19:58:35
【问题描述】:

我在一个页面上有多个用户控件实例。它们也相互嵌套。由于这些控件是动态创建的,因此我无法维护它们的状态。我决定手动将状态保存到持久介质(可能是 Session)。

在主机页面上的按钮上的单击事件中,我想编写功能以在回发发生之前保存控件的状态(一旦有回发,控件就会重新创建并且我会丢失状态)。

如果我把这个逻辑放在按钮事件处理程序中,因为这是在回发之后执行的,所以我不再有信息了。

我应该重写哪个方法?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    尝试在页面初始化而不是加载时创建按钮。

    【讨论】:

      【解决方案2】:

      没有真正回答你的问题,但我很好奇为什么你的按钮布局会被重置。你是在通过 javascript 做事吗?

      您是如何创建按钮的。在 page_load 中?你在检查它的回发时间吗?

      protected void Page_Load(object sender, EventArgs e)
      {
          if(!Page.IsPostBack)
          {
              // load all buttons
              LoadButtons();
          }
      }
      

      【讨论】:

        【解决方案3】:

        听起来您正在重新创建回发控件,因此它们失去了状态。您应该使用 Page.IsPostBack 来防止这种情况。还要检查页面是否允许 Viewstate。

        【讨论】:

          【解决方案4】:

          实际上,您希望在 LoadViewState 方法覆盖中加载动态控件。不要试图自己维持状态;这是浪费时间。您只需要将代码放在正确的位置。

          My previous comments on this

          【讨论】:

            猜你喜欢
            • 2015-08-28
            • 2011-12-30
            • 2023-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多