控件内页面标题上的ViewState

时间:2011-09-21 21:32:11

标签: c# asp.net webforms header viewstate

我将js文件添加到代码隐藏的标题中,如下所示:

protected void Page_PreRender(object sender, EventArgs e)
{
        if (!IsPostBack)
        {
            HtmlGenericControl js = new HtmlGenericControl("script");
            js.Attributes["type"] = "text/javascript";
            js.Attributes["src"] = "/js/jquery.js";
            js.ID = "jquery";
            js.EnableViewState = true;
            Page.Header.Controls.Add(js);
        }
}

这在页面加载时工作得很好,但是我在回发时失去了js,我期待我的控件在HtmlGenericControl的ViewState启用后仍然存在......

是否可以在标题上保留ViewState,还是每次都要删除if (!IsPostBack)条件以添加js?

1 个答案:

答案 0 :(得分:1)

您的控件是动态添加的,只有!IsPostBack时,ViewState才能保留值和状态,但控件必须在页面上独立存在。

在回复后的情况下,控件将不会被添加,因此即使ViewState包含其状态,也无法控制将此状态附加到。