我有一个下拉树的ascx控件,里面用到了大量的JS,问题是我只能在一个页面中使用一个实例,否则就不能用。
我现在把JS代码放到了一个ComboTree的对象中。现在我如何使每个ascx对象都使用不同的ComboTree对象实例的方法而不会相互影响  ?

解决方案 »

  1.   

    会影响,主要是js查找对象都会找到第一个上去
    方法是,给每个需要用js查找的对象钱加上一个名字。
    如不同控件用不同的名字:
    <%=Control1%>TextBox1
    <%=Control2%>TextBox1
    js 用的时候也用 如: 
    document.getElementById("Control1TextBox")
      

  2.   

    谢谢两位,问题是不是用JS去使用控件,而是控件在触发事件时去调用JS方法。这期间会用到全局变量,我想把全局变量放在对象中使多个ascx可以互不影响。比如在一个页面中有多个ComboTree,当点击下拉事件时不会出现混乱。
      

  3.   

    ascx 的 js 变量需要与这个 ascx 的 ID 关联,才能保证 page 范围内唯一// try
    // .ascx
    <script type=text/javascript>
    var <% =ID %>_var1 = "hello" + <% =ID %>;
    </script><input type=button onclick=alert('<% =ID %>_var1') />