在 header(ASP.NET 网络表单)中以声明方式隐藏文字控件

Hiding Literal control declaratively in header (ASP.NET web forms)

我尝试仅使用声明来隐藏 header 中的一些 Javascript 代码。可见 属性 应由 web.config 中的设置控制(ConfigurationManager.AppSettings["key"])。

但是,出于某种原因,像这样设置可见 属性 没有任何效果 - 它始终为真:

<head id="Head1" runat="server">
  <asp:Literal ID="JSLiteral" runat="server" Mode="PassThrough" Visible='<%# false %>'>
   Some JS
  </asp:Literal>
</head>

它可能与 ASP.NET 中的页面生命周期有关。它在 Page_Load 事件中设置此 属性 时有效,但这不是我想要的,因为我需要将此块插入许多 Web 应用程序,并且我不想重新编译所有这些应用程序。

有什么想法可以在 ASP.NET 中以最少的努力完成吗?我不想弄乱 JS 代码,需要在 header 中添加 - 它是 third-party.

的代码

提前致谢并干杯, 罗杰

试试下面的方法。

protected void Page_Load(object sender, EventArgs e)
{
    Head1.DataBind();
}

您使用的是数据绑定表达式。所以必须调用DataBind()