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:
(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"...
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:
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.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
(zie ook: [rml][ ASP.NET] System.Web.UI.WebControls.Calendar[/rml])
Voor de gein