Nä...nu har jag antingen förklarat för dåligt, eller så har du inte hängt med! :)
1. Jag har en Repeater, och i den har jag ytterligare en repeater (ChildRepeater).
2. När jag med ItemDataBound sätter värderna i huvudrepeatern så sätter jag även datasource på ChildRepeatern och gör DataBind() på den.
3. Nu när Childrepeatern binds så vill jag sätta dess värden i dess ItemDataBound, men det finns ju ingen metod associerad med den händelsen. Så vad jag försökte göra i koden ovanför var att tilldela en händelsehanterare till dess "ItemDataBound" (Det är annars rätt syntax för VB.NET).
MEN, den tar inte den.
Om jag däremot på Childrepeatern själv i HTML-läget sätter:
OnItemDataBound="repResult1Detail_ItemDataBound"
Så funkar allt. Men jag vill sätta det i kodläget istället.
Vad jag kan se så är det samma som jag har gjort, fast mitt är i VB.NET...
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
'GET PRICE DATA
With CType(e.Item.FindControl("repResult1Detail"), Repeater)
.DataSource = NY_LISTA
.DataBind()
End With
End If
Det funkar som sagt klockrent om jag sätter det i HTML-koden. Men jag har för mig att det är sämre för prestandan, då den nu måste verifiera metodnamnet och använda Reflection för att binda metoden till händelsen....
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
'GET PRICE DATA
With CType(e.Item.FindControl("repResult1Detail"), Repeater)
.DataSource = NY_LISTA
.DataBind()
End With
AddHandler CType(e.Item.FindControl("repChild"), Repeater).ItemDataBound, AddressOf MY_METHOD
End If