webForumDet fria alternativet

Repeater-problem

.NET

2 svar · 297 visningar · startad av teetee

Medlem sedan apr. 20052 inlägg
Frågan#1

Hej!
Jag har en web user control innehållande enbart en repeater enligt följande:

<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<a href="<%#Container.DataItem("lank")%>" target="main">
<%#Container.DataItem("namn")%>
</a>
<br>
</ItemTemplate>
</asp:Repeater>

I codebehind har jag denna rad:
Protected WithEvents Repeater1 As System.Web.UI.WebControls.Repeater

Ändå får jag "Object reference not set to an instance of an object."
När jag ska göra något med repeatern. Jag är säker på att det är den som är objektet ifråga.

Det kan vara värt att nämna att det funkade tidigare, när option strict var off.

Ändrat:
Felet verkar bero på att jag vill köra placeholder.Controls.Add(foo)
foo har jag dimmat som user controlens klass.

Nu undrar jag om det finns nåt sätt att lägga till web user controlen utan att dimma den som control. Anledningen till att jag vill göra det är att jag vill anropa en funktion i foo innan jag lägger in den i placeholdern

/Tomas

Medlem sedan sep. 20026 425 inlägg
#2

Har du codebehind-koden i en klass som ärver UserControl? Om du har repeatern i en användarkontroll så måste klassen du har din kod i ärva UserControl och ej Page.

public class xx : inherits UserControl

'procedurer etc.

end class

/r ah, läste ej det där med option strict.

Medlem sedan sep. 20011 914 inlägg
#3

Testa

Dim ctrl as UserControlClassNamnet = CType(Page.LoadControl("dinUserControl.ascx"), UserControlClassNamnet)
ctrl.DinProperty = "Lalala"
ctrl.MinFunktion()
placeholder.Controls.Add(ctrl)
258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)