说明:ti22是用户控件中子控件的IDstr="<%=ti22.ClientID %>"
  document.getElementById(str).innerHTML="22";  
以上代码可以正常设置值。我想用以下的方式设置值,请问该如何操作:var i=2;
str="<%=ti2"+i+".ClientID %>"//这个总是通不过
  document.getElementById(str).innerHTML="22";  

解决方案 »

  1.   

    <%=ti2"+i+".ClientID %>
    你觉得这样的写法符合 C#或者VB.NET语法吗?
      

  2.   

    <%=(Page.FindControl("ti2"+i) as XXControl).ClientID %>
    or
    <%=(form1.FindControl("ti2"+i) as XXControl).ClientID %>
      

  3.   

    这样试试。
    str="ti2<%=i %>.ClientID"
      

  4.   

    必须先生成后document.getElementById(str).innerHTML="22";
    楼主检查一下是不是document.getElementById(str)为null如果是的话就是在加载之前调用了document.getElementById(str).innerHTML="22";会报错
      

  5.   

    把问题简单化:
    <body>
    <form name=f>
    <input type='text' id='t22' name='t22' value='test' onclick='test()' />
    </form>
    </body>
    <script>
    function test(){
      alert(document.f.t22.value)
      
      try{
        var i=2
        var str='t2'+i
        alert(document.f.str.value)
        //上面的str仅仅是字串而已,f.str本意是要找t22对象,但f.str相当于f."一个字串str",所以下面会报错
      }
      catch(e){alert(e.message)}  var i=2
      var str='t2'+i
      alert(document.f[str].value)//但f[str]就不同了,f[str]的含义是找出f下的、名为str的控件对象,
                                  //所以是正确的}
    </script>