2010-02-16 4 views
4

Comment désactiver un usercontrol pour que le Page_Load ne soit pas exécuté? Activé n'existe pas pour un contrôle utilisateur et Visible ne fonctionne pas, il masque simplement le contrôle usercontrol, mais le chargement de la page est exécuté.disable usercontrol

+0

une chance sur votre problème? –

Répondre

3

Faites ceci:

Ajouter ce au haut de la page <% @ Référence Contrôle = « ~/MyControl.ascx » %>

Ensuite, lorsque vous avez besoin de la commande il suffit d'ajouter où vous voulez comme ça

ControlPlaceHolder.Controls.Add (Page.LoadControl (« ~/MyControl.ascx »))

De cette façon, le contrôle sera chargé uniquement lorsque vous en avez besoin.

+1

Si vous avez besoin du ViewState du contrôle utilisateur désactivé, cela n'est pas approprié. –

0

Vous pouvez supprimer le contrôle avant que le rendu commence par this.Controls.Remove(xxx) dans preInit mais vous souhaitez que cela se produise de manière cohérente. PAR EXEMPLE. Si vous supprimez un contrôle lorsque vous appliquez la demande pour la première fois, puis laissez-le être activé lors de la publication, vous pouvez avoir un problème en désérialisant viewstate. peut être. est vaut le coup