我有一个RadGrid控件,显示已禁用或启用基于数据库值的复选框。
我有一个单选按钮“全选”,需要检查网格中所有已启用的复选框。但是,我无法检测是否启用了复选框。
复选框的html代码为:
<telerik:GridTemplateColumn DataField="Certified" HeaderText="Certified" Visible="true">
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="true"
OnCheckedChanged="CheckBox2_CheckedChanged"
Enabled='<%# !bool.Parse(Eval("Certified").ToString()) %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
我的代码隐藏是:
foreach (GridDataItem dataItem in RadGrid1.MasterTableView.Items)
{
if (((CheckBox)dataItem.FindControl("CheckBox2")).Enabled != false) ;
{
((CheckBox)dataItem.FindControl("CheckBox2")).Checked = true;
}
}
如何才能在if语句中仅返回启用的复选框?
答案 0 :(得分:2)
你有奇怪的逻辑,而 if语句以逗号结尾 。
if (((CheckBox)dataItem.FindControl("CheckBox2")).Enabled != false) ;
结果,它们变成了两条不同的线。
{
((CheckBox)dataItem.FindControl("CheckBox2")).Checked = true;
}
foreach (GridDataItem dataItem in RadGrid1.MasterTableView.Items)
{
var checkbox = dataItem.FindControl("CheckBox2") as CheckBox;
if (checkbox.Enabled)
{
checkbox.Checked = true;
}
}
答案 1 :(得分:0)
columns.Bound(c => c.IsSelected)
.ClientTemplate("<input <#=IsSelected ? 'checked' : '' #> />")