我的更新面板无法解除阻止

时间:2016-07-27 14:57:10

标签: javascript c# asp.net block panel

我有一个解析excel文档的大方法。为了解析整个excel,它现在需要大约10分钟(是的,这是一个非常大的ex​​cel文档,有很多表)。当用户从下拉列表中选择特定值时,将调用该方法。我正在使用以下块函数来阻止面板向用户显示解析正在处理。

 function lockGridUI() {
        $('#<%=UpdPnl_RevReports.ClientID%>').block({
            message: $('<img src="../Images/loaders/load.gif"/>')

        });

问题是,如果我的excel文档需要超过4分钟才能被解析,我的面板将永远被阻止!!我设置了一个超时阻塞功能的时间并且正在工作,但我不想添加超时以解锁我的面板,因为我不知道excel需要的时间才能被解析。

我在后面的代码中尝试了以下内容:

 string sScript = "";
    sScript = sScript + "function unlockUI() {";
    sScript = sScript + @"$('#<%=UpdPnl_RevReports.ClientID%>').unblock();" ;
    sScript = sScript + "}";


    // REGISTER NOW.
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Registered Script", sScript, true);

不幸的是没有运气!我已经从方法结尾处的代码调用了javascript函数,但仍然没有运气。

我不知道为什么即使我的方法完成,面板仍然会被阻挡。

你能提出一些建议吗?

1 个答案:

答案 0 :(得分:1)

您可以在代码隐藏中尝试此操作:

crypto.randomBytes(48, function (err, buffer) {
            if (err) {
              x = false;
              return;
            }

您还可以在ScriptManager中增加异步回发的超时时间:

ScriptManager.RegisterStartupScript(this, this.GetType(), "Registered script", string.Format("$('#{0}').unblock();", UpdPnl_RevReports.ClientID), true);