jQuery MiniUI

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

mini.open中打开struts页面如何保存数据,完成保存后并关闭当 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-4-25 23:09:09 |只看该作者 |倒序浏览
主页面为MenuBar(Load)示例中的布局,在菜单中打开新的tab,tab中有datagrid,选中某条记录后选择编辑按钮,(如示例【快速入门】-》【弹出面板】-》【弹出编辑面板】),即用mini.open打开的新窗口,在窗口中显示记录的详细信息此页面为(a.jsp),保存成功后跳转到(b.jsp)(因ssh项目页面操作的数据由action处理,action处理完后交由b.jsp处理相关的提示等操作),现在b.jsp的页面就是提示服务器端数据操作的处理结果,并关闭用mini.open打开的这个窗口,然后datagrid中数据重新加载。
【问题1:同步保存】现在的问题就是在b.jsp中如何将这个窗口关闭?
由于示例中用的是异步保存,但由于a.jsp中用的是struts标签展示的数据,在用
var o  = form.getData();
var json = mini.encode([o]);
获取的json串并不完整,也没发现规律。
【问题2:异步保存】在a.jsp中struts标签展示的数据,html元素使用什么的规则,可以获取规整的json串?

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-4-26 09:02:11 |只看该作者
1.如果你是表单比较,请将控件放入form标签内提交
2.关闭的话,请参考http://www.miniui.com/demo/#src=buttonedit/selectGrid.html弹出框中的关闭方法,在b.jsp内也写一样,主动调用下 CloseWindow()就好了

Rank: 2

板凳
发表于 2013-4-26 10:45:18 |只看该作者
本帖最后由 hyyy 于 2013-4-26 10:58 编辑

针对问题1:b.jsp页面代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
        <head>
                <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
                <link href="../miniui/demo/demo.css" rel="stylesheet" type="text/css" />
            <script src="../miniui/scripts/boot.js" type="text/javascript"></script>
        </head>
        <body>
       </body>
</html>
<script type="text/javascript">
    function onCancel(e) {
            CloseWindow("cancel");
    }
    function CloseWindow(action) {            

         if (window.CloseOwnerWindow){
         //alert("a");
                 return window.CloseOwnerWindow(action);
         }else{
         //alert("b");
                 window.close();
         }            
    }
mini.parse();


//window.close();
//CloseWindow("ok");
CloseWindow('cancel')
</script>

无法 关闭,alert测试 ,显示执行的是window.close()这个分支。

Rank: 2

地板
发表于 2013-4-26 11:07:43 |只看该作者
本帖最后由 hyyy 于 2013-4-26 11:14 编辑

