我有一个解析excel文档的大方法。为了解析整个excel,它现在需要大约10分钟(是的,这是一个非常大的excel文档,有很多表)。当用户从下拉列表中选择特定值时,将调用该方法。我正在使用以下块函数来阻止面板向用户显示解析正在处理。
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函数,但仍然没有运气。
我不知道为什么即使我的方法完成,面板仍然会被阻挡。
你能提出一些建议吗?
答案 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);