如何在c#中使用简单的for循环动态生成标签和文本框

本文关键字:动态 循环 标签 文本 for 简单 | 更新日期: 2023-09-27 18:15:46

所以,我试图在一个按钮单击上生成两个标签和两个文本框。每次我点击按钮,它应该在屏幕上生成一组新的标签和文本框。

这里是布局

Label 1   Textbox 1   Label 2   Textbox 2  Button

每次单击按钮时,应该发生以下操作

1点击

Label 1   Textbox 1  Label 2   Textbox 2  Button     
Label 3   Textbox 3  Label 4   Textbox 4  

2点击

Label 1   Textbox 1  Label 2   Textbox 2  Button 
Label 3   Textbox 3  Label 4   Textbox 4    
Label 5   Textbox 5  Label 6   Textbox 6 

我怎样才能做到这一点呢?

目前我只看到一行标签和文本框,它们可能在同一个地方被覆盖了。

这是我的代码。

        button_press++;
        for (int i = 0; i < button_press; i++)
        {
            Debug.WriteLine("Hello"); 
            Label book_number = new Label();
            book_number.Text = "Book Number";
            book_number.Style["Position"] = "Relative";
            book_number.Style["Top"] = "0px";
            book_number.Style["Left"] = "0px";
            TextBox textBox_book_number = new TextBox();
            textBox_book_number.Style["Position"] = "Relative";
            textBox_book_number.Style["Top"] = "0px";
            textBox_book_number.Style["Left"] = "10px";
            Label amount = new Label();
            amount.Text = "Amount";
            amount.Style["Position"] = "Relative";
            amount.Style["Top"] = "0px";
            amount.Style["Left"] = "30px";
            TextBox textBox_amount = new TextBox();
            textBox_amount.Style["Position"] = "Relative";
            textBox_amount.Style["Top"] = "0px";
            textBox_amount.Style["Left"] = "45px";
            form1.Controls.Add(book_number);
            form1.Controls.Add(textBox_book_number);
            form1.Controls.Add(amount);
            form1.Controls.Add(textBox_amount);
            form1.Controls.Add(new LiteralControl("<br />"));
        }

如何在c#中使用简单的for循环动态生成标签和文本框

每次单击按钮,页面都会刷新,因此您之前创建的文本框和标签将被删除。

我建议您将文本框和标签保存在一个列表中,并在每次单击按钮时添加到集合中,然后在按钮上显示整个集合。

在按钮旁边添加一个隐藏输入,用于跟踪点击次数。将此值设置为您的变量button_press,增加并将新值设置为隐藏输入。这将增加计数,即使每次单击

时页面实际刷新。

最有效的方法不是服务器端,而是客户端。在第一份文件上。加载并创建标签/文本框对。
当按钮被点击时,调用.aspx中的javascript函数,它将创建标签/文本框对。
这将避免为了添加标签/文本对而多次往返服务器。
最后,我确定您想要将这些数据提交给服务器。你可以使用JSON在文本框中构建数据输入,并通过使用与服务器对话的jQuery函数点击另一个名为"提交数据"的按钮来传递所有信息,甚至使用javascript的XMLHttpRequest将数据从客户端推送到服务器。
我知道这听起来很难,但是你可以试一试。

我将按钮按下变量设置为静态,一切工作正常。关键是保持会话状态,通过使其静态,我可以实现它。