jQuery MiniUI

 找回密码
 立即注册
查看: 29892|回复: 12
打印 上一主题 下一主题

表单提交后,列表页面刷新问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-3-20 17:35:34 |只看该作者 |倒序浏览
本帖最后由 ralf5753 于 2014-3-20 17:45 编辑

我的新增窗口有上传附件的功能,表单数据 和附件需要同时提交,所以没用Json格式提交,是submit提交form表单的,js如下:
<form id="form1" name="form1" method="post" action="../../user/addUser.do" enctype="multipart/form-data" >
         <input name="name" class="mini-textbox" required="true"/>
        <input name="Fdata" type="file"/>
        <div style="text-align:center;padding:60px;">               
           <a class="mini-button" onclick="onOk"  style="width:60px;margin-right:20px;">确定</a>      
            <a class="mini-button" onclick="onCancel" style="width:60px;">取消</a>
</div
</form>


function SaveData() {
                     form.validate();                     
            $("form:first").submit();
            CloseWindow();   
}
function onOk(e) {
            SaveData();
}

表单提交,窗口关闭,数据保存后,列表页面的数据没有自动刷新,请问这块应该怎么写?













Rank: 8Rank: 8

沙发
发表于 2014-3-20 18:04:48 |只看该作者
http://www.miniui.com/demo/#src=datagrid/datagrid.html
参考示例代码mini.open中的ondestroy中的reload();

Rank: 2

板凳
发表于 2014-3-21 10:22:30 |只看该作者
lost 发表于 2014-3-20 18:04
http://www.miniui.com/demo/#src=datagrid/datagrid.html
参考示例代码mini.open中的ondestroy中的reload( ...

我userlist.jsp列表页就是用这个啊
function add2() {         
            mini.open({
                url: bootPATH + "../jsp/system/adduser.jsp",
                title: "新增员工", width: 600, height: 400,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    var data = { action: "new"};
                    iframe.contentWindow.SetData(data);
                },
                ondestroy: function (action) {
                    grid.reload();
                }
            });
        }

adduser.jsp页面
通过
function SaveData() {
                     form.validate();     
if (form.isValid() == false) return;               
            $("form:first").submit();
            CloseWindow();   
}
这个提交后,userlist.jsp无法自动刷新

Rank: 8Rank: 8

地板
发表于 2014-3-21 11:53:55 |只看该作者
ralf5753 发表于 2014-3-21 10:22
我userlist.jsp列表页就是用这个啊
function add2() {         
            mini.open({

grid.reload();是刷新表格啊

页面当然不会给你刷了

window.location.reload()试试

Rank: 2

5#
发表于 2014-3-21 13:20:14 |只看该作者
本帖最后由 ralf5753 于 2014-3-21 13:22 编辑
factory 发表于 2014-3-21 11:53
grid.reload();是刷新表格啊

页面当然不会给你刷了

我列表页面就用的DataGrid表格,我就是想刷新DataGrid表格的数据,
是不是,要使用grid.reload()刷新,
子页面必须使用
$.ajax({
                url: "",
                type: 'post',
                data: { data: json },
                cache: false,
                success: function (text) {
                    CloseWindow("save");
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR.responseText);
                    CloseWindow();
                }
            });
这种方式提交并关闭弹出窗?

Rank: 8Rank: 8

6#
发表于 2014-3-21 13:36:14 |只看该作者
ralf5753 发表于 2014-3-21 13:20
我列表页面就用的DataGrid表格,我就是想刷新DataGrid表格的数据,
是不是,要使用grid.reload()刷新,
子 ...

当mini.open打开的面板被关闭的时候,自然会跑到mini.open的ondestory里面,在里面让表格reload()好了

我们demo就是这样处理的
http://www.miniui.com/demo/#src=datagrid/datagrid.html

Rank: 2

7#
发表于 2014-3-21 14:55:48 |只看该作者
factory 发表于 2014-3-21 13:36
当mini.open打开的面板被关闭的时候,自然会跑到mini.open的ondestory里面,在里面让表格reload()好了

我 ...

我现在使用的页面就是你发的连接中的demo,我现在遇到的问题是
我的新增窗口需要上传多个附件,我必须把表单数据和上传的附件同时submit,所以没法用ajax提交json字符串,
DataGrid 数据表格中的js我没有改动,还是官方demo中的
function add() {           
            mini.open({
                url: bootPATH + "../jsp/system/adduser.jsp",
                title: "新增员工", width: 600, height: 360,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    var data = { action: "new"};
                    iframe.contentWindow.SetData(data);
                },
                ondestroy: function (action) {
                    grid.reload();
                }
            });
        }
我是把这个新增窗口中原来ajax提交的JS修改成如下,
mini.parse();
var form = new mini.Form("form1");
function SaveData() {                    
                     form.validate();
                     if (form.isValid() == false) return;                    
                     var form1 = document.getElementById("form1");  
                     form1.submit();       
                window.CloseOwnerWindow();
        }
结果新增窗口关闭后DataGrid的数据没有自动刷新,
我在调试时遇到如下现象:
      我在mini.open中的ondestroy里加了alert调试,新增窗口关闭后可以执行alert,说明新增窗口关闭后肯定是进到ondestroy里了,手动关闭页面上弹出的alert后,会执行下一行的grid.reload()进行DataGrid的刷新。
      但是不加alert时,新增窗口关闭后却不会刷新。
请大神帮我分析下。

Rank: 8Rank: 8

8#
发表于 2014-3-21 17:15:37 |只看该作者
ralf5753 发表于 2014-3-21 14:55
我现在使用的页面就是你发的连接中的demo,我现在遇到的问题是
我的新增窗口需要上传多个附件,我必须把 ...

本地测试在试用包里的页面修改用你的方法提交,关闭的时候还是会触发ondestroy里的代码
你还是不行电话请把页面打包上来

Rank: 2

9#
发表于 2014-3-21 17:30:15 |只看该作者
本帖最后由 ralf5753 于 2014-3-21 17:35 编辑
felt 发表于 2014-3-21 17:15
本地测试在试用包里的页面修改用你的方法提交,关闭的时候还是会触发ondestroy里的代码
你还是不行电话请 ...


主要是userlist.jsp这个页面中 add2()这个方法 和adduser2.jsp页面中SaveData()方法
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

10#
发表于 2014-3-21 17:42:26 |只看该作者
ralf5753 发表于 2014-3-21 17:30
主要是userlist.jsp这个页面中 add2()这个方法 和adduser2.jsp页面中SaveData()方法
...

你更新下MiniUI,我把demo里改成你的代码一样可以刷新的

Archiver|普加软件

GMT+8, 2024-11-25 18:52 , Processed in 1.049664 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部