js高手,想挑战的进~~~~~
asp.net的页面 中下方有 DropDownList ,在每次从DropDownList 取值后,页面都是自动刷新,然后回到最顶端 给用户的操作带来不便 听说 可以通过javascript 写方法 可以保存 刷新前页面的位置 在DropDownList 取值后 页面 不跳动 但小可不会, 有高手 麻烦 贴一段 实用的 代码 谢谢了
------解决方案--------------------ajax asp.net
------解决方案--------------------把它的autopostback设为false,用js取值传到后台执行。
------解决方案--------------------ajax+asp.net
或直接用iframe嵌套
------解决方案--------------------MaintainScrollPositionOnPostback= "true "
------解决方案--------------------如果你的DropDownList选项发生更改不会引起页面其他部分数据的变化,那么设置其AutoPostBack 为False
否则,使用Ajax异步获取相应的数据然后使用JS处理获取的数据并将其呈现出来
你可以在网上找找;这种例子很多的
------解决方案--------------------在你控键前面加 <a name= "urllist "> </a>
在head中写js 方法 " <script language=javascript>
function scrollToUrlList()
{
window.location.href = "#urllist ";
}
</script>
然后在你后台onchange的代码最后面加一句 Page.RegisterStartupScript( "scrollto ", " <script language=javascript> scrollToUrlList(); </script> ");
就可以了
------解决方案--------------------asp.net 2.0里面有支持,MaintainScrollPositionOnPostback
<%@ Page Language= "C# " MaintainScrollPositionOnPostback= "true " AutoEventWireup= "true " CodeFile= "... " Inherits= "... " %>
------解决方案--------------------可以用Ajax实现无刷新。非要刷新可用ViewState保存页面状态。
------解决方案-------------------- MaintainScrollPositionOnPostback= "true "
把它的autopostback设为false
------解决方案--------------------btn.Attributes[ "onclick "] = "return SaveScroll(); ";
页面放一个文本框
按扭事件
btn_Click(object ..)
{
//todo
Page.RegisterClientScriptBlock( " ", " <script> LoadScroll(); </script> ");
}
<input type= "hidden " id= "h_Scroll " runat= "server ">
<script>
function SaveScroll()
{
document.getElementById( "h_Scroll ").value = document.body.scrollTop;
}
function LoadScroll()
{
//注此方法要在window.onload 后执行
document.body.scrollTop = document.getElementById( "h_Scroll ").value;
}
</script>
现在可以给分了
------解决方案--------------------如果你出现了document.body.scrollTop 为 0则可以改用document.documentElement.scrollTop
------解决方案--------------------不刷新是实现用ajax
纪录刷新前位置是实现智能定位
对于asp.net2005来说都是小菜