4

我在 asp:content 中有一个 div:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div id="slidebar" style="display:none;"  >There are some pending approvals.Please    approve    by the 25th of this month

<a href="#" id="slink" style="margin-left:10px;" onclick="fade('slidebar');">Click here to   close <sup style="font:caption;color:#373636;">X</sup></a>
</div>

<script language="javascript" type="text/javascript">
 function showbanner()
  {
   document.getElementById("slidebar").style.visibility="visible";
  }
</script>
<\asp:content>

以及背后的代码:

 ClientScript.RegisterClientScriptBlock(Page.GetType(), "displaybanner", "return  showbanner();", true);

我无法从后面的代码中调用函数 showbanner,即使我使用 registerclientscript 直接调用 showbanner 内的语句......它也不会被调用。

请帮忙

4

3 回答 3

4

属性visibilitydisplay不一样,把js函数改成:

function showbanner()
{
    document.getElementById("slidebar").style.display="block";
}

还将您的代码更改为

ClientScript.RegisterStartupScript(Page.GetType(), "displaybanner", "showbanner();", true);

所以脚本在页面加载后执行,否则它将找不到元素。

于 2011-03-03T20:02:28.470 回答
0

我不确定为什么您的注册脚本不起作用,但您是否尝试过将 javascript 调用直接放在脚本块内的页面上?如果可行,则将脚本块包装在页面底部的面板中,并使用 visible="false"。在您确定希望它工作的代码中,将可见性设置为 true。

如果您使用的是 Jquery,我还将您的脚本块的内容包装在:

$(document).ready(function() {
    //javascript call here
});

只是为了确保在页面实际处理它之前它不会被调用。

当然,这一切都假设您的函数调用很好,并且问题出在注册客户端脚本上。

于 2011-03-03T19:55:31.013 回答
0

好的,我的一个团队成员 Mahi 想出了一个解决方案......而不是 CleientScript.reg......

我们使用 Page.RegisterStartupScript 并且工作正常 :))

于 2011-03-03T20:33:50.560 回答