2017-08-27 66 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; 
} 
相关问题