按钮单击事件

时间:2009-02-06 19:58:35

标签: asp.net

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

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

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

我应该覆盖哪种方法?

4 个答案:

答案 0 :(得分:1)

尝试在Page Init中创建按钮,而不是在加载时创建按钮。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

听起来你正在重新创建回发控件,所以他们失去了状态。您应该使用Page.IsPostBack来防止这种情况发生。同时检查页面是否允许Viewstate。

答案 3 :(得分:0)

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

请参阅My previous comments on this