将复选框添加到复选框和标签列表中

时间:2015-03-06 17:36:48

标签: c# asp.net checkboxlist

<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.

2 个答案:

答案 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在渲染块中使用引号变得挑剔。你需要交替 - 一组是双,一组是单引号。