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