我要实现的效果是:在页面上点击一个按钮就会调用js事件动态添加<input type="text">这个控件,然后在点击“提交”后,后台接收 用户在input中填写的值。
我发现,如果是在普通页面中做,可以顺利实现,但是放到母版页中 就不行了。代码我粘上来,请大家出出主意。
谢谢了。aspx:
从下代码都放在一个用母版页制作的aspx页面中。
=======================================================================
var count=0;
var uc=0;
function AddRow(t) 

     count++;
     var newTr = document.getElementById(t).insertRow();
     newTr.setAttribute("id",t+"tr" + count.toString());
     var newTd0 = newTr.insertCell(); 
     var newTd1 = newTr.insertCell();
     var newTd2 = newTr.insertCell();  
     var newTd3 = newTr.insertCell();  
     newTd0.innerHTML=" <input type='input' name='U"+ count.toString()+"' id='U"+ count.toString()+"'>";      newTd0.innerHTML="<input type='input' name='U"+ count.toString()+"'>"; 

<input type="button" id="btnAdd" class="ButtonStyle" onClick="AddRow('t1');" value="添加行" /> 
<table id="t1"></table><asp:Button ID="Button1"  runat="server" Text="提 交" CssClass ="ButtonStyle" onclick="Button1_Click" />
c#:
=======================================================
if (Request.Form["U1"]!= null)         // 为做测试,我这里引用一个固定的input控件的名称。
                {
                    Response.Write(Request.Form[["U1"]);
                }
                else
                {
                    MessageBox.Show(this, "没有接到值啊!我日。");
                }

解决方案 »

  1.   

     document.getElementById("ctl00_body_自己定义的控件ID名")
    使用母板的话 看看网页上生成的源代码就知道了  ID名会改变的
      

  2.   

    感谢楼上二位的关注!
    楼上所说的方法,针对那些在页面中固有的控件而言是有效的
    但是本案中  那些控件都是在客户端动态生成的,服务器端此时也许并不知道客户端会产生几个这样的控件,所以我想  是不是不用加“ctl00_body_”呢?此法 我已经实验了  还是不行啊 
      

  3.   

    如果是动态的话 就是在JS中增加的控件ID是不会改变的!!
      

  4.   

    你这些写错了 多个括号
    Response.Write(Request.Form[["U1"]); js生成的控件name值是不会改变
    假如插入了5个textbox  他们name一样的话
    <input  name="t1" type="text" value="1" />
    <input  name="t1" type="text" value="2" />
    <input  name="t1" type="text" value="3" />
    <input  name="t1" type="text" value="4" />
    <input  name="t1" type="text" value="5" />
    取值
    protected void Button1_Click(object sender, EventArgs e)
    {
        string a = Page.Request.Form["t1"];
    }此时a的值是1,2,3,4,5可以取得的
      

  5.   

    newTd0.innerHTML=" <input type='input' name='U"+ count.toString()+"' id='U"+ count.toString()+"'>"; 你这句的type是input????  应该是text吧  html识别不了吧~~  还有你的value值也没有(没有也没关系,取出来是空而已)   估计是你那个type="input" 的关系吧
      

  6.   

    测试了下貌似type='input' 也可以取...  你先做个简单的测试 向我一样  估计是那块有问题~~
    下班了~~
      

  7.   

    模板页生成的控件id变了。。<%控件名.ClientId%>不晓得写对了没。。这样可以拿到原始的控件id
      

  8.   

    js生成的控件不会被改名的,去掉'.Form'试试.string a = Page.Request["t1"];
      

  9.   

    同进也感谢各位朋友的关注!谢谢了!csdn就是好啊!