关于模态关闭我有问题... 所以我在模态
中有这个按钮<div id="Reporting_footer" class="modal-footer">
<asp:Button ID="btnReportingExport" runat="server" Text="Export"
CssClass="btn btn-default" OnClientClick="ChangeModalFunction();"
OnClick="btnReportingExport_Click"/>
<input id="Submit1" class="btn btn-default" type="submit" data-dismiss="modal"
value="Cancel" />
</div>
ChangeModalFunction
该按钮首先调用看起来像这样的JS函数function ChangeModalFunction() {
$('#Reporting_modal').modal('hide');
$('#GenerateReport_modal').modal('toggle');
}
.gif
所以我只是隐藏模态并显示另一个模态,其上只有一些btnReportingExport_Click
动画来生成报告。之后我的主要事件发生Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition",
string.Format("attachment; filename=\"{0}.zip\"", QuestionnaireName));
Response.WriteFile(FilePathZip);
,它执行大量的工作,从SQL获取数据,将其放在Excel上,转换为PDF,压缩并将其放入响应中
它看起来像这样......
.gif
所以我想要完成的,但失败的是在我刷新我的回复之前用ScriptManager.RegisterStartupScript(this, this.GetType(),
"CloseModal", "Closepopup();", true);
Response.Flush();
关闭模态......我不知道怎么做了
Closepopup
function Closepopup() {
$('#GenerateReport_modal').modal('hide');
}
函数只是简单的函数
Response.Flush()
因此,经过长时间的代码旅行,我的问题出现了,我得到了下载文件对话框,我的模态仍然在后台启动并运行。我完全没有想法如何修复它,如何在执行Stack<Object> stack;
stack.push(first_object);
while( !stack.isEmpty() ) {
// Do something
my_object = stack.pop();
// Push other objects on the stack.
}
之前隐藏代码中的模态?
感谢您的帮助,我为文字墙道歉
答案 0 :(得分:2)
有趣的场景,我希望您尝试以下解决方案:
使用jquery通过ajax请求调用您的zip文件端点(您也可以使用vanilla javascript)。然后将此事件onreadystatechange
绑定到您的请求。
$(".submitButton").click(function(){
var xhr = $.ajax({url: "/data.zip",
success: function(result){
}});
xhr.onreadystatechange = function() {
if(xhr.readyState === 4)
Closepopup();
};
});
此事件将触发5种不同的状态:
我相信当您获得此状态4时,对话框将同时打开,您可以关闭弹出窗口。