Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView分页中选定行的问题_C#_Asp.net_Gridview - Fatal编程技术网

C# GridView分页中选定行的问题

C# GridView分页中选定行的问题,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个Gridview,其中有更新行的功能。单击“更新行”后,将在行中生成一个文本框,用户可以在其中更新特定行的记录。但是,如果用户选择gridview(page=1)的第2行进行更新,然后单击第4页而不保存。现在显示第4页,第2行在第4页启用更新。此外,如果用户选择gridview的第2行(第1页),则单击第4页。第4页现在显示,第2行突出显示,因此对于用户来说,看起来他们已经选择了第4页的第2行,我需要让selectedrow与分页一起移动,以避免混淆用户。 以下是我对Gridview的定

我有一个Gridview,其中有更新行的功能。单击“更新行”后,将在行中生成一个文本框,用户可以在其中更新特定行的记录。但是,如果用户选择gridview(page=1)的第2行进行更新,然后单击第4页而不保存。现在显示第4页,第2行在第4页启用更新。此外,如果用户选择gridview的第2行(第1页),则单击第4页。第4页现在显示,第2行突出显示,因此对于用户来说,看起来他们已经选择了第4页的第2行,我需要让selectedrow与分页一起移动,以避免混淆用户。 以下是我对Gridview的定义:

<asp:GridView ID="grdDisountList" runat="server" PersistedSelection="false" CellPadding="4" ForeColor="#333333" GridLines="None"
        AutoGenerateColumns="false" Width="100%" OnRowEditing="EditRow" OnRowCancelingEdit="CancelEditRow"
        OnRowUpdating="UpdateRow" DataKeyNames="Discount_Id" AllowPaging="true" OnRowDataBound="grdDisountList_RowDataBound"
        PageSize="15" OnPageIndexChanging="OnPageIndexChanging" OnRowCommand="SelectRow" OnSelectedIndexChanged="grdDisountList_SelectedIndexChanged">


有什么想法吗?

所选行仅适用于GridView中的可见项。因此,当您更改页面时,所选项目仍将是第二个所选行,即使它是一个完全不同的项目

最好的选择是在
OnPageIndexChanging
事件中将所选行设置为-1

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.SelectedIndex = -1;
    GridView1.EditIndex = -1;
}

Os如果您真的想保留SelectedIndex,请将其与PageIndex一起保存在会话或视图状态中,然后根据这些值重新选择正确的索引。

谢谢..这很有帮助。!!:)