我是动态生成一个html表格,然后取出数据,赋值给相应的textbox,但是运行后textbox只能显示数据,不能修改。是不是html控件不能被修改?
如果不能修改,那选择<input type=text>可以修改,但是我如何取到修改以后的数据。(控件不只一个)
TextBox[] tbTemp=new TextBox[objDs.Tables[0].Rows.Count]; //定义textbox数组
     
   ArrayList html=new ArrayList();
   html.Add("<table width='100%' border=1><FONT size='2'>");
   for (int j=0;j<objDs.Tables[0].Rows.Count;j++)
   {     
    string sqlModelspec="SELECT * from t_modelSpec where specid='"+ objDs.Tables[0].Rows[j]["specid"].ToString() +"'";
    Connect();
    objConnection=new SqlConnection(ConfigurationSettings.AppSettings["SqlConnectionString"]);
    objAdapter=new SqlDataAdapter(sqlModelspec.ToString(),objConnection);
    objAdapter.Fill(objDs,"1");
    Disconnect();
    tbTemp[j]=new TextBox();     //实例化数组
    tbTemp[j].ReadOnly=false;
//    this.Page.Controls.Add()=tbTemp[j];
    
    tbTemp[j].Text=objDs.Tables[1].Rows[j]["specdetail"].ToString();  //给textbox赋值
    if (j==0)    //写入Html页面
    {
     html.Add("<tr>");
     html.Add("<td>"+objDs.Tables[0].Rows[j]["specclassname"].ToString()+"</td>");
     html.Add("<td></td></tr>");
     html.Add("<tr>");     
     html.Add("<td>"+objDs.Tables[0].Rows[j]["specname"].ToString()+"</td>");
     html.Add("<td><input type=text id=t"+j+" size=20 value="+tbTemp[j].Text+" runat=server></td>");
     html.Add("</tr>"); 
    }
    else
    {
     if (objDs.Tables[0].Rows[j-1]["specclassname"].ToString()==objDs.Tables[0].Rows[j]["specclassname"].ToString())
     {
      html.Add("<tr>");          
      html.Add("<td>"+objDs.Tables[0].Rows[j]["specname"].ToString()+"</td>");
      html.Add("<td>"+tbTemp[j].Text+"</td>"); ///////////运行后,无法修改textbox中的值      html.Add("</tr>");
     }
     else
     {
      html.Add("<tr>");
      html.Add("<td>"+objDs.Tables[0].Rows[j]["specclassname"].ToString()+"</td>");
      html.Add("<td></td></tr>");
      html.Add("<tr>");      
      html.Add("<td>"+objDs.Tables[0].Rows[j]["specname"].ToString()+"</td>");
      html.Add("<td>"+tbTemp[j].Text+"</td>");
      html.Add("</tr>"); 
     }
    }
//    html.TrimToSize();
   }
   html.Add("</FONT></table>");
   for(int i=0;i<html.Count;i++)
    LoadMainHtml += html[i].ToString(); 

解决方案 »

  1.   

    html.Add("<td>"+tbTemp[j].Text+"</td>"); ///////////运行后,无法修改textbox中的值
    这样输出的只是tbTemp[j]的值,并不是tbTemp[j],
    html.Add("<td><asp:textbox id="txt" Runat="server" text="+tbTemp[j].Text+" asp:textbox></td>");
    这样试试
      

  2.   

    奇怪 string html;
    html="<td><asp:textbox id=txt Runat=server text='a' asp:textbox></td>";
             Response.Write(html);
    我这样写到pageload里面,但是运行以后页面是空白的!!
      

  3.   

    按照这个方式添加
    http://www.cnblogs.com/lovecherry/archive/2005/04/16/138968.html
      

  4.   

    我试过另外一种方法html.Add("<input type=text name=txt>")这样可以修改,但是就是不知道如果取到这个修改以后的内容,郁闷!!
      

  5.   

    加了autopostback也没有东西显示!