在page_load之前运行按钮事件处理程序

Vad*_*klk 5 c# asp.net

我有一个表格,其中包含我在数据库中拥有的所有对象.我在我的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)

jbl*_*jbl 8

也许您应该尝试在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)