2017-07-05 164 views
0

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

任何想法?

回答

0

所选行仅对GridView中的可见项有效。因此,当您更改页面时,所选项目仍然是第二个选定行,即使它是完全不同的项目。

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

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

O的,如果你真的想保持的SelectedIndex,它在一个会话或保存的ViewState与PageIndex的一起,并重新选择基于这样的价值观正确的。

+0

谢谢..有帮助。 :) – Avinash