Ceci est pour ASP.NET. Pensez au contrôle multiview. Il a 1 à plusieurs contrôles de vue. Chaque contrôle de vue a la capacité de contenir des contrôles, mais, pourtant, une seule vue est visible à la fois. En gardant cela à l'esprit, je pense que je veux "dire" les vues non visibles à ne pas charger, donc, ne pas charger les contrôles enfants.Comment empêcher un contrôle Web de charger des contrôles enfants?
Dans mon exemple, lors du chargement de la vue, je vérifie s'il s'agit de la vue active. Si ce n'est pas actif, j'arrête le traitement de la charge. Malheureusement, les vues qui ne sont pas actives ont leur événement de chargement exécuté et tous les contrôles de l'arborescence de contrôle exécutent leur chargement.
Retour à la question: existe-t-il un moyen d'empêcher les contrôles enfants de s'exécuter pour la vue qui n'est pas active?
Exemple de code:
Private Sub viewDisplayArticle_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles viewDisplayArticle.Load
If Not mvwHealthArticles.ActiveViewIndex = mvwHealthArticlesView.DisplayArticle Then Exit Sub
callSomeKillerMethod()
End Sub
Bonne idée, mais cela n'est pas autorisé lorsque vous traitez spécifiquement avec System.Web.UI.WebControls.View. System.InvalidOperationException: La propriété Visible d'un contrôle View peut uniquement être définie en définissant la vue active d'un MultiView. – MADCookie
C'est intéressant. J'essaierais probablement de faire un contrôle basé sur un modèle (comme un GridView avec, , etc) car je n'ai jamais essayé un contrôle MultiView ... bonne chance! –
jrummell