Unable to find CheckBox inside a nested repeater

None

I have a nested repeater and a check box inside that, Like this

<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>

And I have button outside this repeater, On this button click event I want to get all the values of that check box. I have tried some thing like this,

 protected void btnSave_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem repeated in rptInterestCategory.Items)
        {
            var rptInterests = (Repeater)FindControlRecursive(repeated, "rptInterests");
            foreach (RepeaterItem repeatedInterest in rptInterests.Items)
            {
                var cbInterest = (CheckBox)FindControlRecursive(repeated, "cbInterest");

                if (cbInterest.Checked)
                {
                    name = cbInterest.Text;
                }
            }
        }
}
 public static Control FindControlRecursive(Control root, string id)
    {
        if (root.ID == id)
            return root;

        return root.Controls.Cast<Control>()
            .Select(c => FindControlRecursive(c, id))
            .FirstOrDefault(c => c != null);
    }

Now the problem is that, This code always finds first CheckBox only, So i get repeated values. IS there any way to loop through each check box and find correct values?

Junius

You call FindControlRecursive in the inner loop with the same parameters as outer loop. That's the problem?

var cbInterest = (CheckBox)FindControlRecursive(repeatedInterest , "cbInterest");

the full code:

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (RepeaterItem repeated in rptInterestCategory.Items)
    {
        var rptInterests = (Repeater)FindControlRecursive(repeated, "rptInterests");
        foreach (RepeaterItem repeatedInterest in rptInterests.Items)
        {
            var cbInterest = (CheckBox)FindControlRecursive(repeatedInterest , "cbInterest");

            if (cbInterest.Checked)
            {
                name = cbInterest.Text;
            }
        }
    }

}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Find Repeater Nested Anywhere Inside Another Repeater

From Dev

Button inside Nested Repeater

From Dev

Find nested repeater on OnCommand event

From Dev

Find nested repeater on OnCommand event

From Dev

Protractor find element inside a repeater

From Dev

Advanced Custom Fields checkbox inside repeater

From Dev

unable to bind data to label inside repeater

From Dev

Unable to find checkbox with Capybara

From Dev

Use repeater inside repeater

From Dev

Check CheckBox inside inner Repeater from outer Repeater checked in Asp.Net

From Dev

Protractor find element inside a repeater inside a custom directive

From Dev

Advanced Custom Field post object inside 2 nested repeater is not working

From Dev

How to give a navigation to nested child gridview inside a repeater

From Dev

How to find label value inside repeater control using C#?

From Dev

Nested ListView or Nested Repeater

From Dev

Change Checkbox id in Repeater

From Dev

checkbox checking all siblings of nested checkbox inside a td

From Dev

.slideToggle nested ajax repeater

From Dev

Nested Class In ASP Repeater

From Dev

Nested Repeater HeaderTemplate issue

From Dev

ItemDataBound in Nested repeater

From Dev

Unable to hide a nested list wihch is inside a div

From Dev

If statement inside Repeater control

From Dev

User Control Inside Repeater

From Dev

Index of a button inside a Repeater

From Dev

Multiple popups inside repeater

From Dev

Button Onclick inside a repeater

From Dev

Button inside a repeater is not functioning

From Dev

Protractor Repeater Inside Element