Javascript 响应前关闭模态。冲洗-C#
我对模式关闭有问题。。。 所以我有一个按钮Javascript 响应前关闭模态。冲洗-C#,javascript,c#,twitter-bootstrap,Javascript,C#,Twitter Bootstrap,我对模式关闭有问题。。。 所以我有一个按钮btnReportingExport,它位于modal的内部 <div id="Reporting_footer" class="modal-footer"> <asp:Button ID="btnReportingExport" runat="server" Text="Export" CssClass="btn btn-default" OnClientClick="ChangeModalF
btnReportingExport
,它位于modal的内部
<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>
因此,我只是隐藏模式,并显示另一个模式,它只有一些.gif
动画用于生成报告。之后,我的主要事件发生了btnReportingExport\u单击
,加载内容,从SQL获取数据,将其放入excel,转换为PDF,压缩并将其放入响应
看起来像这样
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition",
string.Format("attachment; filename=\"{0}.zip\"", QuestionnaireName));
Response.WriteFile(FilePathZip);
因此,我希望完成的,但不幸失败的是,在我刷新响应之前,用.gif
关闭模态。。。我再也不知道该怎么做了
ScriptManager.RegisterStartupScript(this, this.GetType(),
"CloseModal", "Closepopup();", true);
Response.Flush();
Closepopup
函数只是一个简单的函数
function Closepopup() {
$('#GenerateReport_modal').modal('hide');
}
所以在漫长的代码旅行之后,我的问题出现了,我得到了下载文件对话框,我的模式仍然在后台运行。我完全不知道如何修复它,如何在执行Response.Flush()
之前对代码隐藏模态
感谢您的帮助,我为文本墙的有趣场景道歉,我希望您尝试以下解决方案: 使用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时,对话框将同时打开,您可以关闭弹出窗口。非常感谢您,我知道这是正确的方法。。。但是我的AJAX知识不适合用这种方式完成它。。。借助@JABFreeware的一点帮助,我找到了一种创建cookie的方法,一旦开始创建报告,就会对cookie进行检查。在cookie值更改后,我关闭模式并销毁cookie,并停止检查间隔
$(".submitButton").click(function(){
var xhr = $.ajax({url: "/data.zip",
success: function(result){
}});
xhr.onreadystatechange = function() {
if(xhr.readyState === 4)
Closepopup();
};
});