Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 启用禁用的RadGrid时出现异常_C#_Asp.net_Radgrid - Fatal编程技术网

C# 启用禁用的RadGrid时出现异常

C# 启用禁用的RadGrid时出现异常,c#,asp.net,radgrid,C#,Asp.net,Radgrid,我创建了一个控件,其中包含一个带有RadGrid(DataGrid)和RadButton(myButton)的面板。 单击按钮时,RadGrid将被禁用或启用: myButton.Click += (sender, args) => { if (!this.DataGrid.Enabled) { this.DataGrid.Enabled = true; this.DataGrid.ClientSettings.EnablePostBackOnRow

我创建了一个控件,其中包含一个带有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();
}
这很好。但是,当我再次单击时,我将得到一个异常:

[GridException:请将ClientSettings.Selecting.AllowRowsSelect设置为“True”以开始使用GridClientSelectColumn。]

RadGrid包含一个
GridClientSelectColumn

谁能帮我一下,我能做些什么来防止这个异常在第二次单击时调用myButton的EventHandler之前发生异常


当我删除
GridClientSelectColumn
时,它毫无例外地工作。

当您有
GridClientSelectColumn
时,就会发生这种情况。默认情况下,RadGrid在单击行时触发服务器端事件,因此它必须知道您希望在客户端选择行

客户端设置参数如下所示:

<ClientSettings>
  <Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>

它们适合于RadGrid声明根的XML。为了可读性,我把它们放在了列的前面,但它们也可以放在后面

注意

<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>