J'ai une application qui chargera usercontrols dynamiquement en fonction de l'utilisateur. Vous verrez dans l'exemple ci-dessous que je lance le contrôle de chaque utilisateur via des instructions switch/case. Y a-t-il une meilleure manière de faire cela? Réflexion? (Je dois être en mesure d'ajouter un gestionnaire d'événements Lier dans chaque contrôle.)Comment déterminer le type d'usercontrol chargé dynamiquement?
override protected void OnInit(EventArgs e)
{
cc2007.IndividualPageSequenceCollection pages = new IndividualPageSequenceCollection().Load();
pages.Sort("displayIndex", true);
foreach (IndividualPageSequence page in pages)
{
Control uc = Page.LoadControl(page.PageName);
View view = new View();
int viewNumber = Convert.ToInt32(page.DisplayIndex) -1;
switch(page.PageName)
{
case "indStart.ascx":
IndStart = (indStart) uc;
IndStart.Bind += new EventHandler(test_handler);
view.Controls.Add(IndStart);
MultiView1.Views.AddAt(viewNumber, view);
break;
case "indDemographics.ascx":
IndDemographics = (indDemographics)uc;
IndDemographics.Bind += new EventHandler(test_handler);
view.Controls.Add(IndDemographics);
MultiView1.Views.AddAt(viewNumber, view);
break;
case "indAssetSurvey.ascx":
IndAssetSurvey = (indAssetSurvey)uc;
IndAssetSurvey.Bind += new EventHandler(test_handler);
view.Controls.Add(IndAssetSurvey);
MultiView1.Views.AddAt(viewNumber, view);
break;
}
}
base.OnInit(e);
}
Merci d'avance!