Показать и скрыть метки с помощью assosicatedControls и их элементов управления - PullRequest
1 голос
/ 30 июня 2010

Я хочу показать и скрыть ярлык и его контроль. Я могу сделать это в C # в коде позади. Но я могу только показать / скрыть контроль. Есть идеи?

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

Я хочу иметь возможность показать и скрыть все это в зависимости от того, что пользователь попадает на страницу. Мне просто нужно знать, как показать / спрятать всю эту вещь в коде c # позади ... кажется, что видимость надписи-обертки не исчезает.

Ответы [ 3 ]

1 голос
/ 30 июня 2010

Поскольку я обычно прячу несколько полей подряд, я склоняюсь к тому, чтобы обернуть все это в панель asp: Panel и скрыть панель.Тем не менее, это только мое конкретное использование.Но так как это мое использование, я склонен разбивать подобные вещи на панели даже для чего-то столь же простого, как ваш пример.

Только ценность моего никеля, ваш пробег может изменяться, как всегда.

1 голос
/ 30 июня 2010

Вы не указали идентификатор на стороне сервера:

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

Что вы сделали, так это вложили элемент управления asp: Label в другой элемент управления asp: Label ....

0 голосов
/ 30 июня 2010

Это должно работать, если вы правильно произвели разметку, например:

<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: в основном для целей доступности. Вам не нужно устанавливать значение AssociatedControlID, чтобы все работало, как я показал.

...