Welcome to WebmasterWorld Guest from

Forum Moderators: ocean10000

Message Too Old, No Replies

Nested Repeaters - Hiding Child Headers if it contains no data



8:21 pm on May 28, 2008 (gmt 0)

10+ Year Member


I have 2 nested repeaters and I am trying to find out how I can stop the headers belonging to the child repeater from showing when there is no data to display in the child repeater.

In the code behind I am building my nested repeaters like this:-
SqlDataAdapter sda = Comments_DataAccess.GetAllComments_SDA(int.Parse(Session["sarID"].ToString()), int.Parse(Session["kqID"].ToString()), "S");
DataSet ds = new DataSet();
sda.Fill(ds, "comments_strength");

SqlDataAdapter sda2 = Actions_DataAccess.GetAllActionsForQuestion_SDA(int.Parse(Session["sarID"].ToString()), int.Parse(Session["kqID"].ToString()));
sda2.Fill(ds, "all_actions");

ds.Relations.Add("sw_id", ds.Tables["comments_strength"].Columns["sw_id"], ds.Tables["all_actions"].Columns["sw_id"], false);

rep_questions_strengths.DataSource = ds.Tables["comments_strength"];

In the aspx page I have the Datasource set on the child Repeater:-
<asp:Repeater ID="rep_questions_strength_actions" DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("sw_id") %>' runat="server">

But at the moment it displays the parent rows and then it displays the child column headers when there are no children to display - I want to stop it from displaying these headers. Can anyone point me in the right direction please?



11:13 pm on May 28, 2008 (gmt 0)

10+ Year Member

Would the page render as desired if, given an empty child table, you set the Visible property on the child Repeater to false?


7:26 am on May 29, 2008 (gmt 0)

10+ Year Member


This would indeed work but I'm not sure how I can set the child repeaters visible property when I am setting the data for both repeaters using a dataset with a relation?

I think I need to set an event on the repeater but I'm not sure which: OnPreRendering, OnDataBinding, OnItemDataBound, etc.

Any help would be very much appreciated as this is driving me crazy :-)

Thanks for your help so far.



11:15 am on May 29, 2008 (gmt 0)

10+ Year Member

Hi Laura,

Handling the PreRender event on the child repeater, and setting Visible (depending on the row count) there sounds like a good idea. I think that DataBinding is raised before data binding occurs, so that wouldn't help, and ItemDataBound is raised per item, so maybe that event could be handled on the parent Repeater.



11:29 am on May 29, 2008 (gmt 0)

10+ Year Member

thank you.....I've managed to set the visible property on the repeater tag:-
<%#(((DataRowView)Container.DataItem).Row.GetChildRows("sw_id").Length > 0)%>

thanks again for you''re help


Featured Threads

Hot Threads This Week

Hot Threads This Month