#c# #asp.net #controls
#c# #asp.net #элементы управления
Вопрос:
Вот пример. Проблема в том, что Label2 всегда имеет значение Visible=true, независимо от результата if-else . Как я могу узнать, виден он или нет?
<asp:GridView runat="server" ID="gdv">
<asp:TemplateField>
<ItemTemplate>
<%if (!IsItem)
{%>
<asp:TextBox runat="server" Text='<%# Eval("Qtde") %>'></asp:TextBox>
<%}
else
{ %>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Qtde") %>'></asp:Label>
<%} %>
</EditItemTemplate>
</asp:TemplateField>
Я не могу получить доступ к IsItem, поскольку класс, в котором я хочу проверить видимость метки, не является кодом страницы. Также эти элементы управления находятся в gridview.
Метод класса, который проверяет видимость, не вызывается непосредственно страницей, это частный метод серверного элемента управления, который расширяет представление сетки и должен работать с различными случаями.
Спасибо.
РЕДАКТИРОВАТЬ———— Я нашел альтернативное, достойное решение. Тем не менее, мне любопытно узнать, возможно ли сделать вышеупомянутое. Спасибо за ваше время,
Комментарии:
1.
if (!IsItem)
по-видимому, говорит вам.2. Я не могу получить доступ к свойству IsItem, я добавил изменения, чтобы прояснить это.
3. Трудно понять, в чем проблема. Что определяет состояние, если не isitem ?
4. Это зависит от каждой строки, иногда строка является элементом, иногда нет. Страница устанавливает это свойство viewstate для события редактирования.
Ответ №1:
Вы отображаете эту метку на основе переменной с именем «IsItem». Почему вы не можете использовать это для определения видимости метки?
Комментарии:
1. Я хочу знать это в классе, отличном от кода страницы, поэтому я не могу получить доступ к свойству IsItem
2. Передайте IsItem в качестве параметра bool методу в другом классе.
3. Метод класса, который проверяет видимость, не вызывается непосредственно страницей, это частный метод серверного элемента управления, который расширяет представление сетки и должен работать с различными случаями.