ASP.NET C#GridView-专注于行编辑
我有一个绑定到gridview的大型数据集,该gridview位于一个300px高度受限的DIV标记内。当我选择一行并触发编辑功能时,页面会将数据(根据需要)重新加载到gridview中,并将我带回顶部,无论我向下滚动了多远 理想情况下,是否有一种方法仅使用asp.net c#来关注正在编辑的行。如果需要,我不介意在编辑模式下将行放置在网格顶部 下面是CountryGrid.aspxASP.NET C#GridView-专注于行编辑,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个绑定到gridview的大型数据集,该gridview位于一个300px高度受限的DIV标记内。当我选择一行并触发编辑功能时,页面会将数据(根据需要)重新加载到gridview中,并将我带回顶部,无论我向下滚动了多远 理想情况下,是否有一种方法仅使用asp.net c#来关注正在编辑的行。如果需要,我不介意在编辑模式下将行放置在网格顶部 下面是CountryGrid.aspx <%@ Page Language="C#" MasterPageFile="~/MasterPageSi
<%@ Page Language="C#" MasterPageFile="~/MasterPageSimple.master" AutoEventWireup="true"
CodeFile="CountryGrid.aspx.cs" EnableEventValidation="false" Inherits="CountryGrid"
Title="JFA Admin Portal - OP49 Country Update" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<center>
<div class="headlanding">
<asp:Label ID="lb_Welcome" runat="server" CssClass="labelLargeFont" Text="Label">OP49 - Country Update</asp:Label>
<br />
<br />
<br />
<asp:Label ID="Label4" runat="server" CssClass="labelLargeFont" >You are currently modifying: </asp:Label>
<asp:Label ID="Country" runat="server" CssClass="labelLargeFont" />
<br />
<asp:Label ID="Label1" runat="server" CssClass="labelLargeFont" >For </asp:Label>
<asp:Label ID="Season" runat="server" CssClass="labelLargeFont" />
<br />
<br />
</div>
<br />
<div style="text-align: center">
<asp:Label ID="Error_Dashboard" runat="server" Font-Size="Small" ForeColor="#FF3300"></asp:Label>
<asp:Label ID="ErrorAccess" runat="server" Font-Size="Small" ForeColor="#FF3300"></asp:Label>
</center>
</div>
<asp:Panel ID="Panel1" runat="server" Font-Size="Large" CssClass="Grid_Panel" GroupingText="OP49 - Update Grid" Font-Bold="true">
<center>
<div style="max-height: 550px; overflow: auto;">
<asp:GridView ID="CountryGridView" DataKeyNames="i_SK_Accom" runat="server" Postback="False"
AutoGenerateColumns="False" CssClass="mGrid" RowStyle-CssClass="normal" Width="95%"
OnRowEditing="CountryGridView_RowEditing"
OnRowCancelingEdit="CountryGridView_RowCancelingEdit"
OnRowUpdating="CountryGridView_RowUpdating" >
<Columns>
<asp:TemplateField HeaderText="Accom Code">
<ItemTemplate>
<asp:Label ID="lb_Accom_Code" runat="server" Text='<%# Bind("Accom_Code") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lbl_Accom_Code" runat="server" Text='<%# Bind("Accom_Code") %>' />
</EditItemTemplate>
<HeaderStyle Width="80px" />
<ItemStyle Width="80px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Accom Name">
<ItemTemplate>
<asp:Label ID="lb_Accom_Name" runat="server" Text='<%# Bind("Accom_Name") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lbl_Accom_Name" runat="server" Text='<%# Bind("Accom_Name") %>' />
</EditItemTemplate>
<HeaderStyle Width="200px" />
<ItemStyle Width="200px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="OP49 Required?">
<EditItemTemplate>
<asp:DropDownList ID="txt_OP49" runat="server" SelectedValue='<%# Bind("OP49_Required") %>' CssClass="DropBoxYN">
<asp:ListItem Text="Yes" Value="Y"></asp:ListItem>
<asp:ListItem Text="No" Value="N"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lb_OP49" runat="server" Text='<%# Bind("OP49_Required") %>' />
</ItemTemplate>
<HeaderStyle Width="100px" />
<ItemStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Weekly">
<EditItemTemplate>
<asp:DropDownList ID="txt_Weekly" runat="server" SelectedValue='<%# Bind("Weekly") %>' CssClass="DropBoxYN">
<asp:ListItem Text="Yes" Value="Y"></asp:ListItem>
<asp:ListItem Text="No" Value="N"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lb_Weekly" runat="server" Text='<%# Bind("Weekly") %>' />
</ItemTemplate>
<HeaderStyle Width="60px" />
<ItemStyle Width="60px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Daily">
<EditItemTemplate>
<asp:DropDownList ID="txt_Daily" runat="server" SelectedValue='<%# Bind("Daily") %>' CssClass="DropBoxYN">
<asp:ListItem Text="Yes" Value="Y"></asp:ListItem>
<asp:ListItem Text="No" Value="N"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lb_Daily" runat="server" Text='<%# Bind("Daily") %>' />
</ItemTemplate>
<HeaderStyle Width="60px" />
<ItemStyle Width="60px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Actions" >
<ItemTemplate>
<asp:ImageButton ID="bt_Edit" runat="server" CommandName="Edit" AlternateText="Edit" ImageUrl="~/Images/Edit.gif" CssClass="ImageButton" />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="bt_Update" runat="server" CommandName="Update" AlternateText="Update" ImageUrl="~/Images/save.png" CssClass="ImageButton" />
<asp:ImageButton ID="bt_Cancel" runat="server" CommandName="Cancel" AlternateText="Cancel" ImageUrl="~/Images/cancel.png" CssClass="ImageButton" />
</EditItemTemplate>
<HeaderStyle Width="60px" />
<ItemStyle Width="60px" Wrap="False" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<br />
<asp:ImageButton ID="Home" runat="server" ImageUrl="~/Images/home.png" CssClass="ImageButtonLarge" AlternateText="Home" ToolTip="Home" OnClick="Click_Home" />
</center>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
您可以在您的aspx页面上的页面指令中将MaintanScrollPositionOnPostback设置为true
<%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" CodeBehind="Gridview.aspx.cs" Inherits="TestWebsite.Gridview" %>
您可以在您的aspx页面的页面指令中将maintanSrollPositionOnPostback设置为true
<%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" CodeBehind="Gridview.aspx.cs" Inherits="TestWebsite.Gridview" %>
Sorry不得不删除我现有的一些不需要也不起作用的测试代码:)Sorry不得不删除我现有的一些不需要也不起作用的测试代码:)谢谢Damien。这适用于主页滚动,但不适用于DIV滚动区域。尽管如此,除了显示目的之外,没有理由保留DIV区域,但是知道如何让DIV执行相同的功能会很有趣。谢谢Damien。这适用于主页滚动,但不适用于DIV滚动区域。尽管如此,除了显示目的之外,没有理由保留DIV区域,但是了解如何让DIV执行相同的功能会很有趣。