动态删除控件及其数据ASP.net

时间:2017-11-02 18:49:58

标签: c# asp.net viewstate

所以,我问了这个question并获得了很多有用的信息,这些信息让我看到了一个显示的页面。我可以动态创建控件!雅虎!

我甚至可以动态删除控件 - 排序......

这是事情发生的地方。有两件事违背了我的意愿:

  1. 删除的控件保留在页面上,直到另一个按钮为止 点击。

  2. 即使我在控件上调用Dispose也是如此 删除后,他们的数据仍然在ViewState中。所以如果我创造五个 控制并填写所有五个,然后删除第三个控件 页面刷新,我有前四个控件的数据, 在前两个和后两个。我松了"第五个数据 控制,而不是第三控制。如果我随后重新创建第五个 控制来自之前的第五个控件的数据是神奇的 有!

  3. 这是我的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--;
    }
    

    我想我在这里有两个问题:

    1. 如何从事件处理程序刷新页面,以便删除的控件实际上从屏幕上消失?
    2. 如何从ViewState中删除已删除控件的数据?

0 个答案:

没有答案