如何取得Repeater控件选择的项目及注意事项

  Repeater控件,每个item前有一个CheckBox,把选择的item列显出来。

如何取得Repeater控件选择的项目及注意事项

  这个演法中,可以看到选择之后,该行highlight,此功能可以参考这个链接:http://www.glzy8.com/article/33455.htm

  下面是Repeater控件Html,有两个地方需要注意的,就是CheckBox与Label,这个Label是随你需要获取的内容而变化喔。如你想获取Nickname,那你需要把绑定的的内容放在Label上。

  Repeater & CheckBox

  

复制代码 代码如下:

  <asp:Repeater ID="RepeaterEmailList" runat="server">

  <HeaderTemplate>

  <table border="1" cellpadding="1" cellspacing="0" width="96.5%">

  <tr>

  <td>

  </td>

  <td>

  Nickname

  </td>

  <td>

  Email

  </td>

  </tr>

  </HeaderTemplate>

  <ItemTemplate>

  <tr style="height:10px; line-height:10px;">

  <td>

  <!--下面这个CheckBox的ID,注意喔,因为后台需要用到它-->

  <asp:CheckBox ID="CheckBox1" runat="server" />

  </td>

  <td>

  <%# Eval("nickname")%>

  </td>

  <td>

  <!--下面这个Label的ID,注意喔,因为后台需要用到它-->

  <asp:Label ID="Label1" runat="server" Text=' <%# Eval("mail")%>'></asp:Label>

  </td>

  </tr>

  </ItemTemplate>

  <FooterTemplate>

  </table>

  </FooterTemplate>

  </asp:Repeater>

  下面Insus.NET将会写一个方法,也许你的专案不止一个地方使用到,在需要的地方直接调用即可。

  GetCheckBoxSelectedValue

  

复制代码 代码如下:

  private string GetCheckBoxSelectedValue(Repeater repeater, string checkBoxId,string labelId)

  {

  string tempValue = string.Empty;

  foreach (RepeaterItem item in repeater.Items)

  {

  if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)

  {

  if (item.FindControl(checkBoxId) != null && item.FindControl(labelId) != null)

  {

  CheckBox cb = (CheckBox)item.FindControl(checkBoxId);

  Label lbl = (Label)item.FindControl(labelId);

  if (cb.Checked)

  {

  tempValue = tempValue + ";" + lbl.Text;

  }

  }

  }

  }

  if (tempValue.Length > 0)

  {

  tempValue = tempValue.Substring(2);

  }

  return tempValue;

  }