【发布时间】:2017-12-19 21:29:21
【问题描述】:
有带有项目的 CheckBoxList:
<asp:CheckBoxList ID="RadCheckBoxList1" runat="server" RepeatDirection="Horizontal"
RepeatLayout="Flow">
<Items>
<asp:ListItem Text="" Value="1" />
<asp:ListItem Text="" Value="2" />
<asp:ListItem Text="" Value="3" />
</Items>
</asp:CheckBoxList>
在 C# 代码中绑定时:
BitArray ba = new BitArray(3);
ba[0] = false;
ba[1] = true;
ba[2] = false;
cbl.DataSource = ba;
cbl.DataBind();
我预计: to see just marked checkboxes with no text
但结果是: Boolean values went to label texts
我不需要标签文本。只需要通过 BitArray 项中的布尔值设置复选框标记。 如果重要的话,大约有 600 个 CheckBoxList 控件,每个控件大约有 20 个复选框。所以制作单独的类会降低网页的性能。 BitArray 项目的属性名称是什么来绑定它 CheckBoxList 或者如何有效地绑定它?
编辑: 感谢fightc2通过设置
cb1.DataTextFormatString = " ";
我摆脱了标签文本,但复选框仍未正确设置。而不是正确设置“checked”属性:
<input name="cbl3$1" id="cbl3_1" type="checkbox" value="">
<input name="cbl3$0" id="cbl3_0" type="checkbox" checked="checked" value="">
错误地设置了“值”属性:
<input name="cbl2$0" id="cbl2_0" type="checkbox" value="False">
<input name="cbl2$1" id="cbl2_1" type="checkbox" value="True">
【问题讨论】:
标签: c# asp.net binding checkboxlist bitarray