jQuery MiniUI

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

请教单元格切换编辑的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2017-7-10 09:28:42 |只看该作者 |倒序浏览
mini-combobox可以切换编辑模式,但是spinnerEditor却切换不了

  1. <div id="paramGrid" class="mini-datagrid" style="height: 40%;"  allowResize="true" showPager="false"
  2.        allowCellEdit="true" allowCellSelect="true"  allowColumnSort="false" oncellbeginedit="OnCellBeginEdit">
  3.     <div property="columns">
  4.       <div type="indexcolumn">序号</div>
  5.       <div field="name">指标参数</div>
  6.       <div field="parameterType" dataType="remote" remoteField="codeName"
  7.            formatUrl="${remotePath}/masterdata/dict/find-type-codes.json?typeCode=902&codeValues={value}" width="120">
  8.         参数类型
  9.       </div>
  10.       <div name="parameterValue" field="parameterValue" displayField="valueName" width="100" headerAlign="center">
  11.         参数指标值
  12.       </div>
  13.       <div field="measurementUnit">参数计量单位</div>
  14.     </div>
  15.   </div>

  16.   <div style="display:none;">
  17.     <input property="editor" class="mini-textbox" id="textboxEditor" />
  18.     <input property="editor" class="mini-spinner" id="spinnerEditor" />
  19.     <input property="editor" class="mini-combobox" id="comboboxEditor" style="width:150px;" valueField="codeValue" textField="codeName"/>
  20.   </div>
复制代码


  1. function OnCellBeginEdit(e) {
  2.     var grid = e.sender;
  3.     var record = e.record;
  4.     var field = e.field, value = e.value;
  5.     var editor = e.editor;
  6.     if (field == "parameterValue") {
  7.       var typeId = record.parameterType;
  8.       console.log(editor);
  9.       if (typeId == '902001'){
  10.         var ed = mini.get("spinnerEditor");
  11.         e.editor = ed;
  12.         e.column.editor = ed;
  13.       }
  14.       if (typeId == '902002') {
  15.         var ed = mini.get("comboboxEditor");
  16.         e.editor = ed;
  17.         e.column.editor = ed;
  18.         var url="${remotePath}/masterdata/dict/find-type.json?typeCode=" + record.parameterRange;
  19.         editor.setUrl(url);
  20.       } else {
  21.         e.cancel = true;
  22.       }
  23.     }
  24.   }
复制代码


Rank: 8Rank: 8

沙发
发表于 2017-7-10 11:28:53 |只看该作者
你这逻辑不对,当typeId="902002"的时候,你下面的判断进了else,也就是e.cancel=true了
你这里应该用if(){}else if(){}  else{}

Rank: 2

板凳
发表于 2017-7-10 15:24:07 |只看该作者
felt 发表于 2017-7-10 11:28
你这逻辑不对,当typeId="902002"的时候,你下面的判断进了else,也就是e.cancel=true了
你这里应该用if(){ ...

谢谢,是可以了,但出现了新的问题,var editor = e.editor; 第一下点击触发时候这个对象是null,点第二下就好了,这是怎么回事呢

Rank: 2

地板
发表于 2017-7-10 15:33:27 |只看该作者
我在console里面跟踪了一下,上下2个控件对点,第一次点击获取的居然是上一次的对象,要点第二次才是被点击的控件对象,我漏了什么吗?
  1. mini.ComboBox {data: Array(7), columns: Array(0), _events: Object, uid: "mini-44", _id: "mini-44"…}
  2. edit.do?&_winid=w7776&_t=130116:179 mini.ComboBox {data: Array(7), columns: Array(0), _events: Object, uid: "mini-44", _id: "mini-44"…}
  3. edit.do?&_winid=w7776&_t=130116:179 mini.Spinner {_events: Object, uid: "mini-43", _id: "mini-43", id: "spinnerEditor", el: span#spinnerEditor.mini-buttonedit.mini-spinner…}
复制代码

Rank: 8Rank: 8

5#
发表于 2017-7-10 16:07:24 |只看该作者
whicss 发表于 2017-7-10 15:33
我在console里面跟踪了一下,上下2个控件对点,第一次点击获取的居然是上一次的对象,要点第二次才是被点 ...

刚进来的时候还没切换编辑器,下面才是切换,有什么问题?

Rank: 2

6#
发表于 2017-7-10 16:34:15 |只看该作者
editor为NULL,在 editor.setUrl(url);的时候会报错,我看DEMO里面没有对这个对象进行判断是否为NULL

Rank: 2

7#
发表于 2017-7-10 16:36:58 |只看该作者
那我判断一下算了

Archiver|普加软件

GMT+8, 2024-11-15 20:29 , Processed in 1.025794 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部