日期:2014-05-18  浏览次数:20519 次

用户控件 不执行 js 函数
一个用户控件里的按钮单击事件如下
<asp:ImageButton   ID= "IbS "   runat= "server "   ImageUrl= "~/images/s.gif "   OnClientClick= "return   JGLindex(); "   />

在页面里引用如下,直接写在“ <%@   Control   Language= "C# "   AutoEventWireup= "true "   CodeFile= "........   %> ”下面,没有“ <head> ”
<script   language= "javascript "   type= "text/javascript ">
function   JGindex(){......}
function   JGLindex(){......}
</script>
这样的语法应该没问题吧,可就是无法执行这两个函数。有可能是函数本身的问题吗?如何对JS函数查错?

------解决方案--------------------
1。语法没有问题

2。有报错吗?应该贴出来,

3。在IE中调试 JS 脚本
a. IE工具》Internet选项》高级》钩掉 禁用脚本调试
b. 在JS加入 debugger,有点像VS的断点味道,如
function JGindex(){
debugger;
//..
}
c. 调用 JGindex() 的时候,会提示你是否调试,当然选择 是 了

Good Luck!
------解决方案--------------------
如果是放在一般页面里没有错误,则一般是因为脚本里调用了服务器控件,没有使用服务器控件的ClientID在客户端得到对象造成的。

<asp:TextBox id= "t1 "

在客户端要使用
document.getElementById( " <%=t1.ClientID%> ")得到
------解决方案--------------------
在用户控件里?

不考虑程序逻辑问题,你对用户控件都应该这样测试:

在测试页面上放置2个或者使用绑定控件放置几十个用户控件,并且再在页面上放置一个button,然后看看其中任何一个提交回发操作时其它所有控件是正确保持状态。

你应该考虑到你的jsvascript中的变量定义是否会重复、函数是否会重复,是否不同控件之间会不小心重复,等等问题。这些最基本的简单测试不难,但是往往被经验特别不足程序员随随便便地漠视掉。
------解决方案--------------------
在里面alert调试啊