我是动态生成一个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();
如果不能修改,那选择<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();
这样输出的只是tbTemp[j]的值,并不是tbTemp[j],
html.Add("<td><asp:textbox id="txt" Runat="server" text="+tbTemp[j].Text+" asp:textbox></td>");
这样试试
html="<td><asp:textbox id=txt Runat=server text='a' asp:textbox></td>";
Response.Write(html);
我这样写到pageload里面,但是运行以后页面是空白的!!
http://www.cnblogs.com/lovecherry/archive/2005/04/16/138968.html