In meinen Augen ist das ganze doch etwas chaotisch gelöst - und so lässt sich 
es relativ schlecht sagen, an was es genau liegt!

1. Dein ParentRepeater ItemDataBoundEvent - wird warscheinlich niemals gefeuert!

Das machste in der ASPX Seite via:
<asp:Repeater id="parentRepeater" OnItemDataBound=" 
parentRepeater_ItemDataBound" runat="server">

oder im CodeBehind - im Page Load Bereich!

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
        KatIdent = "100000016"
        If Not Page.IsPostBack Then
                parentRepeater.ItemDataBound += new 
RepeaterItemEventHandler(parentRepeater_ItemDataBound)
            parentRepeater.DataSource = GetArtists()
            parentRepeater.DataBind()
        End If
    End Sub

Dies ist notwendig, damit er weiß, dass Du selbst in die DatenBindung 
eingreifen möchtest!

2. Das ItemDataBound Event des ParentRepeaters ist in meinen Augen auch nicht 
optimal gelöst! Dort solltest Du den Code nur im ItemCommand bzw. 
AlternatingItemCommand 

In C# sieht das so aus:
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == 
ListItemType.AlternatingItem)
{
        Hier jetzt den ChildRepeater holen - und ItemDataBoundCommand festlegen!
}

3. Ansonsten wimmelt es noch so von Fehlern, auf die wir dann einzeln eingehen 
müssen, da ich das jetzt nicht alles auf einmal überblicken kann. Grundsätzlich 
solltest Du Dir aber mal einen geradlinigeren Weg der Implementierung suchen! 
Einmal machste die DatenBindung in der ASPX Seite - und einmal im CodeBehind - 
man sollte sich schon auf eine Art festlegen.


-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Andy Doebeli
Gesendet: Sonntag, 11. Dezember 2005 15:07
An: [email protected]
Betreff: [Asp.net] AddHandler in verschachteltem Repeater

Hallo zusammen,

Ich versuche einem verschachtelten Repeater mit AddHandler ein ItemCommand
und ein ItemDataBound EventHandler hinzuzufügen. Leider werden die
Ereignisse nicht ausgelöst. Eine Fehlermeldung bekomme ich keine.
Wer kann mir dabei helfen?

Thanks Andy

.aspx ******************************************

<asp:Repeater id="parentRepeater" runat="server">
        <itemtemplate>
                <b><%# DataBinder.Eval(Container.DataItem, "URCDARTIST")
%></b> -
                <%# DataBinder.Eval(Container.DataItem, "URCDTITEL") %><br>
                <asp:repeater id="childRepeater" runat="server"
                datasource='<%# GetSongs(Container.DataItem("URCDid")) %>'>
                        <itemtemplate>
                                <%# Container.DataItem("TRACKTITEL") %>
                                <ASP:IMAGEBUTTON id="btnFavorit"
RUNAT="server" WIDTH="14px"
                                        HEIGHT="14px"
IMAGEURL="images/favorit.gif"
        
COMMANDNAME="Favorit"></ASP:IMAGEBUTTON><br>
                        </itemtemplate>
                </asp:repeater>
        </itemtemplate>
</asp:Repeater>

.aspx.vb ******************************************

    Dim KatIdent As String

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
        KatIdent = "100000016"
        If Not Page.IsPostBack Then
            parentRepeater.DataSource = GetArtists()
            parentRepeater.DataBind()
        End If
    End Sub

    Sub parentRepeater_ItemDataBound(ByVal Sender As Object, ByVal E As
RepeaterItemEventArgs) Handles parentRepeater.ItemDataBound
        Dim childRepeater As Repeater =
CType(E.Item.FindControl("childRepeater"), Repeater)
        AddHandler childRepeater.ItemCommand, AddressOf
childRepeater_ItemCommand
        AddHandler childRepeater.ItemDataBound, AddressOf
childRepeater_ItemDataBound
    End Sub

    Function GetArtists() As DataTable
        Dim ds As New DataSet
        Dim conn As New OleDbConnection(SQL_CONNECTION_STRING)
        Dim strSQL As String

        strSQL = "SELECT URCDARTIST, URCDTITEL, URCDid FROM WEB_TRACK" & _
            " WHERE CATEGORYid = " & KatIdent & " GROUP BY URCDARTIST,
URCDTITEL, URCDid" & _
            " ORDER BY URCDARTIST"

        Dim da As New OleDbDataAdapter(strSQL, conn)
        da.Fill(ds, "tblArtists")
        Return ds.Tables("tblArtists")
    End Function

    Function GetSongs(ByVal x As String) As DataTable
        Dim conn As New OleDbConnection(SQL_CONNECTION_STRING)
        Dim strSQL As String
        Dim ds As New DataSet

        strSQL = "SELECT * FROM WEB_TRACK WHERE URCDid = " & x & ""

        Dim da As New OleDbDataAdapter(strSQL, conn)
        da.Fill(ds, "tblSongs")
        Return ds.Tables("tblSongs")
    End Function

    Public Sub childRepeater_ItemDataBound(ByVal source As Object, ByVal e
As System.Web.UI.WebControls.RepeaterItemEventArgs) 'Handles
childRepeater.ItemCommand
        Response.Write("ItemDataBound ausgelöst")
    End Sub

    Public Sub childRepeater_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.RepeaterCommandEventArgs) 'Handles
childRepeater.ItemCommand
        Response.Write("ItemCommand ausgelöst")
    End Sub

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an