所以,我问了这个question并获得了很多有用的信息,这些信息让我看到了一个显示的页面。我可以动态创建控件!雅虎!
我甚至可以动态删除控件 - 排序......
这是事情发生的地方。有两件事违背了我的意愿:
删除的控件保留在页面上,直到另一个按钮为止 点击。
即使我在控件上调用Dispose也是如此 删除后,他们的数据仍然在ViewState中。所以如果我创造五个 控制并填写所有五个,然后删除第三个控件 页面刷新,我有前四个控件的数据, 在前两个和后两个。我松了"第五个数据 控制,而不是第三控制。如果我随后重新创建第五个 控制来自之前的第五个控件的数据是神奇的 有!
这是我的onclick处理程序:
protected void BtnDeleteRow_Click(object sender, EventArgs e)
{
DeleteControls(sender);
}
它所谓的方法:
private void DeleteControls(object sender)
{
Button button = (Button)sender;
string id = button.ID;
Panel row = (Panel)button.Parent;
for (int i = row.Controls.Count - 1; i >= 0; i--)
{
row.Controls[i].Dispose();
}
row.Parent.FindControl(row.ID).Dispose();
if (id.Contains("Leadership"))
NumberOfLeadershipControls--;
else if (id.Contains("Elected"))
NumberOfElectedControls--;
}
我想我在这里有两个问题: