启用禁用RadGrid时出现异常
本文关键字:异常 RadGrid 启用 | 更新日期: 2023-09-27 18:02:20
我创建了一个控件,其中包含一个带有RadGrid (DataGrid)和RadButton (myButton)的面板。当我点击按钮时,RadGrid将被禁用或启用:
myButton.Click += (sender, args) => {
if (!this.DataGrid.Enabled) {
this.DataGrid.Enabled = true;
this.DataGrid.ClientSettings.EnablePostBackOnRowClick = true;
this.DataGrid.ClientSettings.Resizing.AllowColumnResize = true;
this.DataGrid.ClientSettings.Selecting.AllowRowSelect = true;
this.DataGrid.ClientSettings.AllowKeyboardNavigation = true;
} else {
this.DataGrid.Enabled = false;
this.DataGrid.ClientSettings.EnablePostBackOnRowClick = false;
this.DataGrid.ClientSettings.Resizing.AllowColumnResize = false;
this.DataGrid.ClientSettings.Selecting.AllowRowSelect = false;
this.DataGrid.ClientSettings.AllowKeyboardNavigation = false;
}
this.DataGrid.Rebind();
}
禁用工作正常。但是当我第二次点击时,我将得到一个Exception:
[GridException:请将clientsettings . selection . allowrowselect设置为"True"以开始使用GridClientSelectColumn.]
RadGrid包含一个GridClientSelectColumn
。
有没有人可以帮助我,我能做些什么来防止这个异常?-异常发生在myButton的EventHandler将在第二次点击时调用之前。
当我删除GridClientSelectColumn
,它是工作没有例外。
当您有GridClientSelectColumn
时就会发生这种情况。默认情况下,当单击一行时,RadGrid会触发服务器端事件,因此它必须知道您希望在客户端选择这些行。
客户端设置参数如下:
<ClientSettings>
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
它们适合在RadGrid声明的根XML中。为了便于阅读,我把它们放在列的前面,但是它们也可以放在列的后面。
注意<ClientSettings>
和<telerik:GridClientSelectColumn...
<telerik:RadGrid ID="mygrid"
runat="server" AutoGenerateColumns="false"
AllowSorting="true"
OnNeedDataSource="mygrid_NeedDataSource"
AllowFilteringByColumn="False">
<ClientSettings>
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
<MasterTableView DataKeyNames="myColumn" Name="Header">
<Columns>
<telerik:GridClientSelectColumn ItemStyle-Width="25px" />
<telerik:GridBoundColumn DataField="myColumn" HeaderText="My Column" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
或者,正如您所发现的,您可以删除GridClientSelectColumn
并以这种方式修复错误。