如何为列表中的每个条目设置ASP复选框?

时间:2010-11-09 18:58:41

标签: c# asp.net controls web-controls

我想在我的asp代码中做这样的事情:

<%
 foreach Record record in listOfRecords
{
 %>
<asp:checkbox runat="server" id="employeeIdNumber" />
<p>Employee's Name: <%= record.name %> </p>
<p>Employee's Phone Number: <%= record.phoneNumber %></p>
<%
}
%>

问题是checkbox id是一个字符串文字。如何为每位员工的复选框提供唯一ID?

3 个答案:

答案 0 :(得分:1)

我认为你应该使用Repeater。

<asp:Repeater ID="rptEmployees" runat="server">
    <ItemTemplate>
        <asp:CheckBox ID="employeeIDNumber" runat="server" />
    </ItemTemplate>
</asp:Repeater>

此控件将为您呈现每个复选框的唯一ID。

答案 1 :(得分:1)

将其包裹在转发器中。然后将listOfRecords绑定到转发器。

<asp:Repeater runat="server">
  <ItemTemplate>
    <asp:checkbox runat="server" id="employeeIdNumber" />
    <p>Employee's Name: <%# Eval("name") %> </p>
    <p>Employee's Phone Number: <%# Eval("phoneNumber") %></p>
  </ItemTemplate>
</asp:Repeater>

然后,为了解决它,你运行RepeaterItems集合并通过RepeaterItem.FindControl(“employeeIdNumber”)查找复选框以确定它们是否被检查。

答案 2 :(得分:0)

CheckboxList也是一个选项。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkboxlist.aspx

这也有一个关于如何检查已检查状态的示例 - 只需遍历并检查Selected属性。