Avatar billede elv Nybegynder
06. januar 2003 - 16:50 Der er 9 kommentarer

User control med databinding

Jeg har lavet en user-control med nogle properties i, det kunne f.eks. være en login-control med en property, der hedder "Navn", og jeg sender initial-parametre med på følgende måde:
<GUI:LoginForm id="Login" Navn="hej" runat="server" />
Dette kan jeg sagtens få det til at virke. Hvis jeg vil have at den skal vises i en DataList i edittemplate (okay, dårligt eksempel med en login-form, men jeg har lavet et eksempel, fordi det jeg er ved i øjeblikket ikke lige kan forklares), kan jeg imidlertid ikke få databinding til at fungere, som det virker med f.eks. knapper. Altså, Følgende kode virker ikke:
<GUI:LoginForm id="Login" Navn=<%# DataBinder.Eval(Container.DataItem, "ID") %> runat="server" />

Dette kan jeg ikke forstå, da det jo virker på f.eks. en ASP:LinkButton:
<ASP:LinkButton id="btnEdit" CommandName="Edit" Text=<%# DataBinder.Eval(Container.DataItem, "ID") %> runat="server" />

Er det fordi man selv skal implementere databinding ind i sin user-control eller hvad? Det ville jeg nemlig synes var meget mystifystisk.... Er der nogen, der ved hvordan man får dette gjort? (Eller nogen der har en workaround der er lige så smart.... dog godtages for store fuskerløsninger ikke :) ).
Avatar billede burningice Nybegynder
06. januar 2003 - 17:19 #1
endelig en med en fin problemformulering... der mangler dog en lille ting.. du siger at det ikke virker... det er lidt som at sige at min compuger ikke virker, hvad er der galt.
Kan du evt. komme med lidt om hvad der går galt.. meller den fejl når du compiler, eller står der bare ikke noget på siden?
Avatar billede burningice Nybegynder
06. januar 2003 - 17:19 #2
umiddelbart er det eneste jeg kan foreslå er at du mangler nogle plinger

<GUI:LoginForm id="Login" Navn='<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server" />
Avatar billede elv Nybegynder
06. januar 2003 - 17:38 #3
Sorry... i mit hoved vidste jeg jo godt hvad jeg mente, men det er jo ikke altid nok :)

Det der sker er, at parametren ikke bliver sat. Det virker som om compileren fjerner det fra koden.. ihvertfald er parametren tom, modsat til når jeg sætter den direkte (med Navn="Hej", hvor den fint bliver sat.) Og jeg har desværre prøvet med alverdens plinger og plingelinger... ', " og ingenting ihvertfald :). Med " vil den ikke compile, og med ingenting eller ' bliver parametrene ikke sat.
Avatar billede burningice Nybegynder
06. januar 2003 - 17:45 #4
uhm.. og du siger at hvis du binder til f.eks. en label, selv samme sted i datalisten, så kommer det frem... altså...

<GUI:LoginForm id="Login" Navn='<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server" />
<asp:label id="myLabel" text'<%# DataBinder.Eval(Container.DataItem, "ID") %>' runat="server"/>

giver

[ingenting]
id
Avatar billede elv Nybegynder
06. januar 2003 - 18:34 #5
fuldstændig korrekt... mystisk, ik? :)
Avatar billede Slettet bruger
06. januar 2003 - 21:46 #6
Har du husket at skrive Page.Databind(); i din Page_Load event i din code behind ???
Avatar billede burningice Nybegynder
06. januar 2003 - 21:56 #7
hmm... jeg har da ellers skrevet et langt indlæg omkring databinding jeg fandt i SDK'et.. nå, nu får du den korte version

det lader til at være lidt mere arbejde ved en webcontrol, når den skal bruges i forbindelse med databinding

Developing a Templated Data-Bound Control
ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpcondevelopingtemplateddataboundcontrol.htm
Avatar billede elv Nybegynder
07. januar 2003 - 09:36 #8
Jeg har databindet den... ikke med Page.Databind();, men den sidder i en datalist som jeg binder. Skal man også gøre det på pagen?

Den msdn du refererer til kan findes på:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondevelopingtemplateddataboundcontrol.asp

Men det er rimelig meget kode, der skal til for at få det til at virke... kan det laves uden de 50 liniers kode der ifølge den msdn-doc skal smides på? Det er rimelig ekstremt hvis der skal så meget til for at lave en user control med 2 tekstbokse...
Avatar billede elv Nybegynder
07. januar 2003 - 09:37 #9
(sidder ikke lige ved min rigtige maskine nu, så jeg kan ikke lige teste det....)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester