C# 单击“全选”复选框时,不应选中禁用的复选框

C# 单击“全选”复选框时,不应选中禁用的复选框,c#,asp.net,html,C#,Asp.net,Html,我有一个网格,其中有一些项目在每行的开头都有一个复选框。我在网格顶部还有一个全选复选框。这种情况类似于我们的gmail或雅虎收件箱。我的问题是,假设我禁用一个复选框,然后单击全选复选框,则不应选中禁用的复选框。有什么解决办法吗?我已附上相关代码如下 *aspx文件 <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn"> <HeaderTemplate> <asp

我有一个网格,其中有一些项目在每行的开头都有一个复选框。我在网格顶部还有一个全选复选框。这种情况类似于我们的gmail或雅虎收件箱。我的问题是,假设我禁用一个复选框,然后单击全选复选框,则不应选中禁用的复选框。有什么解决办法吗?我已附上相关代码如下

*aspx文件

<telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">

     <HeaderTemplate>

         <asp:CheckBox id="headerChkbox" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" runat="server"></asp:CheckBox>

     </HeaderTemplate>

     <ItemTemplate>

         <asp:CheckBox id="CheckBox1" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True"  runat="server"></asp:CheckBox>

     </ItemTemplate>

</telerik:GridTemplateColumn>

在将其设置为选中之前,您需要检查它是否已启用

CheckBox headerCheckBox = (sender as CheckBox);

foreach (GridDataItem dataItem in grdCurrent.MasterTableView.Items)
{
  if((dataItem.FindControl("CheckBox1") as CheckBox).Enabled) // add this condtion
  {
    (dataItem.FindControl("CheckBox1") as CheckBox).Checked = headerCheckBox.Checked;
    dataItem.Selected = headerCheckBox.Checked;
  }
}

而不是使用代码隐藏来选择全部。我将使用javascript或Jquery来实现这一点。我的方法是为enabled和disabled复选框应用不同的css类,比如“enabled”和“disabled”。在Jquery中,我选中类并只勾选已启用的复选框。

因此,在单击“全选”之前,您希望选择除所选之外的所有选项??谢谢,伙计……但我得到了解决方案:)不客气,请阅读本文,我认为通过代码隐藏无法实现。我对jquery和所有东西都有很大的想法。谢谢你的解决方案,伙计。
CheckBox headerCheckBox = (sender as CheckBox);

foreach (GridDataItem dataItem in grdCurrent.MasterTableView.Items)
{
  if((dataItem.FindControl("CheckBox1") as CheckBox).Enabled) // add this condtion
  {
    (dataItem.FindControl("CheckBox1") as CheckBox).Checked = headerCheckBox.Checked;
    dataItem.Selected = headerCheckBox.Checked;
  }
}