我启用smart navigation后。
用RegisterClientScriptBlock注册到客户端的javascript函数中会弹出一个alert窗口。
但是每次Postback后,在我没有调用RegisterClientScriptBlock的情况下都会弹出那个窗口。
如果把smart navigation去掉后就不会出现这种问题了。
请问是怎么回事?要怎么解决?
用RegisterClientScriptBlock注册到客户端的javascript函数中会弹出一个alert窗口。
但是每次Postback后,在我没有调用RegisterClientScriptBlock的情况下都会弹出那个窗口。
如果把smart navigation去掉后就不会出现这种问题了。
请问是怎么回事?要怎么解决?
改用Page.RegisterStartupScript 试试
{
StringBuilder saveScrollPosition = new StringBuilder ();
StringBuilder setScrollPosition = new StringBuilder (); RegisterHiddenField("__SCROLLPOS", "0"); saveScrollPosition.Append("<script language='javascript'>");
saveScrollPosition.Append("function saveScrollPosition() {");
saveScrollPosition.Append(" document.forms[0].__SCROLLPOS.value = MyBody.scrollTop;");
saveScrollPosition.Append("}");
saveScrollPosition.Append("MyBody.onscroll=saveScrollPosition;");
saveScrollPosition.Append("</script>"); RegisterStartupScript("saveScroll", saveScrollPosition.ToString()); if (Page.IsPostBack)
{
setScrollPosition.Append("<script language='javascript'>");
setScrollPosition.Append("function setScrollPosition() {");
setScrollPosition.Append(" MyBody.scrollTop = " + Request["__SCROLLPOS"] + ";");
setScrollPosition.Append("}");
setScrollPosition.Append("MyBody.onload=setScrollPosition;");
setScrollPosition.Append("</script>"); RegisterStartupScript("setScroll", setScrollPosition.ToString());
}
}
#endregionpage_load 时,执行RetainScrollPosition()
页面html中,body加id=MyBody,即可
你这种方法我也试过了,用RegisterClientScriptBlock注册的alert窗口弹不出来了,而且不能够保存横向滚动条的位置。