var objtble = document.getElementById('t1');//t1 为table;
            var rowID=objtble.rows.length;获取table的行数
            var newTR = objtble.insertRow(rowID);//添加行
            newTR.id = "Row_" + rowID;
            
            var newTD=newTR.insertCell(0);//添加列
            newTD.align="center";
            newTD.id = 'Check_'+rowID;
            newTD.innerHTML="<input  runat='server' name='chk' id='chk_"+rowID+"' value=\"\" type='checkbox' onclick=\"\"/>";.................
这里是这样的问题的。。用js创建html控件是行的。。我目的是想,把hmtl控件转换为runat server控件,然后直接在后台获取值,不想用Ajax。我以为很简单的。。在控件中加个runat server就行了。。一开始我加 runat=\"server\" 给我报错。。:Runat 属性必须具有值 Server。
好,我改成不带转义的: runat='server' 
恩,这个不报错了。但是这边动态生成的ID那又报错了:
“chk_"+rowID+"”不是有效标识符。但是我一去掉runat='server' 
就可以了。。
有没有人这样弄过。
 

解决方案 »

  1.   

    js不能创建runat server控件了
      

  2.   

    <input  runat='server' 这个是在服务端解析的,你这样写在页面上只是个html元素。服务端和各户端是两个单独的概念,他们通过http协议来保存数据交互,lz要了解web工作的基本原理才行。
      

  3.   

    JS不能创建服务器端控件如果要通过js创建控件后,在后台取值,可以创建带name的HTML元素
    例如:<input type='text' name='tb' />
    ,post给后台后是可以取到值的
      

  4.   

    首先,JS不能创建服务端控件。
    JS创建的控件在后台也是能获取到的。