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