Då har vi kört skallen i väggen igen Vad är det som går fel? Jag har gjort något liknande förut tror jag men minns inte att jag hade några problem. jag får 2 olika fel Jag skulle bygga upp det såhär: Det är nåt i den där stilen jag använder för att fylla med data, fast jag skickar istället in ett objekt av typen produkt som den userkontrollen får hantera bäst den vill Ja det är möjligt. Jag skickade i mitt fall bara in ett ID i usercontrolen och hämtade datat från databasen inifrån min usercontrol.Usercontrol i repeater itemtemplate
Jag tänkte jag skulle vara smart och göra livet enkelt för mig själv
I en webshop hade jag tidigare en repeater där produkterna loopades ut med en tillhörande "köp-knapp"
samma layout på denna används på 3 olika sidor och jag tänkte att man kanske skulle ta o lägga all kod för själva produkten i en usercontrol och vara ha den i repeaterns itemtemplate
Det gick jättebra tills jag tryckte på "köpknappen" (som även den ligger i usercontrolen)
Det jag vill åstakomma är helt enkelt en usercontrol som sköter både presentationen + funktionen att lägga till varan i varukorgen (eller egentligen hanterar ett anrop till min cart-klass, som i sin tur sköter om den biten)
Repeatern matas med en arraylist innehållande en "bunt" objekt av typen Produkt
hur i helsike hanterar man detta på ett så bra sätt som möjligt??Sv: Usercontrol i repeater itemtemplate
Var finns din cart-klass är den tillgänglig globalt?Sv:Usercontrol i repeater itemtemplate
antingen så klagas det på "object not set to.." , antar att det beror på att kontrollen inte får data vid postback
Alternativt får jag ett "postbackfel" "Invalid postback or callback argument........"
jag antar att jag trasslat in mig i diverse event-handling mm
Min cartclass anropas inte ens just nu utan jag testar bara med System.diagnostics.debug.writeline("testar")Sv: Usercontrol i repeater itemtemplate
Custom Usercontrolen:
Spara attributen i viewstate.. ex:
<code>public string varunamn {
get {return this.viewState["varunamn"]}
set {this.viewState["varunamn"] = value}
}</code>
annars kan du få problem vid postback.
Repeatern:
Fyll usercontrollens värden via en onItemDatabound klass.
<code><asp:repeater
id="varor"
onItemDataBound="FyllMedData"
runat="server"
>
<itemTemplate>
<minUC:UserContorlNamn
ID="vara"
/>
</itemTemplate>
</asp:Repeater></code>
code-behind:
<code>public void FyllMedData(object s, RepeaterItemEventArgs e) {
vara = e.findControl("vara");
vara.varunamn = "Penna";
}</code>
Hoppas det hjälper, är inte 100% säker på hur koden ska skrivas och kan inte kolla det just nu men det borde ge en idé om hur du ska göra.Sv:Usercontrol i repeater itemtemplate
Får man inte en löjligt stor viewstate om jag skall spara undan all produktinfo för säg, 30 produkter Sv: Usercontrol i repeater itemtemplate
Det blir å andra sidan många uppkopplingar till databasen då.
Du kan ju testa utan viewstate, jag minns inte varför jag måste använda det men det hade någonting med postback och värden som frösvann att göra.