2008-12-11 9 views
2

J'utilise la page maître sur certaines pages. Et cette page maître charge le contrôle de l'utilisateur. Donc, je veux désactiver ou activer le contrôle de l'utilisateur sur un chargement de page qui a une page maître.désactiver usercontrol sur le chargement de la page maître


est-il de toute façon puis-je désactiver le contrôle de l'utilisateur sur Page_load page principale()


<div class="ucTabCtrl" > 
    <uc1:TLTabControl ID="ctrlname" runat="server" Visible="False" /> 
</div> 

Master Page_load() 
{ 
// checking some condition if true 
ctrlname.visible = true; 
} 

mais le problème est que je ne suis pas en mesure d'obtenir l'instance de l'utilisateur ctrl, en bref ctrlname est null tout le temps.

+0

Votre question est tout à fait claire. Vous devez élaborer et décrire votre mise en page et expliquer les pages sur lesquelles vous souhaitez désactiver le contrôle. Donnez un exemple de code simplifié si possible. – Bryan

Répondre

0

Vous souhaitez le désactiver sur la page enfant? Vous pouvez faire quelque chose comme ça dans la méthode Page_Load():

if (null != this.Master) 
{ 
    userControl.Enabled = false; 
} 
+0

Y at-il de toute façon puis-je désactiver le contrôle utilisateur sur la page maître Page_load() – alice7

+0

Vous devrez probablement utiliser FindControl() à partir du contexte de l'espace réservé content et rechercher un contrôle utilisateur particulier. –

+0

Il n'y a pas de propriété Enabled pour usercontrols sur une page hôte. – Aamir

1

Votre question est un peu difficile à comprendre, mais je pense que ce que vous recherchez est quelque chose comme ceci:

public partial class Site1 : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page is WebForm1 || Page is WebForm2) 
     { 
      webUserControl11.Visible = false; 
     } 
    } 
} 

Sinon, vous pourrait implémenter une interface sur les pages qui indique ce comportement. Quelque chose le long des lignes:

public partial class Site1 : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     ISpecialPage specialPage = Page as ISpecialPage; 

     if (specialPage != null && specialPage.ShouldDisableUserControl) 
      webUserControl11.Visible = false; 
    } 
} 

public interface ISpecialPage 
{ 
    bool ShouldDisableUserControl { get; } 
} 
0

Le contrôle utilisateur n'est pas déclarée comme une variable locale dans le MasterPage. Vous devez utiliser la fonction FindControl() pour obtenir une référence au contrôle.

Voici un exemple de travail:

Dim userControl As WebControl = ContentPlaceHolder1.FindControl("someControl") 
If userControl IsNot Nothing Then 
    CType(userControl, WebControl).Enabled = False 
End If 
Questions connexes