是应该在OnInit,OnLoad还是OnPreRender中调用存储过程?

时间:2016-01-20 15:11:53

标签: c# asp.net .net stored-procedures radajaxloadingpanel

当按钮点击方法调用RadAjaxLoadingPanel时,我会触发一个典型的Response.Redirect。重定向页面在OnLoad方法中有几个昂贵的存储过程。这似乎锁定了UI,并且圆圈冻结直到这些存储过程完成。这些存储过程是否应保留在OnLoad方法中?加载阻止UI锁定的Response.Redirect时是否有更好的实现?

protected void Button_Click(object sender, EventArgs e)
{
    Response.Redirect("~/page.aspx", false);
}

1 个答案:

答案 0 :(得分:0)

这样做。 通过Management Studio或您用于连接数据库的任何设计器程序运行存储过程。这个操作需要多长时间?

现在导航到您的程序设置后台进程以处理存储过程工作 - 但是在调用存储过程的函数中确保有一个返回行:

return [something];

也许您想要函数或方法返回列表或值?在存储过程运行时,您必须将某些内容返回到视图,这样您的进程就不会被占用。

比较程序中的操作与直接从数据库中执行的操作的执行时间。在我看来,无论你的存储过程需要多长时间,如果它在视图中需要它在OnInit中初始化,OnLoad或OnPreRender都无关紧要。