Toon posts:

[ASP.NET] Webcontrol of Usercontrol gebruiken?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wie heeft er ervaringen met zowel het maken van een usercontrol (voor webapplicaties) als het maken van een custom webcontrol en waarom heb je in de ene situatie een usercontrol gemaakt en in de andere situatie een custom webcontrol?

In het geval van een usercontrol leid je je class af van System.Web.UI.UserControl en in het geval van een custom webcontrol leid je je class af van System.Web.UI.WebControls.WebControl.

Het "grote voordeel" van een usercontrol is imo dat je in de ascx-pagina op een eenvoudige manier je control kunt designen en dat je dus ziet hoe eea eruit gaat zien. Bovendien kun je eenvoudig het eventmodel implementeren en kun je (custom) webcontrols erop slepen. Je ziet echter zodra je het usercontrol op je aspx-pagina hebt gezet, niet meer hoe het control eruit ziet.

Het voordeel van een custom webcontrol lijkt mij dat je je control kunt "verstoppen" in een dll, dat je 'm aan je toolbox kunt toevoegen en nu zie je (design-time) wel hoe het er op de aspx-pagina uit ziet

Om alvast een voorzetje te geven, heb ik hier MrX gequote die 2 maanden terug met een soortgelijk "dilemma" zat:
Verwijderd schreef op 21 oktober 2002 @ 11:03:
Je kan op 2 manieren een Web User Control maken:
1) Een Web User Control toevoegen aan een ASP.NET Web Application project. In dit geval krijg je een .ASCX file, waarin je kunt tekenen, en evt. in een code behind pagina in kan coden.
2) Een Web Control Library maken, en daarin een Web User Control maken. In dit geval krijg je alleen een .cs file om in te coden, en moet je dus ook de HTML UI via een methode .render gaan invullen.

Wat ik had gedaan is iets via methode 1 maken, en dan op manier 2 proberen te gebruiken, maar dit gaat dus niet. Je moet in dat geval zelfs van een andere class overerven.

Waarom abstract? Omdat dat via methode 1 gemaakt wordt zo gemaakt wordt in de standaard template, en dat werkt dus. Raar maar waar ...

Enniewee, dit gaat niet werken zo. Ik vraag me af of ik via methode 2 ipv van een generieke WebControl class (System.Web.UI.WebControls.WebControl) kan erven van de DropDownList class (System.Web.UI.WebControls.DropDownList), en vanaf daar verder invullen.

edit:
Hmmmmz ... dat werkt, maar ik krijg nog steeds design time errors. Dit doet met denken aan ActiveX control gedoe in VB6 :(
Om een concreet voorbeeld aan te geven: Ik heb een kalender gemaakt die meer kan dan het standaard kalender-control in System.Web.UI.WebControls.
(zie ook: [rml][ ASP.NET] System.Web.UI.WebControls.Calendar[/rml])
Voor de gein :+ heb ik het zowel als een usercontrol als een custom webcontrol gemaakt. Het usercontrol was makkelijker (lees: sneller) te proggen en ik heb ook nog niet echt grote voordelen van het custom webcontrol ontdekt, behalve bovengenoemde "voordelen"...
:Y)

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:54
Hangt af van de situatie: als er echt een design-deel bij komt ga ik voor de usercontrol.
Anders voor de webcontrol, waarbij ik alles in de code-behind doe. Dan zit je ook niet met een ascx-pagina te kijken waar je toch niks mee doet.

Vaak kom ik tot een usercontrol als ik op meerdere aspx-pagina's dezelfde dingen terug zie komen. In ASP zou ik dan een include-file maken, in ASP.Net een usercontrol.

[ Voor 27% gewijzigd door maikel op 19-12-2002 12:23 ]


  • alley
  • Registratie: Mei 2002
  • Laatst online: 18-08 20:40

alley

ahuh

Ik zou zeggen als het specifiek voor je project is:
maak er een usercontrol van (=snel in elkaar te flansen)

Als het een herbruikbare control is waar je ook in andere projecten wat hebt
(en/of als je het gaat distribueren als control) zou ik er een
webcontrol van maken....
Dan heb je geen gezeur met ascx file (uitleggen op welke plek die moet staan, etc)
Het is dan gewoon dll reference toevoegen (of in de toolbox hangen) en aanroepen.

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)