ExtJS AJAX 另存为对话框

2024-03-22

我发出 ExtJS AJAX 请求,并且希望向用户显示标准浏览器“另存为”对话框。要下载的文件可以是 pdf、jpg 或 png 文件。

目前 AJAX 请求已成功提交,但由于它是异步的,因此不会出现对话框。

我可以简单地不使用 AJAX,但是在发出请求之前我需要使用很多 javascript 代码,而且我真的不觉得将其重写为 java。

我的代码如下所示:

var params = getPrintInfo(form);

Ext.Ajax.request({
    url : 'print',
    method : 'POST',
    params : {
      customData: params.customData,
      dpi: params.dpi,
      format: params.format,
      grid: params.grid,
      title: params.title
    },
autoAbort : false,
    success : function(result, request) {
      if(result.responseText==''){
        //display error message
      }else{
        // display save as dialog box
      }
    }
});

在我的控制器中,我将标题设置为:

httpResponse.setHeader("Content-disposition", "attachment; filename=" +  this.config.getString("print.file.name")+outputType);

EDIT:

实际上已经找到了这个解决方案:

Ext.DomHelper.append(document.body, {
    tag: 'iframe',
    frameBorder: 0,
    width: 0,
    height: 0,
    css: 'display:none;visibility:hidden;height:1px;',
    src: 'http://blabla.com/f75e927b-2041-473e-86ba-cbbc60dbc285.pdf'
});

现在的问题是:如何将 pdf 名称更改为更漂亮,例如 map.pdf,而不是使用那长而丑陋的字母数字字符串?


您可以使用窗口.打开具有另存为对话框, 例如

window.open('print?parameters...','_blank');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ExtJS AJAX 另存为对话框 的相关文章

  • 如何显示标准 Windows 数据源 (ODBC) 对话框

    有没有简单的方法可以从 winforms 应用程序显示标准 Windows 数据源对话框 我想向用户展示它并选择一个系统 dsn 或创建一个新的 dsn 并返回一个数据源名称 我没有在 net 中找到任何对现有包装器的引用 所以我想我只能使
  • android自定义对话框与按钮onClick事件

    我有这样的 CustomDialog java public class CustomDialog Dialog dl public void ShowDialog Context context String message dl new
  • EXTJS 网格中的小数精度

    我有一个网格 允许用户通过编辑行来输入数字 我希望该数字支持 4 位小数 但它只支持 2 位 我想出了如何显示 4 位小数 但它不记录任何超过 2 位小数的内容 因此 如果用户输入 1000 1111 结果字段将在网格中显示 1000 11
  • extjs 3.3:浮动面板

    我正在尝试在其他预先创建的面板上创建一个浮动面板 我尝试遵循简单的代码 但失败了 var testPanel new Ext Panel id testP width 50 height 100 floating true title Te
  • 无法使用 JSON 结果将数据呈现到网格列中

    我有一家网格商店 里面有类似的东西 var gridStore Ext create Ext data Store proxy type ajax actionMethods read POST url getECIAgentWrapper
  • 如何在对话框和活动之间传递值?

    我要求用户通过对话框输入 package com android cancertrials import android app Dialog import android content Context import android os
  • Extjs 4(下面有3.4的代码)下载从post请求返回的文件

    我看到了与此略有相关的问题 但没有一个能回答我的问题 我设置了 Ext Ajax request 如下 var paramsStringVar param1 1 param2 two param3 something param4 etc
  • 如何在 ExtJS 4 中隐藏选项卡

    如何在 ExtJS 4 中隐藏选项卡 Ext getCmp mytab hide 不起作用 谁能帮我 阅读此处的文档 http docs sencha com ext js 4 0 api Ext tab Panel http docs s
  • EXTJS 中选项卡面板的单击侦听器

    我在 extjs 中使用选项卡面板 我想在单击选项卡时显示警报 但我不知道如何 这就是我现在所做的 xtype tabpanel activeTab 0 region center items xtype panel title All i
  • 当对话框显示时,活动中的外部编辑文本不显示android中的软键盘

    现在我遇到了一个严重的问题 我正在进行一项活动 并且我有一项编辑文本 我想在该活动的右上角显示一个自定义对话框 现在我的问题是 当对话框显示时 当我单击编辑文本时 软键盘不显示 请帮助我想在对话框显示时显示键盘 我已经搜索了很多 i找到了对
  • 如何在 Javafx 中对齐对话框窗格的“确定”按钮?

    我想对齐 即位置中心 对话框窗格的 确定 按钮 我已经尝试过下面的代码 但它不起作用 Dialog dialog new Dialog DialogPane dialogPane dialog getDialogPane dialogPan
  • jQuery UI 对话框始终位于右上角

    我试图将对话框放置在锚标记的右侧 但没有成功 我检查了解决方案jQuery UI 对话框定位 https stackoverflow com questions 744554 jquery ui dialog positioning似乎都不
  • 使对话框/活动始终位于顶部

    如何将对话框 活动保持在其他活动之上 无论用户是否在活动之间切换 它都应该始终处于活动状态 您可以使用相对布局作为父级 通过使用相对布局 您可以重叠其他布局 所以 你必须使用相对布局的两个子布局 在一个孩子中 您将弹出窗口 而在另一种布局中
  • Extjs - 如何在网格列中显示组合框

    我有一个网格面板 包括日期和组合列jsfiddle http jsfiddle net YjYqX 但我不想点击显示我的组合 我想在不点击的情况下显示我的组合 而不是像隐藏在单元格内一样 日期列也一样 我认为改变clicksToEdit 0
  • Extjs中始终显示Slider的提示文本

    在 Extjs 4 1 1a 中 如何保持tip text滑块始终可见 目前 tip text每当用户拖动滑块栏时就可见 我搜索了docs http docs sencha com ext js 4 0 api Ext slider Sin
  • AJAX Webmethod 调用在 MVC3 上返回 404

    我一直在使用 EXTJS 4 并通过 AJAX 调用 aspx 页面代码隐藏上的 Webmethod 来加载我的商店 此方法适用于我的所有项目 直到我尝试将 EXTJS 4 工作移植到 MVC3 项目中 我的电话现在返回 404 关键部分是
  • 我无法在 Android 中使用 setMultiChoiceItems 在对话框中显示列表

    我有一个方法返回 CharSequence 并且不为空 用日志检查 但不显示在对话框中 我必须初始化 boolean 数组吗 我没有看到任何错误 所以也许我错过了一些东西 我的代码是 dbManager open final CharSeq
  • Sencha-touch :保存登录名/密码(保存会话,多任务)

    我有一个 Java Web 应用程序 其中移动部分是用 Sencha touch 开发的 当我启动 sencha touch 应用程序时 她询问我的登录名 密码 因为该应用程序的访问受到限制 但是我想保存用户的登录名 密码 sencha t
  • 打开对话框时,Material-UI 会向 body 标记添加填充

    我在我的 React 应用程序中使用 Material UI 最近 我将我的软件包更新到了 最新版本 现在 当我在应用程序中打开一个对话框时 padding right 17px 将被添加到 body 标签中 我还检查了 Material
  • 在显示对话框时,我收到“在 onSaveInstanceState 之后无法执行此操作”

    一些用户报告说 如果他们使用通知栏中的快速操作 他们就会被强制关闭 我在通知中显示了呼叫者的快速操作 测试对话框 班级 在测试对话框类中按下 暂停 按钮后 我将显示暂停对话框 private View OnClickListener btn

随机推荐