ボタンクリックイベントで動的テキストボックスを作成していて、別のボタンクリックでfindcontrolメソッドを使用してそのテキストボックスのデータをフェッチしたい
public void addDepartmentBtn_Click(object sender, EventArgs e)
{
int count = Convert.ToInt32(countTxtBx.Text);
lblErrorMsg.Text = "";
if (Convert.ToInt32(countTxtBx.Text) <= 5)
{
for (int i = 0; i < count; i++)
{
Label lb = new Label();
TextBox tb = new TextBox();
tb.ID = "Textbox_" + i;
lb.ID = "Label_" + i;
lb.Text = "Enter Departnment Name: " + Convert.ToInt32(i + 1);
pnlMain.Controls.Add(new LiteralControl("<br>"));
pnlMain.Controls.Add(lb);
pnlMain.Controls.Add(new LiteralControl("  "));
pnlMain.Controls.Add(tb);
pnlMain.Controls.Add(new LiteralControl("<br><br>"));
lblErrorMsg.Text = Convert.ToInt32(i + 1) + " Departments Created Successfully";
//string str = string.Empty;
//TextBox myTB = (TextBox)pnlMain.FindControl("Textbox_" + i);
//str = myTB.Text;
//Response.Write(str);
}
}
else
{
lblErrorMsg.Text = "You cannot create more than 5 Departments at once:";
}
}
button2でクリック:
protected void Button2_Click(object sender, EventArgs e)
{
string alltextdata = null;
for (int i = 0; i < 5; i++)
{
Control controltxt = FindControl("Textbox_"+i);
if (controltxt != null)
{
TextBox txttemp = (TextBox)controltxt;
alltextdata = txttemp.Text;
}
}
}
しかし、私の検索制御メソッドは常にnullを表示します。htmlページビューのソースをチェックします。これにより、テキストボックスの名前とIDが「Textbox_0」、Textbox_1などのすべてが正しいことがわかります。
私は何か間違いをしていますか?助けてください