保持页面位置回发

mik*_*gee 9 c# asp.net

嗨,大家正在为学校的这个项目工作,并有一个问题

    <asp:LinkButton ID="LinkEdit" runat="server" CssClass="right_bottom" 
        onclick="LinkEdit_Click" Height="16px">edit</asp:LinkButton>
    <asp:LinkButton ID="Linkhide" runat="server" CssClass="right_bottom" 
        onclick="Linkhide_Click" Visible="False" hide</asp:LinkButton>
    <br />
    <hr style="width: 740px; height: -6px; margin-left: 0px; " />
    <asp:Label ID="labelFullname" runat="server" Text="Full Name" CssClass="left_top"></asp:Label>
    <asp:Label ID="labelNameDisplay" runat="server" Text="Put name here" CssClass="right_top"></asp:Label>

    <br />
    <asp:Panel ID="panelName" runat="server" Height="240px" Visible="False" CssClass="panel_top"
        style="text-align: left;">

        <asp:Label ID="Label8" runat="server" CssClass="left" Text="Please allow 24 hours for name changes to take effect."></asp:Label>
    <div align="center"><br />
    <br />
    <table>
       <tr>
       <td class="label_new">
         <asp:Label ID="Label4" runat="server" Text="Full Name:" ToolTip="Name Displayed"></asp:Label>
         </td>
         <td align="left">

          <asp:DropDownList ID="DropDownList1"  runat="server" BorderStyle="Groove" 
                 Font-Names="Segoe UI,Tahoma,Verdana,Arial,Times" Font-Size="100%" Height="25px" 
          valign="middle" Width="250px">
              <asp:ListItem></asp:ListItem>
              <asp:ListItem></asp:ListItem>
              <asp:ListItem></asp:ListItem>
          </asp:DropDownList>
       </td>
  </tr>


   <tr>
       <td class="label_new">
         <asp:Label ID="Label2" runat="server" Text="First Name:"></asp:Label>
         </td>
         <td align="left">
         <asp:TextBox ID="txtFirstName" runat="server" BorderStyle="Groove" Font-Names="Segoe UI,Tahoma,Verdana,Arial,Times" Font-Size="100%" Height="20px" 
          valign="middle" Width="242px"></asp:TextBox>
       </td>
  </tr>

     <tr>
       <td class="label_new">
         <asp:Label ID="Label9" runat="server" Text="Middle Name:"></asp:Label>
         </td>
         <td align="left">
         <asp:TextBox ID="txtMiddleName" runat="server" BorderStyle="Groove" Font-Names="Segoe UI,Tahoma,Verdana,Arial,Times" Font-Size="100%" Height="20px" 
          valign="middle" Width="242px" onfocus="if (this.value == 'optional') {   this.value='';  this.style.color='black';}" />
       </td>
  </tr>

     <tr>
       <td class="label_new">
         <asp:Label ID="Label10" runat="server" Text="Last Name:"></asp:Label>
         </td>
         <td align="left">
         <asp:TextBox ID="txtLastName" runat="server" BorderStyle="Groove" Font-Names="Segoe UI,Tahoma,Verdana,Arial,Times" Font-Size="100%" Height="20px" 
          valign="middle" Width="242px"></asp:TextBox>
       </td>
  </tr>
  <tr>
  <td colspan="2">
      <asp:Button ID="btnSaveChanges" runat="server" Text="Save Changes" 
          onclick="btnSaveChanges_Click" />
  </td>
  </tr>
    </table>
    </div>

    </asp:Panel>
Run Code Online (Sandbox Code Playgroud)

这个格式有4个面板就像facebook上的ACCOUNT SETTINGS一样.我的问题是当我显示面板时它只是跳到页面顶部.

将像facebook一样喜欢这样做.单击并单击您单击的位置.

谢谢

Pet*_*ter 27

您可以在页面上设置MaintainScrollPositionOnPostback属性:

Page.MaintainScrollPositionOnPostback = true;
Run Code Online (Sandbox Code Playgroud)

或者把它放在页面声明中

<%@ Page MaintainScrollPositionOnPostback="true" %> 
Run Code Online (Sandbox Code Playgroud)


Bri*_*ott 1

我不完全确定你要什么。Facebook 使用大量 ajax 样式回调,这意味着页面不会使用 asp .net 样式回发重新加载。如果您刚刚开始,我建议您尝试将代码放入 Ajax .Net UpdatePanel 中,同时了解 Ajax / JSON / XMLHttpRequest 等的详细信息。

如果您只是想确保浏览器窗口在回发后保持在相同的滚动条位置,则将页面设置为使用MaintainScrollPositionOnPostback =“true”指令。