【发布时间】:2015-01-16 01:18:40
【问题描述】:
我开始this question 并能够得到我最初问题的答案。现在文本框被删除,但只有我第二次单击删除按钮。这是我尝试过的
protected void btnRemoveTextBox_Click(object sender, EventArgs e)
{
foreach (Control control in PlaceHolder1.Controls)
{
var tb = new TextBox();
tb.ID = "Textbox" + counter;
if ((control.ID == tb.ID.ToString()) && (control.ID != null))
{
controlIdList.Remove(tb.ID);
ViewState["controlIdList"] = controlIdList;
}
}
}
当我逐步使用断点和错误调试时,代码运行两次没有错误,但第二次通过它删除按钮。
【问题讨论】:
-
您的 Page_Load 方法是什么样的?你有 Page_PreRender 方法吗?
-
因为您在
LoadViewState方法中创建和添加了文本框(在页面生命周期的早期),这里只从controlIdList中删除了一个id,而不是从控件树中删除。注意:您不需要在btnRemoveTextBox_Click方法中创建新的TextBox实例。