ASP.NET C#。
在 UpdatePanel 中,我们有带有 OnTextChanged="text_changed" 方法和面板的 TextBox。
如果在文本框中输入数字 3,则下面的 3 个文本框将出现在 Panel 中,具有不同的 ID。
但是,当点击更新面板外的按钮时,会发生动态创建的文本框未找到错误。
如何获取动态创建的文本框的值?
创建文本框:
protected void text_changed(Object sender, EventArgs e)
{
int n = Int32.Parse(TextBox6.Text);
Table table = new Table();
for (int i = 0; i < n; i++)
{
TableRow trow = new TableRow();
table.Rows.Add(trow);
TableCell tcell = new TableCell();
tcell.Text = (i + 1).ToString();
TextBox tb = new TextBox();
tb.ID = "TB" + i.ToString();
tcell.Controls.Add(tb);
trow.Cells.Add(tcell);
}
Panel1.Controls.Add(table);
ButtonClick //从创建的文本框中获取值: int n = Int32.Parse(TextBox6.Text);
for (int i = 0; i < n; i++)
{
string title = ((TextBox)UpdatePanel1.FindControl("Panel1").FindControl("TB" + i.ToString())).Text; //here null pointer exception..
}