您的位置:首页 > 编程语言 > ASP

asp.net网页智能导航SmartNavigation的替代实现方式

2011-01-17 13:58 399 查看
http://czm600604604.blog.163.com/blog/static/825206820094215237512/

asp.net网页智能导航SmartNavigation的替代实现方式

在开发asp.net项目过程中,经常遇到页面智能导航的问题。在最开始使用asp.net提供的SmartNagivation,但是因为SmartNavigation是通过在网页中嵌入IFrame的方式实现的,经常会出问题。如在使用Frame的页面中使用会造成样式页失效,和校验控件一起使用时会有问题等等。从网上也搜集了很多资料,大部分都是通过javascript来保存网页当前视图位置的方式来实现的,使用起来经常还是会出现页面抖动。

偶尔发现了微软的一个示例中的解决方法,代码如下:

在Page_load中调用该函数,另外,在aspx页面中将body的id起名为thebody

大体上还是通过ViewState保存当前位置的方式来实现的,但是很好用。

posted on 2005-03-29 13:56 doudou 阅读(810) 评论(2) 编辑 收藏 网摘 所属分类: dribs and drabs



#1楼 回复 引用 #2楼 doudou

用C#也没有问题啊,这是我使用的方式

/// <summary>

/// page smart navigation function

/// ensure the body.id=thebody;

/// </summary>

/// <remarks>使用此函数时,一定要将body加上树型id="thebody",否则会出现javascript错误。</remarks>

protected void RetainScrollPosition()

{

StringBuilder saveScrollPosition =new StringBuilder ();

StringBuilder setScrollPosition =new StringBuilder ();

this.RegisterHiddenField ("__SCROLLPOS","0");

saveScrollPosition.Append("<script language='javascript'>") ;

saveScrollPosition.Append("function saveScrollPosition() {") ;

saveScrollPosition.Append(" document.forms[0].__SCROLLPOS.value = thebody.scrollTop;") ;

saveScrollPosition.Append("}") ;

saveScrollPosition.Append("thebody.onscroll=saveScrollPosition;") ;

saveScrollPosition.Append("</script>") ;

RegisterStartupScript("saveScroll", saveScrollPosition.ToString()) ;

if(Page.IsPostBack )

{

setScrollPosition.Append("<script language='javascript'>") ;

setScrollPosition.Append("function setScrollPosition() {") ;

setScrollPosition.Append(" thebody.scrollTop = " + Request["__SCROLLPOS"] + ";") ;

setScrollPosition.Append("}") ;

setScrollPosition.Append("thebody.onload=setScrollPosition;") ;

setScrollPosition.Append("</script>") ;

RegisterStartupScript("setScroll", setScrollPosition.ToString()) ;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: