Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[ASP.NET 2.0 VB] Usercontrol aanroepen in class

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een web usercontrol gemaakt met 2 controls daarop. Ik wil deze web usercontrol instantieren vanuit een class om vervolgens dynamisch op meerdere formulieren te plaatsen. Deze formulieren worden allemaal dynamisch opgebouwd uit een database met allerlei controls. Ik vind op internet allemaal voorbeelden hoe je dat kan doen op een webpage maar niet voor een class.
Ik het het volgende geprobeerd:

uc As Control = LoadControl("..\usercontrol.ascx")

Dan krijg ik de melding: Name 'LoadControl' is not declared.
Op een webpage werkt het inderdaad wel, maar een class heeft die property helaas niet.
Ik heb het idee dat het moet kunnen, want je kan ook gewoon een textbox instantieren vanuit een class.

Ik hoop dat iemand mij met dit probleem kan helpen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:22
Tuurlijk heeft een class die method niet. (Het is dus geen property maar een method).
Een webpage is eigenlijk niets anders dan een class met een aantal methods / properties, etc...

Maak dus gewoon in je class (factory class) waarmee je die control wilt maken, een LoadControl method...

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 21 augustus 2007 @ 10:55:
Tuurlijk heeft een class die method niet. (Het is dus geen property maar een method).
Een webpage is eigenlijk niets anders dan een class met een aantal methods / properties, etc...

Maak dus gewoon in je class (factory class) waarmee je die control wilt maken, een LoadControl method...
oke ik snap het. maar hoe roep ik die usercontrol dan aan vanuit mijn class ?
want in die LoadControl method moet ik dus die usercontrol returnen neem ik aan ?
ik ben zelf al aan het zoeken op internet maar zie alleen maar voorbeeld vanuit een webpage.
moet je die usercontrol ook refereren of registreren in je project of class file ?
weet jij misschien de juiste zoekterm hiervoor ?

[ Voor 5% gewijzigd door Verwijderd op 21-08-2007 11:12 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:22
reflection
dynamically creating controls
loadassembly
Assembly.CreateInstance

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Waarom inherit je niet gewoon vanuit UserControl? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

LoadControl kun je nooit gebruiken vanuit een 'normale' class. LoadControl laad behalve die class van dat control ook de template (ascx file). Dat laatste is presentatie. Alleen classes afgeleid van UserControl 'begrijpen' wat zij met de presentatie moeten doen.

Er zijn twee mogelijkheden. Jij zorgt dat jouw builder class is afgeleid van UserControl (zodat je LoadControl kunt gebruiken) of je gebruikt alleen de code behind classes. Let wel dat zo'n code behind dan de volledige presentatie moet doen (ascx is leeg).

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
gorgi_19 schreef op dinsdag 21 augustus 2007 @ 11:14:
Waarom inherit je niet gewoon vanuit UserControl? :?
bedankt nu is de foutmelding weg. Ik heb 2 methods in de usercontrol, als ik die wil aanroepen moet ik dat zeker met reflection doen ? of is er nog een andere manier ?

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Wat wil je uberhaupt voor elkaar krijgen? Waarvoor gebruik je de ascx? Als template? Verder kan je de control gewoon casten naar de control die je wilt, als die van hetzelfde type zijn of findcontrol gebruiken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op dinsdag 21 augustus 2007 @ 11:40:
Wat wil je uberhaupt voor elkaar krijgen? Waarvoor gebruik je de ascx? Als template? Verder kan je de control gewoon casten naar de control die je wilt, als die van hetzelfde type zijn of findcontrol gebruiken.
Het is een enquete systeem. De usercontrol gebruik ik als onderdeel van een vraag. De admin kan een onder andere een multiple choice vraag aanmaken en dan kan de admin aangeven of er een open antwoord veld moet bij zitten, dus zoiets als anders, nl. die kan dus ook meerdere keren voorkomen, en die usercontrol zorgt ervoor dat het tekstveld verschijnt indien aangevinkt en omgekeerd. Ik heb dus max 10 pagina's met 5 vragen per pagina. En die class die ik heb haalt de config vanuit de database en vult de pagina's met de bijbehorende vragen/controls. In die class doe ik nu een check of open antwoord bij een van de multiple choice mogelijkheden is aangevinkt, zo ja dan moet hij de usercontrol op de webpagina plaatsen en anders alleen een checkbox. Ik heb dus 2 public property methods gemaakt die de waarden returnen van de checkbox en textbox op de user control. Bij de save actie moet ik die dus aanroepen en de waarden naar de database schrijven. Nu snappen jullie mijn situatie hopelijk.

Ik moet dus die usercontrol meerdere keren kunnen instantieren en toevoegen aan de webpagina(s).
Het beste lijkt mij om ze een unieke id mee te geven die zodat ik bij de save actie deze kan opvragen en naar de juiste kolom in de database kan wegschrijven. Zo doe ik het met de standaard controls (checkbox, textbox) ook.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Blijft de vraag: Waarom gebruik je een .ascx pagina? Je kan gewoon een UserControl toevoegen aan de controlcollection.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op dinsdag 21 augustus 2007 @ 11:58:
Blijft de vraag: Waarom gebruik je een .ascx pagina? Je kan gewoon een UserControl toevoegen aan de controlcollection.
ascx is toch een UserControl, ik gebruik die omdat ik dacht dat dat de beste oplossing was om een vaker voorkomende situatie maar 1 x te hoeven programmeren en deze steeds aanroepen. Ik heb net de applicatie getest en het tonen van de usercontrol op de webpagina werkt. En de tekstbox tonen indien vinkje aan staat en omgekeerd werkt ook. Nu alleen nog de waarden eruit halen en het werkt in zijn geheel.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op dinsdag 21 augustus 2007 @ 12:08:
[...]
ascx is toch een UserControl, ik gebruik die omdat ik dacht dat dat de beste oplossing was om een vaker voorkomende situatie maar 1 x te hoeven programmeren en deze steeds aanroepen. Ik heb net de applicatie getest en het tonen van de usercontrol op de webpagina werkt. En de tekstbox tonen indien vinkje aan staat en omgekeerd werkt ook. Nu alleen nog de waarden eruit halen en het werkt in zijn geheel.
Een ascx is een usercontrol, maar je kan ook alles in de code oplossen zonder gebruik te maken van .ascx bestanden. Met FindControl kan je de controls referencen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op dinsdag 21 augustus 2007 @ 12:13:
[...]

Een ascx is een usercontrol, maar je kan ook alles in de code oplossen zonder gebruik te maken van .ascx bestanden. Met FindControl kan je de controls referencen.
ja, dan wordt het findcontrol("usercontrol").findcontrol("textbox1").text toch ?

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Je vergeet eea aan casting, maar in beginsel klopt het ja.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1