我正在使用ASP.NET Web应用程序,但遇到了一个问题。
我有一个表'sticky'的数据库,它由属性'id'和'text'组成。 我制作了一个UserControl并将其命名为“StickyControl”。 StickyControl包含Label以显示一些文本,Button用于编辑粘性,Button用于删除粘性。 我想在删除按钮时删除粘贴按钮。
在PageLoad方法中,我从数据库中加载所有的stickies并且它可以工作。 此外,从StickyControl中删除Button工作。
现在问题是什么? 当我点击删除按钮时: 1.运行PageLoad并将所有StickyControls动态添加到屏幕上。 2.我的代码来自删除按钮运行(因为页面生命周期,甚至处理程序在PageLoad之后运行) 所以我最终在屏幕上显示错误的信息。我必须实际点击两次。
我该如何避免?有没有'正确'的方法来实现这个?
main()
答案 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();
}