Я хочу показать и скрыть маркировку и ее управление. Я могу сделать это в c# в коде позади. Но, я могу только показать/скрыть управление. Какие-либо идеи?
<asp:label AssociatedControlID="thisLabel" runat="server">This:
<asp:label ID="thisLabel" CssClass="ascontrol" runat="server" />
</asp:label>
Я хочу смочь показать и скрыть ту целую вещь в зависимости от того, что пользователь получает к странице. Я просто должен знать, как показать, что / скрываются, та целая вещь в коде c# позади..., может казаться, не заставляет видимость маркировки обертки уходить.
Вы не указали идентификатор на стороне сервера:
<asp:Label ID="label_MyControl" AssociatedControlID="txt_MyControl" runat="server" />
<asp:TextBox ID="txt_MyControl" runat="server" />
Вы вложили элемент управления asp: Label в другой элемент управления asp: Label ....
Это должно сработать, если вы правильно оформите разметку, например, так:
<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>
Тогда в коде позади вы могли бы иметь:
lblYear.visible = False
txtYear.Visible = False
Теперь, как я понимаю, свойство "AssociatedControlID" у asp:label в основном предназначено для целей доступности. Вам не нужно устанавливать значение AssociatedControlID, чтобы все работало так, как я показал.
Так как я обычно скрываю более одного поля подряд, я стараюсь обернуть все это в asp: Panel и скрыть панель. Однако это только мое частное использование. Но так как это я использую, я склонен блокировать подобные вещи на панелях даже для таких простых вещей, как ваш пример.
Как всегда, на мой никель, ваш пробег может отличаться, как всегда.