Встроенный код asp.net <% # MyboolVal%> - PullRequest
2 голосов
/ 05 декабря 2009

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

<panel runat="server" id="myid" visible='<%# MyboolVal %>'>
    some stuff
</panel>

Кажется, что это отлично работает для них, панель будет отображаться, когда их состояние будет соответствовать.

Я пытаюсь использовать аналогичный подход на своем домашнем сайте (поздний вечер пятницы, поэтому спрашивать моего босса на данный момент не лучшая идея). Я не могу заставить его вообще ничего выводить. Я пробовал это в видимом поле, которое не работало, поэтому я подумал, что я просто заставлю его написать что-нибудь на экран:

<p>some text <%# String.Format("meeee {0}", Mybool) %></p>

Но я не получаю никакого вывода из встроенного кода. появляется «некоторый текст», но нет «meeee» или значения bool.

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

есть идеи, пожалуйста?

Спасибо

EDIT ....

ОК, так что спасибо Фредди Риосу за ответ, я могу отобразить текст, но когда я попробую это сделать:

Visible='<%= mybool %>'

Я получаю ошибку компиляции:

Невозможно создать объект типа System.boolean из его строкового представления для свойства visible.

Я не совсем понимаю, что именно происходит. Должна быть часть процесса под капотом, которого я не получаю.

РЕДАКТИРОВАТЬ 2:

Я получаю сообщение об ошибке в строке 123:

<fieldset class="myclass" id="projectarea" runat="server" visible='<%= ShowProjectSearchArea %>'>

ShowProjectSearchArea - это мое значение bool, для которого установлено значение false.

Если я дважды щелкну по ошибке в окне Список ошибок, во всплывающем окне появится следующее сообщение, которого я никогда раньше не видел:

  Cannot open file '%1'. It might not be in the solution.

Ответы [ 3 ]

14 голосов
/ 05 декабря 2009

<%# - это тег привязки данных, который используется для установки значений для элементов управления на стороне сервера, особенно для элементов управления с привязкой к данным.

<%= - это сокращение от Response.Write(), оно записывает значение в вывод. Поэтому мы используем его со статическими элементами HTML.

10 голосов
/ 05 декабря 2009

Попробуйте использовать = вместо # в вашей версии:

<p>some text <%= String.Format("meeee {0}", Mybool) %></p>

# предназначен для привязки данных, поэтому в исходном коде должен быть где-то вызов DataBind.

0 голосов
/ 05 декабря 2009

Я думаю, что проблема в том, что видимое свойство ожидает значение типа string, и вы пытаетесь установить его с помощью bool.try, чтобы привести ваше значение к строке

Приветствия

...