Ik ben een beetje bezig met Web User Controls in ASP.NET. Mijn Web User Control heeft 1 button. Sleep ik deze Control in een nieuwe webform en probeer ik deze uit, dan werkt het prima... de events van het clicken op de Button komen gewoon binnen en er gebeurt wat er moet gebeuren zodra er geclickt wordt.
Maar aangezien het me wel leuk leek als ik niet bij elke pagina die ik maak die Control erin zou hoeven te slepen, besloot ik mijn eigen MyPage class te maken. De class MyPage is afgeleid van System.Web.UI.Page.
In deze class wordt de Web User Control als volgt toegevoegd:
Het idee is dat bij elke Webform in mijn webapp nu in de codebehind file aangegeven wordt dat ie van MyPage is afgeleid i.p.v. de gebruikelijke System.Web.UI.Page. Dit had ik ergens in een voorbeeldje gezien en leek me wel handig omdat je op die manier bij het maken van je webforms alleen op de inhoud hoeft te richten en niet telkens alle user controls toe hoeft te voegen.
Maar het probleem is:
Dezelfde WebUserControl waarvan de button events eerst dus netjes verwerkt werden, werkt nu niet meer. Je kan klikken op die button wat je wil maar er gebeurt niks. Als ik dezelfde user control in een webform sleept, dan werkt de button erop dus wel.
Maar aangezien het me wel leuk leek als ik niet bij elke pagina die ik maak die Control erin zou hoeven te slepen, besloot ik mijn eigen MyPage class te maken. De class MyPage is afgeleid van System.Web.UI.Page.
In deze class wordt de Web User Control als volgt toegevoegd:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
| protected override void Render(System.Web.UI.HtmlTextWriter writer) { // Get a reference to the form control Control form = Page.Controls[1]; MyWebControl wc; wc = (MyWebControl) LoadControl(Request.ApplicationPath + Path.AltDirectorySeparatorChar + "MyWebControl.ascx"); form.Controls.AddAt(0, wc); // Render as usual base.Render(writer); } |
Het idee is dat bij elke Webform in mijn webapp nu in de codebehind file aangegeven wordt dat ie van MyPage is afgeleid i.p.v. de gebruikelijke System.Web.UI.Page. Dit had ik ergens in een voorbeeldje gezien en leek me wel handig omdat je op die manier bij het maken van je webforms alleen op de inhoud hoeft te richten en niet telkens alle user controls toe hoeft te voegen.
Maar het probleem is:
Dezelfde WebUserControl waarvan de button events eerst dus netjes verwerkt werden, werkt nu niet meer. Je kan klikken op die button wat je wil maar er gebeurt niks. Als ik dezelfde user control in een webform sleept, dan werkt de button erop dus wel.
edit:
Even de layout hersteld
en heb maar aangenomen dat dit C# is
Even de layout hersteld
en heb maar aangenomen dat dit C# is
[ Voor 5% gewijzigd door drm op 11-04-2003 15:06 ]
Metal up your ass