<table style="width: 98%; height: 100%; text-align: left">
<tr>
<td valign="top">
<asp:CheckBoxList ID="c1" runat="server" DataTextField="Title" DataValueField="Id" RepeatDirection="Horizontal"
OnDataBound="cblAvailableWidgetSelector_DataBound">
</asp:CheckBoxList>
<asp:CheckBox ID="CheckBox1" runat="server" />
<label runat="server" id="lblMessage" style="padding: 3px;" />
</td>
</tr>
</table>
在这里,我将out作为附加的复选框和标签列表。
示例:我明白了,
Checkbox Item1
Checkbox Item2
Checkbox Item3
但我想,
Checkbox Checkbox Item1
Checkbox Checkbox Item2
Checkbox Checkbox Item3
我正在使用复选框listitem,但如何根据需要获得输出。
在代码文件中
DataTable dt = //datatable, which I get
c1.DataSource = dt;
c1.DataBind();
所以,我得到了复选框列表和带有值的标签,但我想在此列表中再添加1个复选框。我怎么能这样做?
更新
尝试使用它,
<asp:Repeater runat="server" ID="CheckBoxRepeater">
<ItemTemplate>
<asp:CheckBox ID="c1" OnDataBinding="c1_DataBound" runat="server" Checked="<%# Convert.ToBoolean(Eval("Id")) %>" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:Label ID="lblMessage" runat="server" style="padding: 3px;" Text="<%# Eval("Title") %>" />
</ItemTemplate>
</asp:Repeater>
但它仍然没有用。
Error: The server tag is not well formed.
答案 0 :(得分:0)
CheckBoxList不允许自定义模板,因此它太有限了,无法实现您的目标。但这应该很容易模仿转发器:
<asp:Repeater runat="server" ID="CheckBoxRepeater">
<ItemTemplate>
<asp:CheckBox runat="server" Checked="<%# Eval("BoolProperty1") %>" />
<asp:CheckBox runat="server" Checked="<%# Eval("BoolProperty2") %>" />
<asp:Label runat="server" Text="<%# Eval("TextProperty") %>" />
</ItemTemplate>
</asp:Repeater>
如果需要双向绑定,请确保使用Bind而不是Eval。
答案 1 :(得分:0)
而不是:
Checked="<%# Convert.ToBoolean(Eval("Id")) %>"
试试这个:
Checked="<%# Convert.ToBoolean(Eval('Id')) %>"
ASP.NET在渲染块中使用引号变得挑剔。你需要交替 - 一组是双,一组是单引号。