Solved

Nested repeater inside another nester repeater

Posted on 2006-11-28
5
727 Views
Last Modified: 2008-01-09
Hi Experts,

I am trying to build a comments report wich is 3 levels deep. The top level is the 'Department' next level is the 'department's comments' then finally, the 'Products' that the comments was assigned.

For this I have a repeater that brings up a list of departments for a given date range that have comments, then I have a nested repeater to show the comments for each department. Now I need a 3rd repeater that will show the products for the comments since the customer service guys can select products and those get saved in a separate table that relates to the comment by comment and product ID.

For my first nested repeater I have this:

'Get the list of comments for the given department
    Protected Sub rpt_report_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt_report.ItemDataBound

        'Get variables to send to stored proc
        Dim startDate As String = Request.Form("txt_dateStart")
        Dim endDate As String = Request.Form("txt_dateEnd")
        Dim depId As Integer = e.Item.DataItem("depId")

        'Attach datasource to repeater
        Dim conn As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("conn"))
        conn.Open()

        'Call the stored procedure we need
        Dim sql As String = "exec sp_rpt_departments_10" & "'" & startDate & "'," & "'" & endDate & "'," & depId

        Dim ds As New DataSet
        Dim da As SqlDataAdapter
        da = New SqlDataAdapter(sql, conn)
        da.Fill(ds)

        Dim nestedRpt As New Repeater
        nestedRpt = e.Item.FindControl("rpt_comments")

        'Find nested repeater
        If ds.Tables(0).Rows.Count > 0 Then
            'Bind datasource
            nestedRpt.DataSource = ds.Tables(0)
            nestedRpt.DataBind()
        Else
            nestedRpt.Visible = False
        End If

        conn.Close()

    End Sub

That works just fine, my question is, how do I access the ItemDataBound event of the nested repeater so that I can give the 3rd repeater a datasource based on the row id from the second repeater.

Thanks in advance, I really need this one.

-Javier
0
Comment
Question by:jmar_click
  • 3
  • 2
5 Comments
 
LVL 9

Accepted Solution

by:
kraffay earned 500 total points
ID: 18030268
Add this code to your class:

Protected WithEvents nestedRpt as Repeater

Then, on the ItemDataBound event of the master repeater, grab a handle to your nested repeater:

nestedRepeater = rpt_report.FindControl("nestedRepeater") -- <!-- this code is questionable, without seeing your markup, I can't know the exact syntax.

Once you have a handle to your repeater, you can dynamically set its datasource.
0
 
LVL 3

Author Comment

by:jmar_click
ID: 18030365
I have the first nested repeater working.

heres a breakdown of the way the repeaters are set up

master repeater = rpt_report
->first nested repeater = rpt_comments (nested inside rpt_report)
--> --> 2nd nested repeater = rpt_departments (nested inside rpt_comments)

nestedRpt = e.Item.FindControl("rpt_comments") <-- works fine to find the rpt_comments nested repeater. But maybe there is a better way.

Where do I add Protected WithEvents nestedRpt as Repeater, at the top of the class?
0
 
LVL 9

Expert Comment

by:kraffay
ID: 18030390
Yes, and the declaration at the top of the class
0
 
LVL 3

Author Comment

by:jmar_click
ID: 18030456
That didn't work, but I think you gave me a lead to something that might work. I was getting an error:
 Compiler Error Message: BC30506: Handles clause requires a WithEvents variable defined in the containing type or one of its base types.

But the Protected WithEvents rpt_comments As Repeater    fixed that, i may be able to directly use the rpt_comments_ItemDataBound event for the nested repeater now. Let me try it
0
 
LVL 3

Author Comment

by:jmar_click
ID: 18030599
It didn't work. I don't get an error, but the ItemDataBound event for the nested repeater never fires.

Can you give me a bit more explanation on your suggestion please?
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now