带有删除和编辑按钮的ASP UserControl

时间:2016-01-10 01:05:32

标签: c# asp.net

我正在使用ASP.NET Web应用程序,但遇到了一个问题。

我有一个表'sticky'的数据库,它由属性'id'和'text'组成。 我制作了一个UserControl并将其命名为“StickyControl”。 StickyControl包含Label以显示一些文本,Button用于编辑粘性,Button用于删除粘性。 我想在删除按钮时删除粘贴按钮。

在PageLoad方法中,我从数据库中加载所有的stickies并且它可以工作。 此外,从StickyControl中删除Button工作。

现在问题是什么? 当我点击删除按钮时: 1.运行PageLoad并将所有StickyControls动态添加到屏幕上。 2.我的代码来自删除按钮运行(因为页面生命周期,甚至处理程序在PageLoad之后运行) 所以我最终在屏幕上显示错误的信息。我必须实际点击两次。

我该如何避免?有没有'正确'的方法来实现这个?

当我点击按钮'Obriši'时,必须从屏幕上删除粘性。 enter image description here

main()

1 个答案:

答案 0 :(得分:0)

我会安排这样的事情,这样当按下删除时,你不会在删除功能运行之前重新加载,然后你可以调用它:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack == false)
    {
        LoadStickies();
    }
}

private void LoadStickies() 
{
    // Current user id
    String id= Request.QueryString["id"]; 

    // Get stickies from current user
    List<Sticky> stickies = Database.getStickies(id); 

    // Load stickies to screen
    foreach(Sticky s in stickies)
    {
        StickyControl stickyControl = (StickyControl)LoadControl("StickyControl.ascx");
        stickyControl.Text= s.Text;
        stickyControl.Id = s.Id;
        panelStickies.Controls.Add(stickyControl);
    }    
}

protected void btnDeleteSticky_Click(object sender, EventArgs e)
{
    Database.deleteSticky(Id);   
    LoadStickies();        
}