jQuery MiniUI

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

form保存问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-7-9 10:00:47 |只看该作者 |倒序浏览
我form下有几个字段和一个grid  我怎么获取grid的josn数据
<legend>服务套餐</legend>
  <div class="fieldset-body">
            <table class="table_search" style="width:100%;" >
                <tr>
     <td style="width:11%;" align="right">套餐名称:</td>
     <td >
      <input id="mealname" name="mealname" class="mini-textbox" emptyText="请输入套餐名称"/>
     </td>
     <td style="width:11%;" align="right">套餐金额:</td>  
     <td >
      <input id="mealpay" name="mealpay" class="mini-textbox" emptyText="请输入套餐金额"/>
     </td>
     <td style="width:11%;" align="right">街道:</td>  
     <td >
      <input name="jd" id="jd"  textField="value" valueField="code" class="mini-combobox"  shownullitem="false"  multiselect="false" data="${applicationScope.dic['310115']}"/>
     </td>
    </tr>
                <tr>
     <td align="right">备注:</td>  
     <td colspan="3">
      <textarea id="remark" name="remark" class="mini-textarea" emptyText="请输入备注" style="width:400px;height:60px;"></textarea>
     </td>
    </tr>
            </table>
        </div>
        <div class="mini-toolbar" style="border-bottom: 0; padding: 0px;">
   <table>
    <tr>
     <td>
     <auth:authorization isAuthorization="true" authId="auth_button_add" authType="1">
                     <a name="addButton" id="addButton" class="mini-button" iconCls="icon-add" plain="false" style="display: display;">项目选择</a>
     </auth:authorization>
     <auth:authorization isAuthorization="true" authId="auth_button_add" authType="1">
                     <a name="addButton" id="addButton" class="mini-button" iconCls="icon-add" plain="false" style="display: display;">项目删除</a>
     </auth:authorization>
     </td>
    </tr>
   </table>
  </div>
  <div id="datagrid1" name="datagrid1" class="mini-datagrid" style="width: 100%" allowCellSelect="true"  allowCellEdit="true"  multiSelect="true">
   <div property="columns">
    <div type="checkcolumn"></div>
    <div type="indexcolumn" headerAlign="center"  align="center">序号</div>
    <div field="itemid" name="itemid" headerAlign="center"  align="center" allowSort="true"  width="30">id</div>
    <div field="sqfwxmflid" name="sqfwxmflid" headerAlign="center" align="center" allowSort="true" width="60" renderer="onGenderRendererfwxm">服务项目</div>
    <div field="fwnrmc" name="fwnrmc" headerAlign="center" align="center" allowSort="true" width="70">服务名称</div>
    <div field="fwdj" name="fwdj" headerAlign="center" align="center" allowSort="true" width="65">服务指导价</div>
    <div field="sflxid" name="sflxid" headerAlign="center" align="center" allowSort="true" width="70" renderer="onGenderRenderersflx">收费类型</div>
    <div field="ckfwsj" name="ckfwsj" headerAlign="center" align="center" allowSort="true" width="70">参考服务时间</div>
    <div field="fwfwid" name="fwfwid" headerAlign="center" align="center" allowSort="true" width="60" renderer="onGenderRendererfwfw">服务范围</div>
    <div field="fwcs" name="fwcs" headerAlign="center" align="center" allowSort="true" property="editor" width="55">服务次数
     <input property="editor" class="mini-textbox"  style="width:100%;"/>
    </div>
    <div field="fwdj" name="fwdj" headerAlign="center" align="center" allowSort="true" property="editor" width="55">服务单价
     <input property="editor" class="mini-textbox"  style="width:100%;"/>
    </div>
    <div field="fwje" name="fwje" headerAlign="center" align="center" allowSort="true" width="55">服务金额</div>
   </div>
  </div>
    </fieldset>


//新增   
  function addInfo() {
   var form = new mini.Form("saveForm");
   var o = form.getData();
   form.validate();
   if (form.isValid() == false) return;
      var validateFlag = checkValidate();
         if (validateFlag) return;
   var json = mini.encode(o);  
   $.ajax({
    url: "${pageContext.request.contextPath}/project/project/mealAction!saveInfo.action",
       data: { data: json },
       type: "post",
       success: function () {
        mini.confirm('保存成功,是否关闭','确认',function(action){
               if(action=='ok'){
                window.CloseOwnerWindow();
               }
            });   
       }
   });
  }

我用var o = form.getData(); 获取不到grid数据

Rank: 8Rank: 8

沙发
发表于 2013-7-9 10:08:41 |只看该作者
miniui的form.getData()只能获取miniui的表单控件的值
表格的值,你需要额外自己grid.getData();来获取

Rank: 2

板凳
发表于 2013-7-9 10:14:46 |只看该作者
factory 发表于 2013-7-9 10:08
miniui的form.getData()只能获取miniui的表单控件的值
表格的值,你需要额外自己grid.getData();来获取 ...

