此代码应允许我在每次单击按钮时添加新的文本框和标签
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不在此方法的范围内。
每次您单击按钮时,numOfFeilds的值将重置并再次从零开始。尝试将click的值存储在viewstate中,然后在每次单击时从viewstate中进行检查。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句