2009-10-19 7 views
0

Cela me semble juste "hacky" en termes de devoir activer/désactiver à la fois pour ces deux. Comme l'un d'entre eux aurait déjà pu être allumé, je dois les éteindre ou les rallumer. Je me sens comme si je peux esquiver l'un des contrôles en quelque sorte:Check Panel pour activer/désactiver la visibilité

private void SetPanels() 
{ 
    if(userIsLoggedIn) 
    { 
     pnlAuthed.Visible = true; 
     pnlNotAuthed.Visible = false; 
    } 
    else 
    { 
     pnlSignUpForm_NotAuthed.Visible = true; 
     pnlSignUpForm_Authed.Visible = false; 
    } 
} 

Répondre

0

Je pense que vous êtes à la recherche quelque chose comme ceci:

pnlAuthed.Visible = userIsLoggedIn; 
    pnlNotAuthed.Visible = !userIsLoggedIn; 

    pnlSignUpForm_NotAuthed.Visible = !userIsLoggedIn; 
    pnlSignUpForm_Authed.Visible = userIsLoggedIn; 
0

Ne pas être sarcastique, mais pour commencer, ne pourrais pas vous le raccourcir à:

pnlUpdate.Visible = showUpdate; 
divSignUp.Visible = showSignUp; 
0
private void SetPanels() 
{ 
    pnlAuthed.Visible = userIsLoggedIn; 
    pnlNotAuthed.Visible = !pnlAuthed.Visible; 
} 
2

Il me semble que vous réécrivant essentiellement ce que le contrôle standard asp.net LoginView peut faire d eclaratively:

<asp:LoginView id="LoginView1" runat="server"> 
    <AnonymousTemplate> 
    Please log in for personalized information. 
    </AnonymousTemplate> 
    <LoggedInTemplate> 
    Thanks for logging in 
    <asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>. 
    </LoggedInTemplate> 
</asp:LoginView> 
+0

désolé mais je ne veux pas utiliser une vue comme ça. Nous allons bientôt passer à MVC et je ne veux pas utiliser beaucoup de contrôles asp.net. – PositiveGuy

+0

Ensuite, dans ce cas, vous roulerez quand même - 'asp: Panel' est un contrôle ASP.NET WebForms. BTW, si tout ce que vous faites est côté client (vos fichiers de vue), la plupart des contrôles WebForms continueront à fonctionner dans un MVC. –

2

En plus de Dan Diplo LoginView answer, vous pouvez envisager le MultiView contrôle dans un cas plus généralisé (IE, pas spécifiquement connecter liés). Le MultiView contient un ensemble d'une ou plusieurs vues mutuellement exclusifs (similaire à panneaux), qui

MultiView est relativement facile à mettre en place déclarative:

<asp:MultiView runat="server" id="pageMultiView" ActiveViewIndex="0"> 
    <asp:View runat="server" id="view1"> 
     <!-- your 1st view content here! --> 
    </asp:View> 
    <asp:View runat="server" id="view2"> 
     <!-- your 2nd view content here! --> 
    </asp:View> 
</asp:MultiView> 

Dans le code, vous changez de vue comme ceci:

pageMultiView.SetActiveView(view1); 

Et ainsi, vous avez terminé.