Toon posts:

[ASP.NET] 2 properties in een attribuut binden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik hoop dat ik het goed/duidelijk uitleg, maar kan iemand mij uitleggen waarom het volgende niet doet wat ik verwacht:

code:
1
2
<asp:label runat="server"
  text='<%# DataBinder.Eval(Container.DataItem, "veld1") %> iets <%# DataBinder.Eval(Container.DataItem, "veld2") %>'/>


en dit bijvoorbeeld wel:

code:
1
2
<asp:label runat="server"
  text='<%# DataBinder.Eval(Container.DataItem, "veld1") & " iets " & DataBinder.Eval(Container.DataItem, "veld2") %>'/>


In het eerste voorbeeld krijgt de .Text van het label de waarde " iets ", in het tweede voorbeeld krijgt het netjes [waarde_van_veld1] & " iets " & [waarde_van_veld2] als waarde. Ik krijg ook verder geen foutmeldingen op het eerste voorbeeld, de waarden van 'veld1' en 'veld2' worden gewoon niet in het .Text attribuut van het label geplaatst.

Ik weet overigens 100% zeker dat veld1 en veld2 niet leeg zijn.

bvd

[ Voor 42% gewijzigd door Verwijderd op 04-08-2004 16:58 . Reden: kleine aanpassing ]


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
De dubbele quotes van text="..." moet je vervangen door enkele quotes om het werkend te krijgen.
code:
1
2
<asp:label runat="server"
  text='<%# DataBinder.Eval(Container.DataItem, "veld1") %> iets <%# DataBinder.Eval(Container.DataItem, "veld2") %>'/>

| Toen / Nu


Verwijderd

Topicstarter
Je hebt wel gelijk, ik pas het even aan in de openingspost. Maar dit is niet het probleem.

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Volgens mij is dat omdat je hier niet zomaar tekst neerkwakt maar een string opbouwt. Zelfde als een SQL query dus, daar moet je ook de & operator gebruiken bij elke variabele die je aan een string toevoegt.
Probeer eens:
code:
1
<asp:label runat="server" text='iets'/>

?

Volgens mij werkt dat dus ook niet. Zelfde reden denk ik dat je geen dubbele quotes kunt gebruiken: de compiler raakt in de war doordat ie 2 uit te voeren statements in 1 regel ziet, en de ene (de Databinder.Eval) moet eerder uitgevoerd worden dan de label control.

[ Voor 36% gewijzigd door Not Pingu op 05-08-2004 15:35 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


Verwijderd

Topicstarter
Zoiets zal het inderdaad wel zijn, Gunp01nt. Toch heb ik nog steeds een beetje dat klok-klepel gevoel. Dus even een schopje, misschien dat er iemand ergens een artikel/tutorial weet waar het uitgelegd wordt?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik heb het niet uitgeprobeerd maar je zou bijvoorbeeld zoiets kunnen proberen

ASP.NET:
1
<%# DataBinder.Eval(Container.DataItem, "veld1") + " iets " + DataBinder.Eval(Container.DataItem, "veld2") %>

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1