2010-06-30 18 views
1

Je souhaite afficher et masquer une étiquette et son contrôle. Je peux le faire dans C# dans le code derrière. Mais, je peux seulement montrer/cacher le contrôle. Des idées?Afficher et masquer les étiquettes avec assosicatedControls et leurs contrôles

<asp:label AssociatedControlID="thisLabel" runat="server">This: 
    <asp:label ID="thisLabel" CssClass="ascontrol" runat="server" /> 
</asp:label> 

Je veux être en mesure d'afficher et de masquer tout cela en fonction de ce que l'utilisateur accède à la page. J'ai juste besoin de savoir comment montrer/cacher toute cette chose dans le code C# derrière ... ne peut pas sembler obtenir la visibilité de l'étiquette d'emballage pour disparaître.

Répondre

1

Vous n'avez pas fourni un côté serveur Id:

<asp:Label ID="label_MyControl" AssociatedControlID="txt_MyControl" runat="server" /> 
<asp:TextBox ID="txt_MyControl" runat="server" /> 

Qu'est-ce que vous avez fait est un nid asp: le contrôle de l'étiquette dans une autre asp: contrôle Label ....

1

Depuis que je normalement cacher plus d'un champ de manière contiguë, j'ai tendance à envelopper le tout dans un asp: Panel et cacher le panneau. Cependant, c'est juste mon usage particulier. Mais puisque c'est mon usage, j'ai tendance à bloquer ce genre de choses dans des panneaux, même pour quelque chose d'aussi simple que votre exemple.

Juste mon nickel, votre kilométrage peut varier, comme toujours.

0

Il devrait fonctionner si vous vous obtenez r balisage correct, comme ceci:

<asp:Label ID="lblYear" runat="server" Text="Year (yyyy):" 
    AssociatedControlID="txtYear"></asp:Label> 
<asp:TextBox ID="txtYear" runat="server" Columns="30" MaxLength="4"></asp:TextBox> 

Puis dans le code derrière vous pourriez avoir:

lblYear.visible = False 
txtYear.Visible = False 

Maintenant, ma compréhension de la "AssociatedControlID" propriété d'un asp: label est principalement à des fins d'accessibilité. Vous n'avez pas besoin d'avoir la valeur AssociatedControlID définie pour que les choses fonctionnent comme je l'ai montré.

+0

C'est exact. Le contrôle associé est en fait un standard HTML et permet, par exemple, de cliquer sur une étiquette du formulaire pour mettre l'accent sur l'élément qui lui est assigné. Les concepteurs de formulaires Windows ont également cette option depuis un certain nombre d'années, de sorte que si vous cliquez sur (ou ALT + ) une étiquette, cela met l'accent sur le champ. Juste les bases de la manipulation de formulaire. Aussi, bon pour l'accessibilité, mais principalement parce que les formes textuelles sont textuelles. – jcolebrand