我希望能够动态地(在页面加载时)决定将其设置为Visible=false
,以便它不会被渲染。我试过了runat=server
,但这只适用于虚拟路径。
答案 0 :(得分:3)
您可以使用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");
}
答案 1 :(得分:2)
在ASP.NET标记语言中,您可以控制任何内容的呈现。那就是只在某些条件下呈现脚本标记应该简单如下:
<% if (shouldRenderScriptTag) { %>
<script src="..." />
<% } %>