如何动态地不呈现脚本标记

How to dynamically not render a script tag?

本文关键字:脚本 何动态 动态      更新时间:2023-09-26

我希望能够动态地(在页面加载时)决定将其设置为Visible=false,因此它不会被渲染。我试过runat=server,但那只适用于虚拟路径

您可以使用ClientScriptManager。RegisterClientScriptBlock或ClientScriptManager。RegisterStartupScript以有条件地添加脚本。

if (condition)
{    
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();
    StringBuilder cstext2 = new StringBuilder();
    cstext2.Append("<script type='"text/javascript'"> function DoClick() {");
    cstext2.Append("Form1.Message.value='Text from client script.'} </");
    cstext2.Append("script>");
    cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}

如果你有一个不小的脚本,那么你可以把脚本放在一些js文件和使用ClientScriptManager。RegisterClientScriptInclude

if (condition)
{
    ClientScriptManager cs = Page.ClientScript;
    cs.RegisterClientScriptInclude("ScriptKey", "ScriptURLToInclude");
}

. NET标记语言可以引导任何任意内容的呈现。也就是说,仅在某些条件下呈现脚本标记应该像以下这样简单:

<% if (shouldRenderScriptTag) { %>
    <script src="..." />
<% } %>