Почему Visible = '<% # false%>' работает с GridView, но не с меткой? - PullRequest
2 голосов
/ 18 декабря 2009

Я ломаю голову над этим, но понятия не имею, в чем проблема. Мой фактический код

<asp:Label ID="Label1" runat="server" Text="abc"
           Visible='<%#Request.QueryString["ListName"] == null %>' />
<asp:GridView ID="gvLists" runat="server"
              Visible='<%#Request.QueryString["ListName"] == null %>' />

Как видите, я пытаюсь сделать так, чтобы видимость объекта управлялась строкой запроса. Он отлично работает для GridView, но не работает для метки. Я также попробовал Panel и HyperLink с теми же результатами.

Я уверен, что смогу заставить это работать, поместив свой код в код, но он не будет таким чистым.

Ответы [ 3 ]

5 голосов
/ 18 декабря 2009

<% #%> работает только для элементов с привязкой к данным.

вам нужно изменить его на <% =%> (обратите внимание на "=")

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

Спасибо Элисон за то, что указал мне правильное направление. Мне нужно было добавить Page.DataBind() к моему событию Page_Load, чтобы выражение было оценено.

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

<% = используется для прямой печати на страницу, а <% # используется для элементов привязки данных. <a href="http://naspinski.net/post/inline-aspnet-tags-sorting-them-all-out-(3c25242c-3c253d2c-3c252c-3c252c-etc).aspx" rel="nofollow noreferrer"> Здесь - отличное объяснение всех директив встроенного кода.

...