我启用smart navigation后。      
用RegisterClientScriptBlock注册到客户端的javascript函数中会弹出一个alert窗口。      
但是每次Postback后,在我没有调用RegisterClientScriptBlock的情况下都会弹出那个窗口。      
如果把smart navigation去掉后就不会出现这种问题了。      
请问是怎么回事?要怎么解决?

解决方案 »

  1.   

    终于看见有人问关于smart  navigation的问题,这是可能是因为启动smart  navigation后它首先显示的是历史页面以避免白屏,改用Page.RegisterStartupScript 试试
      

  2.   

    同意 Eddie005(暴走005) 
    改用Page.RegisterStartupScript 试试
      

  3.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=3D5C9BED-5F15-4116-C3FE-662DE4B48864
      

  4.   

    改用Page.RegisterStartupScript 试试
      

  5.   

    取代smartnavigationprivate void RetainScrollPosition()
    {
    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,即可
      

  6.   

    试过了RegisterStartupScript,不行。To:etuchang(結貼是出了名的快!) 
    你这种方法我也试过了,用RegisterClientScriptBlock注册的alert窗口弹不出来了,而且不能够保存横向滚动条的位置。