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

本文关键字:复选框 列表 标签 添加 | 更新日期: 2024-10-19 18:46:48

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

在这里,我得到了附加的复选框和标签列表。

示例:我得到,

Checkbox Item1
Checkbox Item2
Checkbox Item3

但我想要,

Checkbox Checkbox Item1
Checkbox Checkbox Item2
Checkbox Checkbox Item3

我正在使用复选框列表项,但是如何根据需要获取输出。

在代码文件中,

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.

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

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。

取而代之的是:

Checked="<%# Convert.ToBoolean(Eval("Id")) %>"

试试这个:

Checked="<%# Convert.ToBoolean(Eval('Id')) %>"

ASP.NET 对渲染块中的引号很挑剔。您需要交替 - 一组是双引号,一组是单引号。