针对问题2:
由于struts2在页面表单展示数据时html元素的name属性为XXX.XXX的形式,
a.jsp页面代码如下:(查看源代码后的文本)
  1. <html>
  2.   <head>
  3.     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  4.     <link href="../../miniui/demo/demo.css" rel="stylesheet" type="text/css" />
  5.     <script src="../../miniui/scripts/boot.js" type="text/javascript"></script>

  6.     <style type="text/css">
  7.     html, body
  8.     {
  9.         font-size:12px;
  10.         padding:0;
  11.         margin:0;
  12.         border:0;
  13.         height:100%;
  14.         overflow:hidden;
  15.     }
  16.    
  17. .txt{
  18. color:#005aa7;
  19. border-bottom:1px solid #005aa7; /* 下划线效果 */
  20. border-top:0px;
  21. border-left:0px;
  22. border-right:0px;
  23. background-color:transparent; /* 背景色透明 */
  24. }

  25.     </style>

  26.   </head>
  27.   
  28.   <body>
  29.     <form id="form1" name="form1" method="post" action="saveCaseCk.action">
  30.     <fieldset style="border:solid 1px #aaa;padding:3px;">
  31.                    <legend >基本信息</legend>
  32.                    <div style="padding:5px;text-align:center;"><!-- div中table居中 -->
  33.                            <table border="0" style="margin:0 auto;width:800;text-align:left">
  34.                                    <tr><td>委托时间</td><td><input name="reg.consignTime" class="txt" value="2012-11-02 08:03:03" style="width:125px"/></td>
  35.                                            <td>委托机构</td><td ><input type="text" name="reg.consignUnit" value="DD" id="reg_consignUnit" class="txt" style="width:40px;"/></td>
  36.                                            <td>报案号</td><td><input type="text" name="reg.caseId" value="4176120" id="reg_caseId" class="txt" style="width:140px;"/></td>
  37.                                            <td>流水号</td><td><input type="text" name="reg.regid" value="LS201211306071DD" readonly="readonly" id="reg_regid" class="txt" style="width:120px;"/></td></tr>
  38.                                    
  39.                                    <tr><td>事故经过</td><td colspan="7"><input type="text" name="reg.casing" value="被刮" id="reg_casing" class="txt" style="width:700px"/></td></tr>
  40.                                    <tr><td>备注(调度)</td><td colspan="7"><input type="text" name="reg.memo" value="[车牌:粤B0]最近一次在2012-11-02 08:01:24.0有出险记录;_" id="reg_memo" class="txt" style="width:700px"/></td></tr>
  41.                            </table>
  42.                    </div>
  43.            </fieldset>
  44.            
  45.            <div style="text-align:center;padding:10px;">               
  46.             <a class="mini-button" onclick="onsave" style="width:60px;margin-right:20px;">确定</a>      
  47.             <a class="mini-button" onclick="onCancel" style="width:60px;">取消</a>      
  48.         </div>      
  49.     </form>
  50.     <script type="text/javascript">
  51.    mini.parse();
  52.    var form = new mini.Form("form1");
  53.    
  54.         function onsave(e){
  55.                 var o = form.getData();  
  56.         var json = mini.encode([o]);
  57.         alert(json);
  58.         
  59.             $.ajax({
  60.                 url: "../cx/ckSvaeCase.action",
  61.                 data: { data: json },
  62.                 cache: false,
  63.                 success: function (text) {
  64.                     CloseWindow("save");
  65.                 },
  66.                 error: function (jqXHR, textStatus, errorThrown) {
  67.                     alert(jqXHR.responseText);
  68.                     CloseWindow();
  69.                 }
  70.             });
  71.                
  72.         }
  73.     function onCancel(e) {
  74.             CloseWindow("cancel");
  75.     }
  76.     function CloseWindow(action) {            
  77.             if (action == "close" && form.isChanged()) {
  78.                 if (confirm("数据被修改了,是否先保存?")) {
  79.                     return false;
  80.             }
  81.          }
  82.          if (window.CloseOwnerWindow){
  83.                  return window.CloseOwnerWindow(action);
  84.          }else{
  85.                  window.close();
  86.          }            
  87.     }
  88.    

  89.     </script>
  90.   </body>
  91. </html>
复制代码
执行onsave中显示json为[{}],即空json串,这是为何?是form写的有问题,还是取的方法有问题?

Rank: 2

5#
发表于 2013-4-26 12:29:44 |只看该作者
hyyy 发表于 2013-4-26 11:07
针对问题2:
由于struts2在页面表单展示数据时html元素的name属性为XXX.XXX的形式,
a.jsp页面代码如下:( ...

经测试,html元素的clss属性必须为mini-XXX才能被form.getData获取到值,name属性也不能含有点,否则被当成子对象了!

Rank: 8Rank: 8

6#
发表于 2013-4-26 13:39:09 |只看该作者
hyyy 发表于 2013-4-26 12:29
经测试,html元素的clss属性必须为mini-XXX才能被form.getData获取到值,name属性也不能含有点,否则被当 ...

miniui的API只对miniui控件生效

Rank: 2

7#
发表于 2013-4-26 14:27:51 |只看该作者
factory 发表于 2013-4-26 13:39
miniui的API只对miniui控件生效

三楼的问题能看出问题出在哪儿吗?

Archiver|普加软件

GMT+8, 2024-11-28 07:38 , Processed in 1.066662 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部