如何访问转发器标头内的复选框?

时间:2011-02-18 02:50:23

标签: c# asp.net checkbox

我有一个转发器,它在headerTemplate

中有一个checkBox
<asp:Repeater ID="myRepeater" runat="Server">
  <HeaderTemplate>
    <table>
      <tr>
        <th>
          <asp:CheckBox ID="selectAllCheckBox" runat="Server" AutoPostBack="true>
                         .
                         .
                         .

我想知道如何在后面的代码中获取该checkBox的值。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在ItemDataBound方法中调用FindControl(“checkboxID”)并强制转换为Checkbox

void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) {
    if (e.Item.ItemType == ListItemType.Header) {
        CheckBox cb = (CheckBox)e.Item.FindControl("selectAllCheckBox");
        bool isChecked = cb.Checked;
    }
}

或者你可以随时做到这一点:

CheckBox cb = (CheckBox)myRepeater.Controls.OfType<RepeaterItem>().Single(ri => ri.ItemType == ListItemType.Header).FindControl("selectAllCheckBox");