我想用急剧的代码调用javascript函数。 我想隐藏ID为c变量“li_name”的特定Li标签。 为此,我调用了一个javascript函数。
Cs代码:
li_name = DSRolePermission.Tables[0].Rows[k]["MENUNAME"].ToString();
StringBuilder script = new StringBuilder();
script.Append("<script type=\"text/javascript\">");
script.Append("li_visibility('" + li_name + "')");
script.Append("</script>");
Page.ClientScript.RegisterClientScriptBlock(typeof(object), "JavaScriptBlock", script.ToString());
JS代码:
<script type="text/javascript">
function li_visibility('<%=li_name %>') {
document.getElementById('<%=li_name %>').style.display = 'hidden';
}
</script>
但是这段代码运行不正常。
答案 0 :(得分:3)
您应该将您的js代码更改为:
<script type="text/javascript">
function li_visibility(id) {
document.getElementById(id).style.display = 'none';
}
</script>
我想使用隐藏值,使用visibility属性;
element.style.visibility = 'hidden'; //'visible' to show;
注意: 使用 visibility:hidden 时,元素占用的空间仍然存在。 display:none ,将隐藏元素和占用空间。
答案 1 :(得分:1)
通过使用相同的密钥,只会执行第一个调用,其余的将被静默忽略。
假设您在循环中拥有此代码,请将元素ID添加到JS密钥:
Page.ClientScript.RegisterClientScriptBlock(typeof(this), "JavaScriptBlock_" + li_name, script.ToString());
同样改变了类型,最好传递调用页面/控件的类型。
答案 2 :(得分:0)
为什么在JS中添加c#var?只需将其更新为:
<script type="text/javascript">
function li_visibility(x) {
document.getElementById(x).style.display = 'hidden';
}</script>
答案 3 :(得分:0)
<script type="text/javascript">
function li_visibility('<%=li_name %>')
{
document.getElementById('<%=li_name.ClientID %>').style.display = 'hidden';
}
</script>
这可能会有所帮助