[c#.net] problemen ItemTemplate ism webservice

Pagina: 1
Acties:

  • foske
  • Registratie: Juli 2001
  • Laatst online: 05-05 19:49
Ik zit nu met een heel vaag probleem, maar na een dag zoeken, heb ik toch maar besloten om er een topic over te openen, hoewel ik waarschijnlijk iets heel stoms ben vergeten...

Ik heb een webservice, waaruit custom business objecten komen. Dit is een collection van de klasse Browser.

Deze webservice moet weergegeven worden in een aspx bestand met daarin een repeater.

Alles gaat goed, totdat ik via de methode <%# DataBinder.Eval(Container.DataItem, "Naam") %> in mijn template de gegevens voor property Naam wil ophalen.

Dan komt deze error"DataBinder.Eval: Browser bevat geen eigenschap met de naam Naam. "

Hier lijkt het er dus op dat hij niet snapt dat de klasse Browser ook een property Naam heeft. Maar deze heeft hij wel degelijk.

De code behind voor het binden van de repeater:
C#:
1
2
3
4
Rapportage rapportage = new Rapportage();     //rapportage is de webserivce
Techniek techniek = rapportage.techniek();      
browsers.DataSource = techniek.Browsers;     //browser is de naam van de repeater, techniek.Browsers is een collection van Browser
browsers.DataBind();


vrij simpel dus. Bovenaan de pagina wordt ook de namespace van de webservice geincluded.

Wat dus heel krom is, is dat de volgende code wel werkt:
C#:
1
Response.Write(techniek.Browsers[0].Naam);



Ik heb ook al geprobeerd om de databind op te schrijven als:
<%# ((demo.webservice.Browser)Container.DataItem)[Naam"] %>
En zon beetje alle varianten die ik op internet kon vinden, maar dan krijg ik de melding dat demo.webservice.Browser niet bestaat.

En met <%# Container.DataItem %> in de template, print hij op het scherm demo.webservice.Browser, dus daar kent hij de klasse wel.

Op een of andere manier is de aspx pagina dus niet op de hoogte van de klasse Browser, dus ergens zit de link fout tussen de webservice proxy, en de aspx pagina, maar waar...

Ik heb met deze klassen (zonder webservice) de boel wel goed aan een repeater kunnen koppelen, dus ik denk dat de fout daar zit.
Iemand die mij in de juiste richting kan sturen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:54

gorgi_19

Kruimeltjes zijn weer op :9

Meest eenvoudige lijkt me om een eigen template class te maken, welke ITemplate implementeert.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:36
Hoe ziet jouw custom business object eruit die je terugkrijgt van je web-service ?
(enkel relevante code aub).

Is Naam wel een property ? (geen field, maar een echte property met getter en setter ? )

Ben je zeker dat je webservice goed is ? Dat ie data returned ?
Ik dacht dat je bij een webservice altijd de FQN moest gebruiken.

[ Voor 25% gewijzigd door whoami op 22-06-2005 10:50 ]

https://fgheysels.github.io/


  • foske
  • Registratie: Juli 2001
  • Laatst online: 05-05 19:49
De response.write doet het wel goed, dus de webservice werkt wel goed. Ook zijn het echte property's met een getter en een setter. Kan helaas nu niet bij de code omdat ik die op een andere machine staat.

Maar ik denk dat als ik de ITemplate duik, dat ik er wel aan uit moet komen. Voor zover ik zag kan ik daarmee de boel omzeilen.

iig bedankt en als de ITemplate niet werkt, dan zullen jullie me weer terug zien verschijnen ;)

Verwijderd

Fossie schreef op woensdag 22 juni 2005 @ 10:46:
Ik heb ook al geprobeerd om de databind op te schrijven als:
<%# ((demo.webservice.Browser)Container.DataItem)[Naam"] %>
En zon beetje alle varianten die ik op internet kon vinden, maar dan krijg ik de melding dat demo.webservice.Browser niet bestaat.
Heb je

<%# ((demo.webservice.Browser)Container.DataItem).Naam %>

ook geprobeerd?