Как установить флажок ASP для каждой записи в списке?

Я хочу сделать что-то вроде этого в моем коде 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>
<%
}
%>

Проблема в том, что идентификатор флажка является строковым литералом. Как я могу дать уникальный идентификатор для флажка каждого сотрудника?

3 ответа

Решение

Заверните это в репитер. Затем привяжите свой список записей к повторителю.

<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"), чтобы определить, проверены ли они.

Я думаю, что вы должны использовать вместо повторителя.

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

Этот элемент управления будет отображать уникальный идентификатор для каждого флажка для вас.

CheckboxList тоже вариант.

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

Здесь также есть пример того, как проверить проверенное состояние - просто переберите и проверьте свойство Selected.

Другие вопросы по тегам