0

在这个项目中,我使用用户输入来动态创建文本框:

        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目前,它们在上一个和下一个按钮下方并排显示。

4

1 回答 1

0

如果要在表格中显示动态文本框,则只需动态创建 HTML 表格。创建 TR(行),然后 TD(单元格),然后创建文本框,将其添加到单元格,然后将单元格添加到行,将行添加到表格,将表格添加到您想要放置的任何控件。

如果您在网页中创建 HTML 表格,那么只需添加 runat="server" 并为其提供 ID 即可使其在服务器端可见,您将能够像任何其他控件一样操作它。

换句话说,不要将控件添加到窗体,将其添加到特定的父控件。

<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)。

于 2013-10-04T15:06:36.390 回答