有没有类似的例子参考?

Rank: 8Rank: 8

地板
发表于 2013-7-9 14:05:15 |只看该作者
xuxiao478 发表于 2013-7-9 10:14
有没有类似的例子参考?

http://www.miniui.com/demo/#src=form/form.html

miniui的form只能批量操作 miniui的 表单控件
而非所有的miniui控件。也不支持对于html的原生输入框之类的进行操作

对于其他的比如,表格,树这类控件的获取值,你需要通过他们的API另外进行获取,比如表格getData()

Rank: 2

5#
发表于 2013-7-9 18:16:17 |只看该作者
factory 发表于 2013-7-9 14:05
http://www.miniui.com/demo/#src=form/form.html

miniui的form只能批量操作 miniui的 表单控件

我grid有编辑2列后自动计算单元格值  之后用grid.getData()取不到计算好的那列的值  是有什么问题?

Rank: 8Rank: 8

6#
发表于 2013-7-10 09:54:45 |只看该作者
xuxiao478 发表于 2013-7-9 18:16
我grid有编辑2列后自动计算单元格值  之后用grid.getData()取不到计算好的那列的值  是有什么问题? ...

demo的计算,其实是针对总计这一列只读的情况。表格没什么操作
总计的单元格值的赋值方式改为   
var total = number * price;
grid.updateRow(row,{total:total})

row是你当前编辑的这行

Rank: 2

7#
发表于 2013-7-10 10:32:53 |只看该作者
factory 发表于 2013-7-10 09:54
demo的计算,其实是针对总计这一列只读的情况。表格没什么操作
总计的单元格值的赋值方式改为   
var tot ...

function onDrawCell(e) {
            var record = e.record;
            if(record.fwdj == null){
                    if (e.field == "fwje") {
                            var fwzdj = record.fwzdj;
                    e.cellHtml = 0 ;
                }
            }
            if (e.field == "fwje") {
                var fwdj = record.fwdj;
                var fwcs = record.fwcs;
                if(record.fwdj != null){
                        //e.cellHtml = fwdj * fwcs;
                        var total = fwdj * fwcs;
                        grid.updateRow(record,{fwje:total});
                }
            }
        }

<div id="datagrid1" name="datagrid1" class="mini-datagrid" style="width: 100%" allowCellSelect="true"  allowCellEdit="true"  url="" multiSelect="true"
                ondrawcell="onDrawCell" oncellcommitedit="onCellCommitEdit" showSummaryRow="true" ondrawsummarycell="onDrawSummaryCell">
                        <div property="columns">
                                <div type="checkcolumn"></div>
                                <div type="indexcolumn" headerAlign="center"  align="center">序号</div>
                                <div field="itemid" name="itemid" headerAlign="center"  align="center"   width="30">id</div>
                                <div field="sqfwxmflid" name="sqfwxmflid" headerAlign="center" align="center"  width="60" renderer="onGenderRendererfwxm">服务项目</div>
                                <div field="fwnrmc" name="fwnrmc" headerAlign="center" align="center"  width="70">服务名称</div>
                                <div field="fwzdj" name="fwzdj" headerAlign="center" align="center"  width="65">服务指导价</div>
                                <div field="sflxid" name="sflxid" headerAlign="center" align="center"  width="70" renderer="onGenderRenderersflx">收费类型</div>
                                <div field="ckfwsj" name="ckfwsj" headerAlign="center" align="center"  width="70">参考服务时间</div>
                                <div field="fwfwid" name="fwfwid" headerAlign="center" align="center"  width="60" renderer="onGenderRendererfwfw">服务范围</div>
                                <div field="fwcs" name="fwcs" headerAlign="center" align="center"  property="editor" width="55">服务次数
                                        <input property="editor" class="mini-textbox"  style="width:100%;" vtype="int"/>
                                </div>
                                <div field="fwdj" name="fwdj" headerAlign="center" align="center"  property="editor" width="55">服务单价
                                        <input property="editor" class="mini-textbox"  style="width:100%;" vtype="float""/>
                                </div>
                                <div field="fwje" name="fwje" headerAlign="center" align="center"  width="55">服务金额</div>
                        </div>
                </div>


我这样做的时候fwje这列值不显示

Rank: 8Rank: 8

8#
发表于 2013-7-10 10:47:14 |只看该作者
xuxiao478 发表于 2013-7-10 10:32
function onDrawCell(e) {
            var record = e.record;
            if(record.fwdj == null){

ondrawcell里面是不能用updateRow的,这样会引起死循环,因为updateRow内部也是执行的更新单元格内容的操作
grid.updateRow(record,{fwje:total});应该是在oncellendedit事件里面用

你把grid.updateRow(record,{fwje:total}); 改成
e.cellHtml = total;
record.fwje = total;
这2句就行了

Archiver|普加软件

GMT+8, 2024-11-1 23:31 , Processed in 1.034909 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部