Telerik RadGrid 未触发 OnSelectedIndex取消选择最后一个选定项时已更改
本文关键字:最后一个 选择 RadGrid 取消 OnSelectedIndex Telerik | 更新日期: 2023-09-27 18:33:55
我有一个显示一些奇怪行为的Telerik RadGrid。 网格定义如下:
<telerik:RadGrid ID="RadGrid1" Width="100%" runat="server"
AllowSorting="True"
AllowPaging="true"
AllowMultiRowSelection="true"
OnNeedDataSource="RadGrid1_NeedDataSource"
OnDataBound="RadGrid1_DataBound"
OnItemDataBound="RadGrid1_ItemDataBound"
BorderWidth="0"
OnSortCommand="RadGrid1_SetVisibleTrue"
OnPageSizeChanged="RadGrid1_SetVisibleTrue"
OnPageIndexChanged="RadGrid1_SetVisibleTrue"
OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged"
AutoGenerateColumns="False">
<ClientSettings EnablePostBackOnRowClick="true">
<Selecting AllowRowSelect="true" />
</ClientSettings>
<MasterTableView DataKeyNames="LabID, MachineName, PointID, MachCond, LubCond, Lubricant, CustReview, CustReviewDte, MachineID" ClientDataKeyNames="MachineName" AllowMultiColumnSorting="true">
<SortExpressions>
<telerik:GridSortExpression FieldName="MachineName" SortOrder="Ascending" />
<telerik:GridSortExpression FieldName="MachineNumber" SortOrder="Ascending" />
</SortExpressions>
<Columns>.........</Columns>
</MasterTableView>
</telerik:RadGrid>
我的OnSelectedIndexChanged
事件在代码隐藏中定义:
protected void RadGrid1_SelectedIndexChanged(object sender, EventArgs e)
{
//Do stuff
}
当我选择了多个可见项目时,每次我选择或取消选择一行时都会触发该事件,正如我所期望的那样。 但是,如果网格中只有一个可见的选定项,并且我取消选择它,则不会触发该事件! 这是为什么呢?
感谢您的帮助!
您描述的是RadGrid的预期行为。从客户端中选择或取消选择项时,将更新"选定项"集合。在触发 OnSelectedIndexChanged 事件之前,在服务器上检查此集合。如果 SelectedItems 集合没有元素,则不会触发该事件。
由于已将 EnablePostBackOnRowClick 属性设置为 true,因此每次单击一行后都会执行回发。在这种情况下,可以使用 PreRender 方法来检查 SelectedItems 集合中的元素数。当数字达到零时,您可以执行要实现的逻辑。