Я не уверен, изменились ли вещи после .NET 2.0, потому что в .NET 2.0 я имел обыкновение устанавливать что-то вроде этого:
<asp:Panel runat="server" Visible='<%#IIf(Some condition here, "true", "false") %>' />
Я делал это все время, чтобы иметь чистый код.
В настоящее время я работаю с .NET 3.0, и я не могу всю жизнь заставить это работать. Условие, которое я оцениваю, не обращается к каким-либо полям привязки данных, но так же просто, как проверка свойства объекта в коде позади.
Кто-нибудь может подсказать, как должен выглядеть этот встроенный код?
UPDATE:
Вот пример того, что я пытаюсь сделать. Клянусь, что-то вроде этого раньше работало в .NET 2.0, но сейчас это не работает:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script runat="server">
protected bool IsValid() { return true; }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label Text="123" runat="server" Visible=<%#iif(IsValid(), "true", "false")%>/>
</div>
</form>
</body>
</html>