FineUI 官方论坛

标题: 【已解决】(专业版2.2.1)请教:如何弹出提示框后执行导... [打印本页]

作者: Mr.Wu    时间: 2015-3-4 10:04
标题: 【已解决】(专业版2.2.1)请教:如何弹出提示框后执行导...
[attach]7239[/attach]
直接上代码:
  1. if (bCheckOk == true)
  2.                     {
  3.                         PageContext.RegisterStartupScript(Alert.GetShowInTopReference(string.Format("导入成功信息:{0}行,耗时:{1:F}秒。", OKkaoshengs.Count, useTime), "导入提示", MessageBoxIcon.Error));
  4.                         return;
  5.                     }
  6.                     else
  7.                     {
  8.                         Alert.ShowInTop(string.Format("Excel内发现{0}行数据有错误,耗时:{1:F}秒.<br/>请下载错误信息,修正后重新导入! ", ErrorRowDt.Rows.Count, useTime), "导入提示", MessageBoxIcon.Information);
  9.                         //输出Excel
  10.                         Response.ClearContent();
  11.                         Response.AddHeader("Content-Disposition", "attachment; filename="" + filename + ".xls"");
  12.                         Response.ContentType = "application/excel";
  13.                         Response.ContentEncoding = System.Text.Encoding.UTF8;
  14.                         Response.Write(ms);
  15.                         Response.End();

  16.                         //释放资源
  17.                         workbook = null;
  18.                         ms.Close();
  19.                         ms.Dispose();
  20.                         errorFileStream.Close();
  21.                         return;
  22.                     }
复制代码
问题:以上代码执行的结果是不会弹出提示框,直接在浏览器上显示下载Excel对话框了。
需求:如何才能先弹出提示对话框,点击确定关闭提示对话框后,才在浏览器上显示下载Excel对话框?
谢谢大家。



作者: zy32002    时间: 2015-3-4 10:22
建议打开新页面进行下载,然后再关闭这个页面
作者: sanshi    时间: 2015-3-4 10:35
可以参考示例,点击确认按钮后,在进行下载操作:http://fineui.com/demo_pro/#/demo_pro/message/confirm_cancel.aspx

你目前的示例中,Response.ClearContent(); 这句代码就把之前输出的提示框给清除了
作者: Mr.Wu    时间: 2015-3-4 11:21
sanshi 发表于 2015-3-4 10:35
可以参考示例,点击确认按钮后,在进行下载操作:http://fineui.com/demo_pro/#/demo_pro/message/confirm_ ...

示例里面都是直接这样:
if (!IsPostBack)
{
   btnOperation2.OnClientClick = Confirm.GetShowReference……
}

导致一点击保存按钮就弹出提示了,并没有达到我想要的效果呢?
我现在是点击保存按钮后,先检查Excel内容有无错误,接着才弹出提示框,关闭提示框才开始下载错误Excel
作者: Mr.Wu    时间: 2015-3-4 11:23
本帖最后由 Mr.Wu 于 2015-3-4 11:24 编辑
sanshi 发表于 2015-3-4 10:35
可以参考示例,点击确认按钮后,在进行下载操作:http://fineui.com/demo_pro/#/demo_pro/message/confirm_ ...

我删除Response.ClearContent();这句,还是一样,没有弹出提示框呢

希望老大在官网上写个demo,点击按钮后执行一些其它操作,最后才弹出提示框,而不是一点击按钮就弹出一个框来

作者: sanshi    时间: 2015-3-4 11:49
Mr.Wu 发表于 2015-3-4 11:23
我删除Response.ClearContent();这句,还是一样,没有弹出提示框呢

希望老大在官网上写个demo,点击按钮后 ...

你把 OnClientClick 改为 后台点击事件,然后通过 PageContext.RegisterStartupScript 注册是一样的道理
作者: sanshi    时间: 2015-3-4 12:17
写了个示例,参考:http://fineui.com/demo_pro/#/demo_pro/message/alert_download.aspx
作者: Mr.Wu    时间: 2015-3-4 13:53
sanshi 发表于 2015-3-4 12:17
写了个示例,参考:http://fineui.com/demo_pro/#/demo_pro/message/alert_download.aspx

