我正在使用asp.net c#,我想从数据库生成文本框。我的表中有4条记录,所以我想在运行时使用4个文本框。
但是我在登记Insepct Element
时只收到一个文本框我收到了4个文本框,但它没有在我的页面上显示。
不知道哪里出错了。
我正在使用这样的代码
OracleConnection obj_Conn = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString());
Table table = new Table();
table.ID = "table1";
string Query = "SELECT * FROM XXCUS.MASTER_VERIFICATION";
OracleDataAdapter da = new OracleDataAdapter(Query, obj_Conn);
//DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.Fill(dt);
var Count = dt.Rows.Count;
if (Count > 0)
{
TableRow row = new TableRow();
TextBox txt = new TextBox();
for (int i = 0; i < Count; i++)
{
TableCell cell = new TableCell();
txt.ID = "txt" + i.ToString();
cell.ID = "cell" + i.ToString();
cell.Controls.Add(txt);
row.Cells.Add(cell);
}
table.Rows.Add(row);
dvGenerateCntrl.Controls.Add(table);
}
并在Page Load
上调用此方法答案 0 :(得分:2)
将声明新TextBox
的行放在for
循环
for (int i = 0; i < Count; i++)
{
TextBox txt = new TextBox();
TableCell cell = new TableCell();
txt.ID = "txt" + i.ToString();
cell.ID = "cell" + i.ToString();
cell.Controls.Add(txt);
row.Cells.Add(cell);
}
答案 1 :(得分:1)
首先调试您的代码并确保在datatable
中获得4行并使用此代码。
OracleConnection obj_Conn = new `OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["oracleConn"].ToString());`
Table table = new Table();
table.ID = "table1";
string Query = "SELECT * FROM XXCUS.MASTER_VERIFICATION";
OracleDataAdapter da = new OracleDataAdapter(Query, obj_Conn);
//DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.Fill(dt);
var Count = dt.Rows.Count;
if (Count > 0)
{
TableRow row = new TableRow();
TextBox txt = new TextBox();
for (int i = 0; i < Count; i++)
{
TextBox txt = new TextBox();
TableCell cell = new TableCell();
txt.ID = "txt" + i.ToString();
cell.ID = "cell" + i.ToString();
cell.Controls.Add(txt);
row.Cells.Add(cell);
}
table.Rows.Add(row);
dvGenerateCntrl.Controls.Add(table);
}
在代码中,每次都不创建TextBox的对象。 我认为它会对你有帮助。