2017-08-27 35 views
0

2つのチェックボックスが外側のRepeaterにあり、その他が内側のRepeaterにあります。内部RepeaterのCheckBoxを外部RepeaterからAsp.Netでチェックしてください

リピータのチェックボックスをチェックすると、内部リピータのチェックボックスを自動的にチェックしたいと思います。

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; 
} 
関連する問題