smartNavigation有存在Bug,但是具体在什么情况下产生的问题忘记了,而且我也用过,但是没有遇到过问题.如果是为了能够在PostBack之后保持scrollTop,可以类似这样
<body onscroll="GetPos()">
<input type="hidden" name="_ScrollPos" id="_ScrollPos">
<!-- another Server Control ->
</body>
</html>
<script language="Javascript">
function GetPos()
{
document.all._ScrollPos.value = document.body.scrollTop;
}
</script>
这样在Page_Load中可以通过判断
if(IsPostBack)
{
if(Request["_ScrollPos"]!=null&&Request["_ScrollPos"]!=String.Empty)
{
int pos = Convert.ToInt32(Request["_ScrollPos"].ToString());
Page.RegisterStartUpScript("onload",@"<script>document.body.scrollTop="+pos+"</script>"
}
}
<body onscroll="GetPos()">
<input type="hidden" name="_ScrollPos" id="_ScrollPos">
<!-- another Server Control ->
</body>
</html>
<script language="Javascript">
function GetPos()
{
document.all._ScrollPos.value = document.body.scrollTop;
}
</script>
这样在Page_Load中可以通过判断
if(IsPostBack)
{
if(Request["_ScrollPos"]!=null&&Request["_ScrollPos"]!=String.Empty)
{
int pos = Convert.ToInt32(Request["_ScrollPos"].ToString());
Page.RegisterStartUpScript("onload",@"<script>document.body.scrollTop="+pos+"</script>"
}
}