Управление видимостью элементов управления html с помощью привязки данных - PullRequest
2 голосов
/ 04 декабря 2009

Я пытаюсь контролировать, отображаются ли некоторые элементы <td> или нет с использованием привязки данных и runat="server":

<td runat="server" visible="<%# this.SomeBool %>"><tr>Hello world!</tr></td>

Беда в том, что свойство SomeBool просто не вызывается.

Если я явно установил visible в значение false, например:

<td runat="server" visible="False"><tr>Hello world!</tr></td>

Тогда все хорошо, и элемент не отображается.

Как мне заставить работать эту привязку данных?

Ответы [ 3 ]

3 голосов
/ 04 декабря 2009

Причина, по которой мой метод не вызывался, заключалась в том, что метод DataBind () на моей странице не вызывался - даже простое размещение на странице следующего кода ничего не делало:

<%# "Hello world" %>

Я должен был добавить звонок к this.DataBind() в верхней части моей страницы:

<%@ Page ... %>
<% this.DataBind(); %>

И тогда все сработало, как и ожидалось.

1 голос
/ 04 декабря 2009

Попробуйте использовать одинарные кавычки вокруг тегов <%%>:

<tr runat="server" visible='<%# this.SomeBool %>'><td>Hello world!</td></tr>

Идея Серхио тоже выглядит аккуратно.

1 голос
/ 04 декабря 2009

Попробуйте что-то вроде:

<td <%# this.SomeBool ? "" : "style=\"display:none;\"" %>><tr>Hello world!</tr></td>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...