我将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?
答案 0 :(得分:1)
您的控件是动态添加的,只有!IsPostBack
时,ViewState才能保留值和状态,但控件必须在页面上独立存在。
在回复后的情况下,控件将不会被添加,因此即使ViewState
包含其状态,也无法控制将此状态附加到。