单击WEB控件引发页面刷新时定位页面?(智能导航的替代方式)
2008-08-11 22:19
495 查看
在开发asp.net项目过程中,经常遇到页面智能导航的问题。在最开始使用asp.net提供的SmartNagivation,但是因为SmartNavigation是通过在网页中嵌入IFrame的方式实现的,经常会出问题,譬如FreeTextBox等编辑器失效。如在使用Frame的页面中使用会造成样式页失效,和校验控件一起使用时会有问题等等。从网上也搜集了很多资料,大部分都是通过javascript来保存网页当前视图位置的方式来实现的,使用起来经常还是会出现页面抖动。
代码如下:
#region "防止页面滚动"
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());
}
}
#endregion
在Page_load中调用该函数,另外,在aspx页面中将body的id起名为thebody , 设置页面的ViewState为true 。
代码如下:
#region "防止页面滚动"
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());
}
}
#endregion
在Page_load中调用该函数,另外,在aspx页面中将body的id起名为thebody , 设置页面的ViewState为true 。
相关文章推荐
- 如何在单击WEB控件引发页面刷新时定位页面?(不使用智能导航)
- 如何在单击WEB控件引发页面刷新时定位页面?
- asp.net网页智能导航SmartNavigation的替代实现方式
- Javascript实现页面滚动时导航智能定位
- TreeView 滚动条 子节点定位 页面回发刷新后,滚动条自动定位到被选择节点出,javascript库jQuery实现 兼容服务器端控件
- asp.net网页智能导航SmartNavigation的替代实现方式
- asp.net网页智能导航SmartNavigation的替代实现方式(C#保存)
- 选中Tab控件单击事件,点击tab头,定位到导航栏的选项,为选中状态 ,DevExpress.XtraNavBar.NavBarControl 导航控件定位或选中状态 另导航的选项为选中状态.
- asp.net网页智能导航SmartNavigation的替代实现方式
- 用web用户控件的方式添加到webpart,使用ajax实现无刷新总结
- Selenium Webdriver元素定位的八种常用方式
- jQuery实现页面滚动时层智能浮动定位
- 多个UpdatePanel控件相互引发刷新的使用 (二)
- .Net刷新页面的几种方式
- 在webForm中WebRequest\WebClient\WebBrowser获取远程页面源码的三种方式(downmoon)
- 刷新页面实现方式总结(HTML,ASP,JS)
- 刷新页面实现方式总结(HTML,ASP,JS)
- Web页面测试总结——控件类
- 随心所欲学Java - Swing国际化,控件实时刷新观察者方式实现 推荐
- [转]解决FLASH在页面上出现“单击以激活控件”问题