非常感谢老大指点,已经可以弹出提示框并下载Excel。
如图:
[attach]7240[/attach]

美中不足的是:如果能在弹出提示框时,先关闭(或隐藏)母窗口就好了,不然下载完excel后还得手工来关闭导入时的窗口。
注:在PageContext.RegisterStartupScript里面加入ActiveWindows.GetHideReference;也没起作用。

作者: sanshi    时间: 2015-3-4 16:05
Mr.Wu 发表于 2015-3-4 13:53
非常感谢老大指点,已经可以弹出提示框并下载Excel。
如图:

参考:
http://fineui.com/demo_pro/message/alert_download2.aspx
http://fineui.com/demo_pro/commo ... lert_download2.aspx

作者: Mr.Wu    时间: 2015-3-5 11:51
本帖最后由 Mr.Wu 于 2015-3-5 14:53 编辑
sanshi 发表于 2015-3-4 16:05
参考:
http://fineui.com/demo_pro/message/alert_download2.aspx
http://fineui.com/demo_pro/common/s ...

老大,你的demo是不是特殊情况下才有用?
我试了个例子,在Form内点击按钮,发现没有你的效果出来,也就是说不会隐藏父窗口。
直接上图:
[attach]7251[/attach]

附上测试用的源代码。
[attach]7252[/attach]


作者: sanshi    时间: 2015-3-5 18:33
Mr.Wu 发表于 2015-3-5 11:51
老大,你的demo是不是特殊情况下才有用?
我试了个例子,在Form内点击按钮,发现没有你的效果出来,也就是 ...

写了个例子:http://fineui.com/demo_pro/#/dem ... oad_hideiframe.aspx
作者: Mr.Wu    时间: 2015-3-5 20:43
本帖最后由 Mr.Wu 于 2015-3-5 20:44 编辑
sanshi 发表于 2015-3-5 18:33
写了个例子:http://fineui.com/demo_pro/#/demo_pro/message/alert_download_hideiframe.aspx

试了一下,demo的确可以关闭父窗口再弹出提示内容。
但是,我想要下载的Excel文件是在alert_download_hideiframe_window.aspx这个页面里面生成的下载的,
无法在父页面那里生成。而demo在父页面里面接收提示框点击确定或取消:
  1. else
  2.             {
  3.                 string requestArgument = GetRequestEventArgument();

  4.                 if (requestArgument == "Confirm_OK")
  5.                 {
  6.                     // 非AJAX回发
  7.                     Response.ClearContent();
  8.                     Response.AddHeader("content-disposition", "attachment; filename=alert_download.txt");
  9.                     Response.ContentType = "text/plain";
  10.                     Response.ContentEncoding = System.Text.Encoding.UTF8;
  11.                     Response.Write("这是下载文件的内容!");
  12.                     Response.End();
  13.                 }
  14.                 if (requestArgument == "Confirm_Cancel")
  15.                 {
  16.                     // AJAX回发
  17.                     Notify("点击了取消按钮!");
  18.                 }
  19.             }
复制代码
所以离我的要求还是不相符。
可惜啊



作者: sanshi    时间: 2015-3-5 22:35
Mr.Wu 发表于 2015-3-5 20:43
试了一下,demo的确可以关闭父窗口再弹出提示内容。
但是,我想要下载的Excel文件是在alert_download_hide ...

这个就无解了,因为你的要求是先关闭 alert_download_hideiframe_window.aspx 这个页面,也就不可能在后面触发已关闭页面的任何事件了
作者: Mr.Wu    时间: 2015-3-6 11:21
sanshi 发表于 2015-3-5 22:35
这个就无解了,因为你的要求是先关闭 alert_download_hideiframe_window.aspx 这个页面,也就不可能在后 ...

好的,明白。
非常感谢老大这几天耐心的解答和帮助。
继续支持FinUI专业版




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4