OVH Cloud OVH Cloud

Chargement dynamique d'ascx

1 réponse
Avatar
fmeriot
Sur mon site asp.net j'utilise diff=E9rents blocs ou modules sous forme
d'ascx que je charge dynamiquement en fonction du contexte gr=E2ce =E0
LoadControl().

Cependant je ne suis pas tr=E8s satisfait de ce que je fais car je ne
trouve pas =E7a tr=E8s "=E9volutif" :

public void LoadModule(string module){
if(load){
switch(module){
case "mto":
web_meteo ctrl =3D
(web_meteo)LoadControl("/meteo/_meteo.ascx");
ctrl.ID =3D module;
PH_mto.Visible=3Dtrue;
TD_mto.Controls.Add(ctrl);
break;

case "etc..." etc...
default: return;
}
}

Comme vous le voyez, j'utilise un switch...case et en fonction du nom
du module je charge le bon ascx ...etc

Je voudrais pouvoir modifier ma m=E9thode LoadModule en lui passant en
plus du nom du module, le nom le la classe =E0 charger de mani=E8re =E0
virer le switch...case et =E0 rendre ma m=E9thode beaucoup plus
=E9volutive.

Mon probl=E8me est le suivant : Si je passe une string contenant le nom
de ma classe (ici dans l'exemple : web_meteo), comment faire le
LoadControl ?

1 réponse

Avatar
fmeriot
Autrement dit (car je ne suis pas très clair) :
1-Comment récupérer le classname d'un ascx
2-Comment déclarer une variable dans un type stocké dans une string?