在这个项目中,我使用用户输入来动态创建文本框:
int ReqPO = Convert.ToInt32(txtReqPONum.Text);
int n = ReqPO;
for (int i = 0; i < n; i++)
{
TextBox MyTextBox = new TextBox();
//Assigning the textbox ID name
MyTextBox.ID = "txtPOAmount" + "" + ViewState["num"] + i;
this.Form.Controls.Add(MyTextBox);
}
被修改 这是我得到的不太远的地方。现在我只是犯了很多错误
Table table1 = new Table();
TableRow tr = null;
TableCell tc = null;
int ReqPO = Convert.ToInt32(txtReqPONum.Text);
int n = ReqPO;
for (int a = 0; a < n; a++)
{
tr = new TableRow();
for (int b = 0; b < n; b++)
{
TextBox MyTextBox = new TextBox();
for (int c = 0; c < 3; c++)
{
tc = new TableCell();
table1.Rows.Add(tc);
}
//Assigning the textbox ID name
MyTextBox.ID = "txtPOAmount" + "" + ViewState["num"] + b;
this.Form.Controls.Add(MyTextBox);
}
table1.Rows.Add(tr);
}
this.Form.Controls.Add(table1);
问题是我在向导中使用它,我想显示在自己的行中出现在表中的新文本框字段。目前,它们并排显示在asp:wizard
上一个和下一个按钮下方。
答案 0 :(得分:0)
如果要在表格中显示动态文本框,则只需动态创建HTML表格。创建TR(行),然后创建TD(单元格),然后创建文本框,将其添加到单元格,然后将单元格添加到行,将行添加到表格,将表格添加到要放置的任何控件。
如果要在网页中创建HTML表格,那么只需添加runat =“server”并为其提供ID即可使其在服务器端可见,您将能够像其他任何一样操作它控制。
换句话说,不要向Form添加控件,将其添加到特定的父控件。
<asp:Wizard runat="server">
<WizardSteps>
<asp:WizardStep>
<table runat="server" id="tblTextBoxes">
</table>
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
tblTextBoxes.Controls.Add(new TextBox(){ID =“txtNewTextBox”,Text =“新控制文本”});
(上面的代码仅作为示例,您不能将TextBox直接添加到表中,但您可以在TR标记内添加TD。)