Что-то вроде этого:
<asp:panel id="pnl_ItemOrder" runat="server" cssclass="ItemOrder" visible="<%# CheckEdit_Status(IsEditable) %>">
Как узнать, использует ли он Bind или Eval? Или что он делает?
Хорошо, так как прошло около 5 лет с тех пор, как я работал над чем-либо, тесно связанным с веб-формами, это будет оценка того, что происходит:
<body>
<form id="form1" runat="server">
<script type="text/C#" runat="server">
private const bool isEdit = true;
</script>
<script type="text/C#" runat="server">
private bool CheckEdit_Status(bool isEdit)
{
return isEdit;
}
</script>
<asp:Panel ID="pnl_ItemOrder" runat="server" Visible="<%# (CheckEdit_Status(isEdit)) %>"
Height="100" Width="100" BackColor="Aqua">
</asp:Panel>
<br />
<% pnl_ItemOrder.DataBind(); %>
</form>
Это то, с чем я играл, и из своих логических рассуждений и нескольких вещей, которые я помню из школы, тег <% #%> чаще используется для вызова функций, eval используется для оценки объекта и передает его в строку для представления в таких вещах, как ретрансляторы и datagrids, которые используют массивы значений.
Eval, используется для извлечения элемента a из блока данных и представления его в нем соответствующего контроллера данных (это важно), здесь вы вызываете функцию, которая не должна иметь никакого представления на странице и не находится в контроллере данных но вместо этого устанавливают на панели, поэтому вместо этого вы указываете серверу установить этот флаг для меня.
Переключение на Eval приведет к тому, что будет выбрано исключение, которое мы не можем отбросить bool к строке, поскольку нет способа представления bool в виде строки (да, есть возможность вызвать метод object.ToString() на нем, но что на самом деле это не то же самое, и в этом случае он генерирует исключение, так как visible является логическим, а не строковым).
Bind - это старая устаревшая версия Eval, которая в основном используется для обратной совместимости, если я правильно ее понял.
TL;DR;
Это ни то, ни другое, чтобы сообщить серверу о вызове функции и о том, что когда-либо сервер вернет = задает это значение здесь.
То, что он делает, вызывает функцию с именем CheckEdit_Status().
Взгляните на код за файлом для этого метода и свойства. Если используется Bind() или Eval(), это будет в этом методе или какой-либо метод, вызываемый им.