2014-03-13 31 views
0

我有两个嵌套的中继器和内部的复选框复选框内的中继器,这样查找另一个按钮单击事件

<asp:Repeater ID="rptInterestCategory" runat="server" OnItemDataBound="rptInterestCategory_ItemDataBound"> 
     <ItemTemplate> 
      <asp:Repeater ID="rptInterests" runat="server" OnItemDataBound="rptInterests_ItemDataBound"> 
       <ItemTemplate> 
        <asp:CheckBox ID="cbInterest" runat="server" OnCheckedChanged="cbInterest_CheckedChanged" Data-Id='<%# DataBinder.Eval(Container.DataItem, "id") %>' Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' /> 

       </ItemTemplate> 
      </asp:Repeater> 
      <hr/> 
     </ItemTemplate> 
    </asp:Repeater> 

现在,另一个按钮单击事件我想找到所有复选框(cbInterest)被检查并需要获取其中的值。什么才是正确的做法呢?

回答

1

的方式,你会遍历他们是第一次进入该嵌套Repeater参考:

Repeater rptInterests = (Repeater)rptInterestCategory.FindControl("rptInterests"); 

然后你就可以通过数据项环,发现该复选框,并获得复选框的值:

foreach (RepeaterItem item in rptInterests.Items) 
{ 
    CheckBox cbInterest = (CheckBox)item.FindControl("cbInterest"); 
    bool isChecked = cbInterest.Checked; 
} 
+0

现在这是在按钮单击事件 – Athul

+0

错误工作无法隐式转换类型“System.Web.UI.Control”到“System.Web.UI.WebControls.Repeater”。存在明确的转换(你是否缺少演员?) – Athul

+0

@Athul对不起,忘记投入这些CheckBox和Repeater控件。我更新了代码。 – jadarnel27

相关问题