We help IT Professionals succeed at work.

How to get reference to nested listview using findcontrol method

mugsey
mugsey asked
on
2,349 Views
Last Modified: 2012-08-13
I have two listview controls nested

An outer listview and an inner listview

The innerlistview is a set of checkboxes that are populated from a database

I want code that uses the findcontrol method to get a reference to the inner listview so I can loop through all the checkboxes generated from the database and set them to false.

The markup for the controls is below
<asp:ListView ID="outerListView" runat="server" DataKeyNames="Id" OnItemDataBound="outerListView_ItemDataBound">
                        <LayoutTemplate> 
                            <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
                        </LayoutTemplate>
                        <ItemTemplate>
                            <fieldset>
                                <legend>
                                    <%#Eval("Description") %></legend>
                                <!-- inner listview -->
                                <asp:ListView ID="innerListView" runat="server" DataKeyNames="Id" OnItemDataBound="innerListView_ItemDataBound">
                                    <LayoutTemplate>
                                        <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
                                    </LayoutTemplate>
                                    <ItemTemplate>
                                        <asp:CheckBox ID="_checkBoxField" runat="server" Text='<%#Eval("Description") %>'
                                            OnCheckedChanged="_checkBoxField_CheckedChanged" />
                                        <br />
                                    </ItemTemplate>       
                                </asp:ListView>
                                <!-- innerlistview -->
                            </fieldset>
                        </ItemTemplate>                     
                    </asp:ListView>

Open in new window

Comment
Watch Question

Commented:
Hi,
A reference to the parent listview is passed to the itemdatabound you can use it to find the child listview

protected void outerListView_DataBound(object sender, EventArgs e)  
{  
    ListView outerLstVw = (ListView)sender;  
    Listview innerLstVw = (ListView)outerLstVw.FindControl ("innerListView");
}

for more info you can also refer to the discussion here
http://forums.asp.net/t/1465507.aspx

I hope that this helps you

Thanks and regards,
Venki

Author

Commented:
OK thanks.   However can I do the same thing you suggested but use the FINDCONTROLOFTYPE method?

As the html generated ID of each checkbox will be different.

Commented:
hey,
Where did you got the method FINDCONTROLOFTYPE?
I have not used it before need to check that.
Sorry could not help you on this.

Thanks and regards,
Venki
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions