【发布时间】:2023-04-05 20:53:02
【问题描述】:
我有一张表,里面有我数据库中的所有对象。我将它们加载到我的 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
}
【问题讨论】:
-
你不能在page_load之前有点击事件,但我不明白这个问题是如何通过使用IsPostBack解决的?
-
是的,但是如果我有 12 个按钮调用呢?然后,我将拥有 12 个 if 子句,而不是 12 个函数。
-
真的不明白,你将只有一个 if:IsPostBack,如果为 true,则不要在 OnLoad 中执行代码,而按钮单击事件将完成它的业务。按钮点击事件仍然会发生
-
如果我不执行该函数,我将如何再次用数据库中的数据填充表?
-
好吧,我没有看到你所有的代码,但如果你填充像 gridview 这样的控件,可能不需要这样做,因为它们会在视图状态中维护这些数据。或者您可以调用填充按钮单击事件。无意冒犯,但您应该熟悉 ASP.NET Web 表单中的常见模式:asp.net/web-forms。或者更好的是尝试 ASP.NET MVC