如何在ASP.NET

时间:2016-07-14 21:12:36

标签: javascript c# jquery asp.net

我有常规的asp.net页面,上面有几个按钮。我希望有一个像Stop Request这样的按钮,所以无论点击什么按钮,用户都可以点击这个按钮刷新我的页面。所以这是我的想法的例子:

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" ToolTip="Click to generate report based on parameters selected above"
                                        Text="Run Report" Width="100px" />
<asp:Button ID="btnCancelRequest" runat="server" Text="Stop Request" OnClientClick="javascript:return CancelRequestClick();"/>

因此,btnRefresh进行回发,执行SQL查询并执行后端逻辑。让我们假设一切都需要10-20秒才能完成。我还有更多像这样的按钮。其中一些执行大量的SQL查询,其中一些查询会在后面生成一些长时间的执行代码。我想拥有只会刷新页面的btnCancelRequest按钮,这样可以在没有任何用户更改的情况下恢复页面。

这里的JS代码

function CancelRequestClick() {
     window.location.href("RateReport.aspx");
     return false;
};

有没有办法让这个JS代码在点击时执行而不是等待回复?

2 个答案:

答案 0 :(得分:0)

使用javascript,window.stop(),停止浏览器加载

def fact(n):
    ans=1;
    for i in range (1,n+1):
        ans=ans*i;
    return ans;

while(True):
    n=input()
    if not n:
        break
    n=int(n)
    print (str(n)+"!")
    print (fact(n))

没有javascript,有点棘手,提交表单可以取消其他请求,例如虚拟提交到同一页面

function CancelRequestClick() {
     window.stop();
     window.location.href("RateReport.aspx");
     return false;
};

按取消将向该页面提交虚拟表格,并停止其他过程

答案 1 :(得分:0)

  

我希望能够取消所有当前请求。如果用户点击   运行按钮,它在后面或用户点击执行升沉查询   按钮,它执行我想要的背面的任何其他升沉逻辑   能够随时取消和刷新页面

首先,HTTP是无状态的。这意味着在提供请求时,UI线程不再可用。结果,您不知道要取消的任务。

您希望实现的目标是不可能的。 但是,您有一个解决方法。触发长时间运行的任务后,在数据库中插入记录,如 -

UserId, TaskType, IsCancelled

然后让任务去检查 IsCancelled 标志。

如果要取消它,请将IsCancelled标志设置为true。当任务看到它时,它将自行取消直到那时你不能做任何事情

理想情况下,您希望将HangfireQuartz.Net等计划程序用于长时间运行的作业,但这超出了您的问题范围。