我用Repeater显示数据,每条数据有个删除功能按钮,当我删除最后一条记录时候的时候,页面刷新时又重新回到了第一条,
怎么才能定位到最后一条哪里。
我用锚定位好像不行,
<a name='#<%#Eval("ID") %>'></a>这个是加在Repeater里面的,后台:
string url = "~/Help/Faq.aspx" + a;
Response.Redirect(url);谁有做过类似的定位,给个例子?

解决方案 »

  1.   

    最简单的加一个微软的AJAX的UpdatePanel
      

  2.   

    cookie记录位置,设置页面滚动条位置
    document.body.scrollHeight   =   getCookie( "pos ")   +   "px " 
      

  3.   

    页面加ScriptManager,UpdatePanel,你的Repeater放在<UpdatePanel><ContentTemplate>中即可
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
               <asp:Repeater......../>
               
               </<asp:Repeater>
            </ContentTemplate>
        </asp:UpdatePanel>
        </form>
      

  4.   

    string url = "~/Help/Faq.aspx#" + id值;
    Response.Redirect(url);
      

  5.   

    name属性是不需要那个#号的,你想链接到这个地方的时候,在其他地方这么写<a href="#myname">链接到你那个标记</a>
      

  6.   

    老大ID的值得到了,但是它就是不跳到指定的位置,
    http://localhost:2575/Help/Faq.aspx#38
    这个是回复后的地址
      

  7.   


    <div id="divReply" runat="server" visible="false">
                                                <textarea id="txtReplyContext" runat="server" cols="40" rows="3"></textarea><br />
                                               <a  href='#<%#Eval("ID")%>'></a>后台
     string url = "~/Help/Faq.aspx" + "#"+ViewState["id"].ToString();
                        Response.Redirect(url);
    这样做了之后还是不行。div中设置?啥意思,怎么设置?麻烦细说一下
      

  8.   

    是不是因为这个锚在Repeater里面所以它找不到?
      

  9.   

    这位说的对
    真搞不懂为什么这么简单的东西还有js来写lz不懂的话看下这个
    http://www.cnblogs.com/aqiang/archive/2007/12/19/1005779.html
      

  10.   

    你Repeater中加一个div,如:
    <asp:Repeater ID="Repeater1" runat="server" ....>
       <ItemTemplate>
           <div id='<%# Eval("id") %>'>
           ..........
           ..........
      </ItemTemplate>
    </asp:Repeater>连接:
    string url = "~/Help/Faq.aspx#" + id;

    Response.Redirect("~/Help/Faq.aspx#" +id);
    这个id就是你点击的那行的id
      

  11.   

    用此方法,通过,在页面我测试了很多次,证明在repeater里面直接使用锚<a name'<%#Eval("id")%>'不行的,在页面加载时找不到,因为我把<a name'<%#Eval("id")%>'放到repeater外面其它任何位置都可以定位。还是要谢谢楼上各位的回复。DIV能找到,是因为DIV是 HtmlControl页面控件,可以找到的
      

  12.   

    三种方法都测试通过了,这里把思路和代码拿出来分享一下,希望能帮到后面碰到类似问题的朋友。
    1)在Repaeter中使用锚定位:直接在Repeater下面定义一个DIV
       
       <asp:Repeater ID="Repeater1" runat="server" onprerender="Repeater1_PreRender" >
                                 <ItemTemplate> 
                                 <div id='<%# Eval("id") %>'>
       
       然后后台在执行完方法之后,给个跳转值:
        //url = "~/Help/Faq.aspx" + "#"+div的值;
                        //Response.Redirect(url);
    2)使用UpdatePanel
       
       <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
               把Repeater放到这里就OK,因为每次执行完数据,它只会刷新这块的数据           </<asp:Repeater>
            </ContentTemplate>
        </asp:UpdatePanel>
        </form>   
     3)在JS中使用cookie记录位置,设置页面滚动条位置 直接在页面上加入这段代码,刷性页面后它会自动定位到上次的位置
        
        <script language="javascript" type="text/javascript"> 
        <!--
        function SetCookie(sName, sValue) {
            date = new Date();
            s = date.getDate();
            date.setDate(s + 1);            //expire time is one month late!, and can't be current date! 
            document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();
        }
        function GetCookie(sName) {
            // cookies are separated by semicolons 
            var aCookie = document.cookie.split("; ");
            for (var i = 0; i < aCookie.length; i++) {
                // a name/value pair (a crumb) is separated by an equal sign 
                var aCrumb = aCookie[i].split("=");
                if (sName == aCrumb[0]) {
                    return unescape(aCrumb[1]);
                }
            }        // a cookie with the requested name does not exist 
            return null;
        }    function fnLoad() {
            document.body.scrollLeft = GetCookie("scrollLeft");
            document.body.scrollTop = GetCookie("scrollTop");
        }    function fnUnload() {
            SetCookie("scrollLeft", document.body.scrollLeft)
            SetCookie("scrollTop", document.body.scrollTop)
        }    window.onload = fnLoad;
        window.onunload = fnUnload; 
        
        // --> 
    </script>  
       
      

  13.   

    证明在repeater里面直接使用锚<a name'<%#Eval("id")%>'不行的
    ======================================================
    应该是行的!
    仔细看了一下,你是做删除操作,你定位的那条记录的没有了,
    所以根据id就定位不到,如果你做修改操作就可以定位!!
      

  14.   

    <div id='<%# Eval("id") %>'>
    <a href="xxx.aspx#div的id"></a>repeater中,你怎么设计html 运行后的页面就是你设计的html 使用时不用考虑因为它有个runat="server"而有啥特别的。