【问题标题】:adding new labels and textboxs on button click在按钮单击时添加新标签和文本框
【发布时间】:2016-10-06 07:36:45
【问题描述】:

这段代码应该允许我在每次点击按钮时添加新的文本框和标签

 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 />"));

        }

    }

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

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

我不明白为什么会发生这种情况,因为 numOfFeilds 不在此方法的范围内。

【问题讨论】:

    标签: c# visual-studio web-applications


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 2011-12-02
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多