Ik zit met een probleempje en ik weet eigenlijk niet goed hoe ik het anders moet doen dan hoe ik het zou willen.
Ik heb een website met een aantal pagina's:
page1.aspx met page1.aspx.cs
page2.aspx met page2.aspx.cs
page3.aspx met page3.aspx.cs
en die erven van page_base.cs.
En een klasse..
multiplePurposeClass.cs
..waarvan de pagina's gebruik maken, voor o.a. de database handelingen.
Deze klasse wordt in de Session_Start() in de Global.asax geinstantieerd, en in Session["multiplePurposeObject"] gezet:
Elke pagina erft van page_base een reference naar dat object 'o' uit de sessie, zodat ze allemaal dat object kunnen gebruiken.:
Er zijn ook een aantal usercontrols die de pagina's gebruiken.
Nu wil ik dat zo'n pagina een usercontrol kan opvragen van dat object,
en dan zo'n object kunnen plaatsen in een PlaceHolder van zichzelf:
Probleem is alleen dat dat object wat in de sessie zit, de klasse van zo'n usercontrol niet kan vinden.
De pagina's zelf wel want die kunnen hem in een
voor die usercontrols uit een database moeten komen, wilde ik die code liever in mijn MultiplePurposeClass doen.
Hoe kan ik ervoor zorgen dat die klasse gewoon kan zeggen:
,net zoals mogelijk is wanneer ik dit in de code-behind file van een pagina doe ?
Want nu krijg ik dit:
[i]The type or namespace <myUserControl> could not be found (are you missing a using directive or an assembly reference?)
Uiteraard is het mogelijk om de databasehandelingen enzo als functies te maken van de page_base klasse
waar de pagina's van erven, maar dan moet na elke pageview dat object weer opnieuw aangemaakt worden, ipv dat
hij alleen maar uit de Session opgevraagd hoeft te worden...
Ik heb een website met een aantal pagina's:
page1.aspx met page1.aspx.cs
page2.aspx met page2.aspx.cs
page3.aspx met page3.aspx.cs
en die erven van page_base.cs.
En een klasse..
multiplePurposeClass.cs
..waarvan de pagina's gebruik maken, voor o.a. de database handelingen.
Deze klasse wordt in de Session_Start() in de Global.asax geinstantieerd, en in Session["multiplePurposeObject"] gezet:
code:
1
2
3
4
5
| Session_Start()
{
MultiplePurposeClass o = new MultiplePurposeClass();
Session["o"] = o;
} |
Elke pagina erft van page_base een reference naar dat object 'o' uit de sessie, zodat ze allemaal dat object kunnen gebruiken.:
code:
1
2
3
4
5
| Page_Load(..)
{
this.o = (MultiplePurposeClass)Session["o"];
...
} |
Er zijn ook een aantal usercontrols die de pagina's gebruiken.
Nu wil ik dat zo'n pagina een usercontrol kan opvragen van dat object,
en dan zo'n object kunnen plaatsen in een PlaceHolder van zichzelf:
code:
1
| this.myPlaceHolderID.Controls.Add( o.getUserControl(evt. parameters) ); |
Probleem is alleen dat dat object wat in de sessie zit, de klasse van zo'n usercontrol niet kan vinden.
De pagina's zelf wel want die kunnen hem in een
code:
directive declareren, maar aangezien er gegevens1
| <%@ Register |
voor die usercontrols uit een database moeten komen, wilde ik die code liever in mijn MultiplePurposeClass doen.
Hoe kan ik ervoor zorgen dat die klasse gewoon kan zeggen:
code:
1
| myUserControl m = (myUserControl)LoadControl("myUserControl.ascx"); |
,net zoals mogelijk is wanneer ik dit in de code-behind file van een pagina doe ?
Want nu krijg ik dit:
[i]The type or namespace <myUserControl> could not be found (are you missing a using directive or an assembly reference?)
Uiteraard is het mogelijk om de databasehandelingen enzo als functies te maken van de page_base klasse
waar de pagina's van erven, maar dan moet na elke pageview dat object weer opnieuw aangemaakt worden, ipv dat
hij alleen maar uit de Session opgevraagd hoeft te worden...