2017-08-27 56 views
0

外部Repeater有兩個CheckBoxes,內部Repeater內部有兩個複選框。檢查Asp.Net外部Repeater內部Repeater內的複選框

我想在檢查外部Repeater的CheckBox時自動檢查內部Repeater的CheckBox。

HTML標記:

<asp:Repeater ID="repOuter" runat="server"> 
    <ItemTemplate> 
     <asp:CheckBox ID="chkOuter" runat="server" 
      OnCheckedChanged="chkOuter_CheckedChanged" /> 

     <asp:Repeater ID="repInner" runat="server"> 
      <ItemTemplate> 
       <asp:CheckBox ID="chkInner" runat="server" /> 
      </ItemTemplate> 
     </asp:Repeater> 

    </ItemTemplate> 
</asp:Repeater> 

代碼隱藏

protected void chkOuter_CheckedChanged(object sender, EventArgs e) 
{ 
    // can't have access to inner CheckBox placed inside Inner Repeater 
    CheckBox innerCheckBox; // how? 

    innerCheckBox.Checked = true; // want to check it 
} 

回答

1

你可以試試這個(雖然未經測試)。

CheckBox chkOuter = (sender as CheckBox); 
RepeaterItem item = (RepeaterItem)chkOuter.NamingContainer; 
Repeater rp = item.FindControl("repInner") as Repeater; 
foreach (RepeaterItem item in rp.Items) 
{  
    (item.FindControl("chkInner") as CheckBox).Checked = chkOuter.Checked; 
} 
相關問題