【问题标题】:Issue with Selected row in GridView PagingGridView 分页中选定行的问题
【发布时间】:2017-07-05 08:38:30
【问题描述】:

我有一个 Gridview,其中有更新行的功能。单击更新行后,会在用户可以更新特定行的记录的行中生成一个文本框。但是,如果用户选择 gridview(page=1) 的第 2 行进行更新,然后单击第 4 页而不保存。现在显示第 4 页,并启用第 2 行以在第 4 页上更新。此外,如果用户选择 gridview (page=1) 的第 2 行,则单击第 4 页。现在显示第 4 页,第 2 行突出显示,所以对于用户来说,他们似乎选择了第 4 页的第 2 行,我需要让所选行随分页一起移动,以免混淆用户。 下面是我对 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">

有什么想法吗?

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢..这有帮助.!! :)
    猜你喜欢
    • 2013-02-12
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多