最近做一个项目,excel导入数据,有一个同事使用模态对话框,上传并返回提示,如果正确上传文件,给提示,关闭模态对话框,刷新父窗口的列表。
1.打开一个模态对话框:
function openWindow(innerWidth,innerHeight)
{
window.showModalDialog("${pageContext.request.contextPath}/excelupLoad.js",window,
'dialogWidth:' + innerWidth +'px;dialogHeight:'+ innerHeight+'px;');
}
2.一般情况下给了提示后就可以用下面这个来关闭窗口,刷新父窗口:
//刷新打开窗口的上一个窗口
this.opener.location.reload();
//关闭窗口
window.close();
可就是不能刷新窗口,上下顺序换了还是不行;
3. 最后到网上搜了搜:
关闭模态对话框,刷新父窗口
。
showModalDialog does not have an opener (since it is to be used as a glorified alert/confirm/prompt so
模态对话框,没有opener,不能用window.opener.location.reload();或window.parent.location.reload();
要通过返回值来判断关闭后刷新
。
function openWindow(url, xsize, ysize)
{
res = showModalDialog(url, " ", "dialogWidth: "+xsize+ ";dialogHeight: "+ysize+ ";status=no;help:no;center:yes ")
if (res== 'ok ') window.location.reload(1)
}
and in the dialog use
<td onclick= "window.returnValue= 'ok ';window.close(); "> Close </td>
4. 上传文件由于要给一个上传是否成功的提示,因为我们用的是struts2框架,只能通过跳转页面来给提示,由于在模态对话框中,如果再提交页面的话,用户体验就太不好了,因此要选择异步提交,那怎样异步上传文件呢?
从网上找到了一个异步上传文件的插件:ajaxfileupload.js
$.ajaxFileUpload(
{
url:'${pageContext.request.contextPath}/${param.url}.action', //需要链接到服务器地址
secureuri:false,
fileElementId:'upLoadFile', //文件选择框的id属性
dataType: 'json', //服务器返回的格式,可以是json
success: function (data, status) //相当于java中try语句块的用法
{
if(data.success==true)
{
alert('上传成功!');
window.returnValue='ok';//返回值
window.close(); //关闭窗口
}
else if(data.success ==false){
alert('上传失败!');
}
},
error: function(){
//alert("error");
},
complete:function(XMLHttpRequest, textStatus){
//alert("complete");
}
}
5. form
<form action="${pageContext.request.contextPath}/uploadFile.action"
method="post" enctype="multipart/form-data" target="_self">
<input type="file" name="upLoadFile" id="upLoadFile" />
<input type="button" value="上传" onclick="ajaxFileUpload()" />
</form>
分享到:
相关推荐
因系统需求,要在关闭子模态对话框后刷新父模态对话框,做的一个小测试。
VS2010创建模态对话框非模态对话框的方法,给子窗口传值,非模态对话框给父窗口传值,非模态获取父窗口的指针,打开非模态对话框不重复
分页后弹出模态窗口刷新父窗口 分页后弹出模态窗口刷新父窗口 分页后弹出模态窗口刷新父窗口
利用模态对话框实现父窗体、子窗体间传值。 服务器showModalDialog 打开子窗体,子窗体使用客户端脚本和服务器端方法向父窗体传值
非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别,非模态对话框需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了...
在Windows环境中,对话框是一种常用的输入输出手段。对话框有两种类型,非...本例将从主框架窗口创建一个简单的非模态对话框,在该对话框关闭之前,用户可以在主框架窗口中的其他地方工作,比如选择“打开”文件等。
VC中模态对话框和非模态对话框的编程
点击运行弹出一个对话框,点击DIALOG1按钮弹出一个模态对话框,在该对话框的编辑框输入文本点击确定该对话框消失且输入的文本被显示到主对话框MainDialog中,点击DAILOG2按钮弹出一个非模态对话框,操作现象和模态...
MFC中有两种类型的对话框:...模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。
模态对话框与非模态对话框程序示例 Java源程序
非模态的对话框是独立的,就是说和主程序可以同时交换数据,而模态的对话框则只能和自己交换。换句话说,模态对话框很霸道,你开了它就无法在同一个应用程序中的其他地方干活了,比如那个经常用的openfile dialog。...
MFC创建模态对话框和非模态对话框实例小程序,学习如何在程序开发中使用模态对话框和非模态对话框
MFC中经常会用到弹出模态或非模态对话框,模态对话框与非模态对话框容易混淆
万能模态对话框 万能模态对话框 万能模态对话框 万能模态对话框 uDialog unity 模态对话框,通用
不同与Popup,这是自定义样式的模态对话框,是模态的!整个对话框作为一个独立的组件使用.........
在Windows环境中,对话框是一种常用的输入输出手段。对话框有两种类型,非...本代码将从主框架窗口创建一个简单的非模态对话框,在该对话框关闭之前,用户可以在主框架窗口中的其他地方工作,比如选择“打开”文件等。
VS2010/MFC模态对话框和非模态对话框的创建和使用
基于vs2005,在ObjectARX中使用MFC:模态,非模态对话框
VisualC 实效编程 9 非模态对话框VisualC 实效编程 9 非模态对话框VisualC 实效编程 9 非模态对话框VisualC 实效编程 9 非模态对话框VisualC 实效编程 9 非模态对话框VisualC 实效编程 9 非模态对话框VisualC 实效...