runat='server'是ASP.NET在服务器端用的,在本地没有这个属性,也没用,你看一下textobx控件生成静态后的HTML就明白了

解决方案 »

  1.   

    runat='server'这句话我得必须留着.要不后台不能引用了.
      

  2.   

     <input type="button" value="  " onclick="File1_onclick('a')">
      <script language="javascript" type="text/javascript"> 
    <!-- 
    var i=1; 
    var str; 
    function File1_onclick(obj) { var str = " <input    id='f"+i+"' type='file' style='width: 200px' runat='server'  onpropertychange='Test(this)'  onchange='File1_onclick(this)'/>"; alert(str); 
      i++; 
    } // --> 
    </script> 我试了一下你的代码,可以啊,alert出来的是f1,f2,f3....
      

  3.   

    lz 的代码我是这样试的<script> 
     
    var i=1; 
    var str; 
    function File1_onclick(obj) 
    { var str = " <input    id='f"+i+"' type='file' style='width: 200px' runat='server'  onpropertychange='Test(this)'  onchange='File1_onclick(this)'/>"; alert(str); 
      i++; 
    }  File1_onclick();
     File1_onclick()
    </script> 
    我是直接浏览的没有用什么服务器.
      

  4.   

    你挺有创意的,JS动态生成.net控件.这样子是不可以的,你必须把runat='server'拿掉,就算加上,你在后台也访问不到你动态添加的控件.
    就从页面创建顺序上来说,js就没有办法做到创建服务器控件的.因为它最后运行,而服务器控件要在page_load或者之前就已经创建了才可以的!