a.aspx
  <form id="form1" runat="server">
  <div id="Thetema" runat="server"></div>
  </form>a.aspx.cs   StringBuilder sr = new StringBuilder();
   DataSet ds = DbFactory.ExecuteDataSet();
   for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
   {
        sr.Append("<table cellpadding=\"1\" cellspacing=\"1\" border=\"0\" class=\"table0\" width=\"100%\">");
        sr.AppendFormat("<tr><td rowspan=\"4\" class=\"tdbddd\"><input id=\"txtpx_" + i + "\" name=\"txtpx_" + i + "\" type=\"text\" value=\"{0}\" style=\"width:55%;\" /></td></tr>", ds.Tables[0].Rows[i]["emp_web_sort"].ToString());
   }
   
   Thetema.InnerHtml = sr.ToString();cun为ds.Tables[0].Rows.Count.ToString()
for (int i = 0; i < cun; i++)
            {
                TextBox tx = (TextBox)this.Thetema.FindControl("txtpx_" + i + "");
            }  找不到控件   
    请高手指导  谢谢

解决方案 »

  1.   

    TextBox tx = (TextBox)this.Thetema.Item[i].FindControl("txtpx_" + i + "");
      

  2.   

    Thetema.InnerHtml = sr.ToString();
    用这种方式是不会有内容的。你可以查下打开页面后查下代码,应该是没有input控件。
      

  3.   

    name=\"txtpx_" + i + "\" =》name='txtpxName'然后用 Request.Form[txtpxName] 即可取到你添加的文本框的值如果多个文本框同名的话, 返回的是 多个值用 ,  分隔eg:value1,value2,value3
      

  4.   


    sr.AppendFormat("<tr><td rowspan=\"4\" class=\"tdbddd\"><input id=\"txtpx_" + i + "\" name=\"txtpx_" + i + "\" type=\"text\" value=\"{0}\" style=\"width:55%;\" /></td></tr>", ds.Tables[0].Rows[i]["emp_web_sort"].ToString());
    =>
    sr.AppendFormat("<tr><td rowspan=\"4\" class=\"tdbddd\"><input id=\"txtpx_" + i + "\" name='txtpxName' type=\"text\" value=\"{0}\" style=\"width:55%;\" /></td></tr>", ds.Tables[0].Rows[i]["emp_web_sort"]);
      

  5.   

     很厉害 
       这样果然能取到值  
         不过我自己都不知道会有多少个文本框  还有 我还要在里面取 checkbox 的值怎么办?
      

  6.   

    取 checkbox  的值 和它一样文本框的个数也可以确定,不过 或许你 不需要个数的split(',') 会返回数组然后循环就是了