Asp.net 将控件属性绑定到表达式

Asp.net 将控件属性绑定到表达式,asp.net,webforms,Asp.net,Webforms,使用ASP.NET WebForms,是否可以将控件的属性绑定到表达式 比如说 Visible="<% myProp.Value == otherProp.Value %>" Visible=“” 我意识到我可以在代码隐藏中做到这一点,但我正试图尽可能将UI显示细节限制在标记中。是的,这是进行ASP.Net WebForms开发的最有效的方法 您想调用DataBind(),以使表达式得到计算。我更喜欢在Page\u PreRender 例如: protected void Pag

使用ASP.NET WebForms,是否可以将控件的属性绑定到表达式

比如说

Visible="<% myProp.Value == otherProp.Value %>"
Visible=“”

我意识到我可以在代码隐藏中做到这一点,但我正试图尽可能将UI显示细节限制在标记中。

是的,这是进行ASP.Net WebForms开发的最有效的方法

您想调用
DataBind()
,以使
表达式得到计算。我更喜欢在
Page\u PreRender

例如:

protected void Page_PreRender(object sender, EventArgs e)
{
    DataBind();
}

你好
事实上,您可以将数据绑定逻辑放在页面的基类中,或者放在
块中

完整页面示例:

<%@ Page Language="C#" %>
<script runat="server">
   void Page_PreRender(object sender, EventArgs e)
   {
       DataBind();
   }
</script>
<html>
 <body>
  <asp:Placeholder runat="server" Visible='<%# DateTime.Now.Seconds % 2 == 1 %>'>
   It is now an odd second
  </asp:Placeholder>
 </body>
</html>

无效页面\u预呈现(对象发送方,事件参数e)
{
数据绑定();
}
现在是奇数秒

Visible='
(数据绑定表达式)我已经尝试过了,但似乎不起作用。虽然我试图评估的是页面上的另外两个控件。一个是HiddenField的值与div的ID进行比较(div设置为runat=server)。如果我在代码中这样做,所有的工作都会像预期的那样。整洁!我不知道您可以将页面类方法放在服务器脚本标记中。
<%@ Page Language="C#" %>
<script runat="server">
   void Page_PreRender(object sender, EventArgs e)
   {
       DataBind();
   }
</script>
<html>
 <body>
  <asp:Placeholder runat="server" Visible='<%# DateTime.Now.Seconds % 2 == 1 %>'>
   It is now an odd second
  </asp:Placeholder>
 </body>
</html>