在 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()
。
我尝试仅使用声明来隐藏 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()
。