2014-03-13 29 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

相關問題