在控件aaaa.ascx中,当点击一个按钮A时使用document.getElementById("divId").innerHTML="aaa"改变控件的值,
在页面default.aspx中多次用到了aaaa.ascx控件.他们的id是aaa1,aaa2,aaa3.当我点击aaa2中的按钮A时,我需要aaa2中的divId的值发生改变,但是在实际情况中却是aaa1中的值发生了改变,请问怎么解决该问题.谢谢

解决方案 »

  1.   

    只有AAA1中有divId,其他的因为重复都自动变了。
      

  2.   

    div有没有服务器控件,如果有,可用它来解决
      

  3.   

    div有没有服务器控件,如果有,可用它来解决
      

  4.   

    div有没有服务器控件,如果有,可用它来解决
      

  5.   

    看页面生成的html代码你一切就明白了。
      

  6.   

    只有AAA1中有divId,其他的因为重复都自动变了。
    ===========================================
    对,应该是这样的,那么我怎么在控件中实现点击按钮A,document.getElementById("divId").innerHTML="aaa"的功能了.
    -----------------------------------------------------
    div有没有服务器控件,如果有,可用它来解决
    ======================================
    如果使用服务器控件,我怎么实现document.getElementById("divId").innerHTML="aaa"的功能?谢谢大家
      

  7.   

    首先,你这些控件的JavaScript不能是固定的,必须根据控件的名称动态变化。也就是说,你再输出脚本时,不能输出"aaa = 1",而应该输出this.ClientID + "aaa = 1",那么当this.ClientID等于control1的时候,实际输出就是"control1aaa = 1"了。当然,我这里举的例子是对一个变量赋值,你要做的是对一个div的内容复制,所以你需要作一些改变:将div的名称按我说的方法来命名,也就是和the.ClientID相关,然后将赋值语句也改为相关的。
      

  8.   

    document.getElementById("divId").innerHTML="aaa"其实只要把divID所属的控件改成服务器控件,并把这个“divID”改成 xxx.ClientID就可以解决问题了
      

  9.   

    如果使用服务器控件:
    document.getElementById("<%= 服务器控件服务器端ID.ClientID %>").id
      

  10.   

    使用服务器端控件后,document.getElementById("<%= divId.ClientID %>")确实可以避免ID重复的问题.但是我在使用document.getElementById("<%= divId.ClientID %>").innerHTML="aaa"的时候,却发现没有将值写到divId中
      

  11.   

    准确的说"aaa"是写入到了divId控件中,因为我用alert(document.getElementById("<%= divId.ClientID %>").innerHTML)可以显示出我写入的值,但是却没有在页面中显示出来...
      

  12.   

    没看到你的代码,所以不知道你这种写法是不是可行,不过比较好的做法是在后台添加那个按钮的onclick属性
    button1.Attributes.Add("onclick","document.getElementById('"+divId.ClientID+"').innerHTML='aaa'");
    而且这样应该是可行的
      

  13.   

    问题找到了,在使用document.getElementById("<%= divId.ClientID %>").innerHTML的时候其实值已经写入了,但是页面中却不能显示,我想可能因为它是服务器控件所以不能及时的显示出来.
    而不使用服务器端控件又会造成重名的问题.我尝试过动态的设置控件的值,但是这一方法和采用服务器端控件的形式其实是一样的.
    在没有好的办法以前,我重新写了一个控件,因为需要采用AJAX所以使用起来比较麻烦~~谢谢大家,中饭后结贴