asp.net的页面 中下方有 DropDownList ,在每次从DropDownList 取值后,页面都是自动刷新,然后回到最顶端 给用户的操作带来不便 听说 可以通过javascript 写方法 可以保存 刷新前页面的位置  在DropDownList 取值后 页面 不跳动 但小可不会, 有高手 麻烦 贴一段 实用的 代码  谢谢了

解决方案 »

  1.   

    把它的autopostback设为false,用js取值传到后台执行。
      

  2.   

    ajax+asp.net
    或直接用iframe嵌套
      

  3.   

    MaintainScrollPositionOnPostback="true"
      

  4.   

    如果你的DropDownList选项发生更改不会引起页面其他部分数据的变化,那么设置其AutoPostBack 为False
    否则,使用Ajax异步获取相应的数据然后使用JS处理获取的数据并将其呈现出来
    你可以在网上找找;这种例子很多的
      

  5.   

    在你控键前面加<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>");就可以了
      

  6.   

    如果你是.net 2005,就用asp.net ajax.  放到updatepannel中就搞定。如果是.net 2003  你可以自己写js方法。这年头,不学javascript是不行的了。
      

  7.   

    感谢关注,想求个实用的代码 可是 失望了哦以下是我自己做的 有兴趣 就看看吧 <script language="javascript">
    function GetCookie (name) 
    {
       var arg = name + "=";
       var alen = arg.length;
       var clen = document.cookie.length;
       var i = 0;
       while (i < clen)
       {
           var j = i + alen;
           if (document.cookie.substring(i, j) == arg)
           return getCookieVal (j);
           i = document.cookie.indexOf(" ", i) + 1;
           if (i == 0) break; 
       }
     return null;
    }function getCookieVal (offset) 
    {
       var endstr = document.cookie.indexOf (";", offset);
       if (endstr == -1)
         endstr = document.cookie.length;
         return unescape(document.cookie.substring(offset, endstr));
       }
    function SetCookie (name, value) 
       {
         document.cookie = name + "=" + escape (value)
       }
    </script>在body中加入
    <body bgColor="#f1f5f5" leftMargin="0" topMargin="0" rightMargin="0" MS_POSITIONING="GridLayout" onload="document.body.scrollTop=GetCookie('posy')" onunload="SetCookie('posy',document.body.scrollTop)">
      

  8.   

    MaintainScrollPositionOnPostback="true"-------
    没用过,头一次见
      

  9.   

    asp.net 2.0里面有支持,MaintainScrollPositionOnPostback
    <%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeFile="..." Inherits="..." %>
      

  10.   

    可以用Ajax实现无刷新。非要刷新可用ViewState保存页面状态。
      

  11.   

    何必ajax那么复杂。。
    使用过iframe就可以了。。
      

  12.   


    MaintainScrollPositionOnPostback="true"把它的autopostback设为false
      

  13.   

    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>现在可以给分了
      

  14.   

    如果你出现了document.body.scrollTop 为 0则可以改用document.documentElement.scrollTop
      

  15.   

    不刷新是实现用ajax
    纪录刷新前位置是实现智能定位
    对于asp.net2005来说都是小菜
      

  16.   

    用ajax+select估计可以解决,可以试一下.