用户控件在updatepanel内包装时的一次处理

时间:2012-09-20 15:52:56

标签: c# asp.net

使用会话状态的值初始化控件的传统方式如下 -

if (!IsPostBack)
        {
            if (Session["sessionId"] != null)
            {
                //initialize controls
            }
        }

用户控件包装在更新面板中时出现意外行为。

我需要首次从会话状态填充usercontrol textBox值。并且应该从viewState填充后续加载这些控件值。

您如何处理这种情况。您认为 Page.IsAsync 会对此有所帮助吗?

1 个答案:

答案 0 :(得分:1)

IsPostback属性返回true,即使从控件发出回发,也放在UpdatePanel中。因此,可以使用IsPostBack属性在第一页加载时进行控件初始化。

顺便说一句Page.IsAsync属性用于完全不同的目的,而不是用于检测异步回发。如果需要从UpdatePanel检测异步回发,请检查ScriptManager.IsInAsyncPostBack属性