我有一个表格,其中包含我在数据库中拥有的所有对象.我在我的Page_Load函数中加载它们.我有一个文本字段和一个按钮,当单击按钮时,我希望该单击的处理程序放置一个新对象,其名称写在数据库的文本字段中.
现在,我希望点击后发生的事情是页面再次加载表中的新项目.问题是按钮事件处理程序在Page_Load函数之后运行.
解决方案是在Page_Load中使用IsPostBack或使用预加载功能.一个问题是,如果我有3个不同的按钮,我必须在它们之间有所不同,而不是有3个不同的方便功能.
任何没有这个问题的解决方案?
码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userId"] == null)
Response.Redirect("Login.aspx");
// LOAD DATA FROM DB
}
protected void CreateObject(object sender, EventArgs e)
{
// SAVE THE NEW OBJECT
}
Run Code Online (Sandbox Code Playgroud)
也许您应该尝试在PreRender而不是Load期间加载数据
protected void Page_Load(object sender, EventArgs e)
{
this.PreRender += Page_PreRender
if (Session["userId"] == null)
Response.Redirect("Login.aspx");
}
protected bool reloadNeeded {get; set;}
protected void CreateObject(object sender, EventArgs e)
{
// SAVE THE NEW OBJECT
reloadNeeded = true;
}
protected void Page_PreRender(object sender, EventArgs e)
{
if(reloadNeeded || !IsPostBack)
// LOAD DATA FROM DB
}
Run Code Online (Sandbox Code Playgroud)