gridview在顶部滚动

时间:2013-10-03 06:27:06

标签: c# asp.net gridview

我有asp:gridview wich包含复选框作为列。 我把这个gridview放在带滚动条的asp:面板中。 我在网格视图中说了500条记录。

我的问题是,当我点击复选框(比如第200条记录)时,它会滚动到顶部。 这里的原因是我想让一些单元格可以编辑GridView,这部分工作正常。但它会向上滚动。然后我必须再次向下滚动进行更改。

有关此行为的任何建议。

Html标记

<asp:UpdatePanel ID="UpdatePanel5" runat="server">
 <ContentTemplate>
 <asp:Panel runat="server" ID="p1" Height="250px" Width="100%" ScrollBars="Both">
 <asp:GridView ID="gv1" runat="server" CellPadding="3" AutoGenerateColumns="False"
  GridLines="Vertical" BackColor="White" BorderColor="#999999" BorderStyle="None"    
   BorderWidth="1px" Width="108%">
  <Columns>
  <asp:TemplateField  HeaderStyle-Width="20px" HeaderStyle-HorizontalAlign="Center"    
   HeaderStyle-VerticalAlign="Middle">
  <ItemTemplate>
  <asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="true"  
   OnCheckedChanged="checkBoxID_CheckedChanged"/>
   </ItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField HeaderText="OT Hours">
  <ItemStyle Height="35px" Width="60px"/>
  <ItemTemplate>
  <asp:TextBox runat="server" ID="txtOThrs" Text= '<%# Bind("othours") %>' Width="60px"
  Font-Size="10px" ReadOnly="true" AutoPostBack="true"></asp:TextBox>
  </ItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField HeaderText="OTAuth">
  <ItemStyle Height="35px" Width="60px"/>
  <ItemTemplate>
  <asp:DropDownList runat="server" ID="ddlOTAuth" AutoPostBack="true" Font-Size="10px"
   Width="80px" Height="20px" Enabled="false" Text='<%# Eval("OTAuthorized") %>' >
  <asp:ListItem Value="Y">Yes</asp:ListItem>                  
  <asp:ListItem Value="N">No</asp:ListItem>                  
  </asp:DropDownList>
  </ItemTemplate>
  </asp:TemplateField>
  </asp:GridView>                            
  </asp:Panel>
  </ContentTemplate>
  </asp:UpdatePanel>

4 个答案:

答案 0 :(得分:2)

要保持大网页的滚动位置,您可以使用以下方法:

1-使用Web.config页面部分<pages maintainScrollPositionOnPostBack="true" />

:这将保留所有网站页面的滚动位置。

页面声明<%@ Page MaintainScrollPositionOnPostback="true" %>中的

2-:这将仅保留此页面的滚动位置。

3-以编程方式从System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;后面的代码:这将仅保留此页面的滚动位置(与页面拆分相同)。

答案 1 :(得分:1)

 protected void gv1_RowEditing(object sender, GridViewEditEventArgs e)
    {
       gv1.Rows[e.NewEditIndex].findcontrol("chkSelect").focus();

    }

答案 2 :(得分:1)

你可以试试这个如何在ff和其他浏览器中保持滚动位置 http://aspsnippets.com/Articles/ASPNet-MaintainScrollPositionOnPostback-not-working-in-Firefox-and-Chrome.aspx

答案 3 :(得分:0)

你可以使用包含可编辑字段的弹出式div,我认为这是编辑的简单方法