如果在页面中调用多个用户控件,那么JS的脚本就会加载多次,可是对控件的操作仅仅使用了最后加载的JS。为了解决这个问题,我将脚本的函数名命名为如下的形式:
function onloadnews<%=this.ClientID %>()现在的问题是,这样的脚本名,该怎么调用呢?
我用的是onclick="onloadnews<%=this.ClientID %>()",可是,这样写完后网页源代码为onclick="onloadnews&lt;%=this.ClientID %>()"并且报错了,这是为什么呢?
该如何写,才能调用这样的脚本呢?之前发过一个贴,有个亲说了另一种 function onloadnews(obj) {}的方法,但是我的程序中不太适合用这种方法,现在还是想调用function onloadnews<%=this.ClientID %>()这样的函数,该怎么办呢?

解决方案 »

  1.   

    onclick="onloadnews<%=this.ClientID %>()" clientID 解析不出来的
    另外 如果在页面中调用多个用户控件,那么JS的脚本就会加载多次  不明白脚本怎么会加载多次?
      

  2.   


    多次加载就是会这样:
    页面打开之后,查看源代码有两段这样的代码(ID不一样)
    <script type="text/javascript"> function onloadnews() {
            var o = document.getElementById("uc0_HiddenField1");
    ……
    }</script>
    <script type="text/javascript"> function onloadnews() {
            var o = document.getElementById("uc1_HiddenField1");
    ……
    }</script>onclick="onloadnews<%=this.ClientID %>()" clientID 解析不出来的,那要怎么样调用这个函数呢?
      

  3.   

    js代码写在最外层就行了,最好是写在js文件里面,在主页面调用这个文件
    <script Language="JavaScript" src="xxx.js"> 
      

  4.   

    写在JS文件里,函数里的 var o = document.getElementById("<%=HiddenField1.ClientID %>");这样的语句都说找不到对象,怎么破?但是写在用户控件里就正常
      

  5.   

    这个我坑.....你还是放asp文件里吧(要么笨点源文件里面先找到对应的 HiddenField1.ClientID)。
      

  6.   

    因为我页面中是动态生成的用户控件,div1.Controls.Add(control);
    所以如果要把js写在asp文件的话,会直接报错说不存在HiddenField1控件~~
    坑死了~
      

  7.   

    求解:function onloadnews<%=this.ClientID %>(){}要怎么在onclick里调用呢?
      

  8.   

    会不会jQuery,这个有很多办法呀,
    会的话直接就是定义在外面,然后用jQuery的筛选器$("#div1 checkbox[ID='Checkbox1']")
    另外js可以用Ie8以上带的开发人员工具调试。