添加新的标签和文本框按钮单击

本文关键字:按钮 单击 文本 标签 添加 | 更新日期: 2023-09-27 18:11:41

这段代码应该允许我在每次点击

按钮时添加新的文本框和标签
 int numOfFeilds = 0;
    protected void More_Click(object sender, EventArgs e)
    {
        numOfFeilds+=1;
        TextBox_ID.Text = Convert.ToString(numOfFeilds);
        Label[] labelsA = new Label[numOfFeilds];
        TextBox[] textBoxesA = new TextBox[numOfFeilds];
        Label[] labelsB = new Label[numOfFeilds];
        TextBox[] textBoxesB = new TextBox[numOfFeilds];

        for (int i=0; i < numOfFeilds; i++)
        {
            labelsA[i] = new Label();
            labelsA[i].ID = "l_A_" + Convert.ToString(i);
            labelsA[i].Text = "Book Number";

            textBoxesA[i] = new TextBox();
            textBoxesA[i].ID = "tb_A_" + Convert.ToString(i);
            labelsB[i] = new Label();
            labelsB[i].ID = "l_B_" + Convert.ToString(i);
            labelsB[i].Text = "Amount";
            textBoxesB[i] = new TextBox();
            textBoxesB[i].ID = "tb_B_" + Convert.ToString(i);
        }
        for (int i =0; i< numOfFeilds; i++)
        {
            divFeilds.Controls.Add(new LiteralControl("<br />"));
            divFeilds.Controls.Add(labelsA[i]);
            divFeilds.Controls.Add(textBoxesA[i]);
            textBoxesA[i].Text = Convert.ToString(numOfFeilds);
            divFeilds.Controls.Add(labelsB[i]);
            divFeilds.Controls.Add(textBoxesB[i]);
            divFeilds.Controls.Add(new LiteralControl("<br />"));
        }
    }

但是到目前为止,它只适用于第一次点击。

无论我在第一次点击按钮之后点击多少次,numoffilds的值都保持为1。

我不明白为什么会发生这种情况,因为numoffilfields是在这个方法的外面

添加新的标签和文本框按钮单击

每次点击按钮,numoffefields的值都会重置并重新从零开始。尝试将click的值存储在viewstate中,然后在每次单击时从viewstate进行检查。