jQuery MiniUI

标题: DataGrid单元格联动,第二个单元格有数据,选择后显示空白 [打印本页]

作者: 水电费    时间: 2016-7-19 09:22:25     标题: DataGrid单元格联动,第二个单元格有数据,选择后显示空白

本帖最后由 水电费 于 2016-7-19 09:34 编辑

参照
http://www.miniui.com/demo/#src=datagrid/celllinkedit.html 做的

代码如下:
  1. <div
复制代码
  1. function OnCellCommitEdit(e) {
  2.             var grid1 = e.sender;
  3.             var record = e.record;
  4.             var field = e.field, value = e.value;
  5.             if (field == "sampleClass1") {   
  6.                 grid1.updateRow(record, { sampleClass2: "", dictName2: "" });
  7.             }
  8.         }
  9.         function OnCellBeginEdit(e) {        
  10.             var grid1 = e.sender;
  11.             var record = e.record;
  12.             var field = e.field, value = e.value;
  13.             var editor = e.editor;
  14.             if (field == "sampleClass2") {
  15.                 var id = record.sampleClass1;
  16.                 if (id) {
  17.                    var url = "/data/AjaxService.do?method=GetSamples2&pid=" + id+"&dicttypeid=DIC_SAMPLE_CLASS2";
  18.                     editor.setUrl(url);
  19.                 } else {
  20.                     e.cancel = true;
  21.                 }

  22.             }
  23.         }   
复制代码
选择前效果图[attach]7666[/attach]
选择后效果图[attach]7667[/attach]



作者: felt    时间: 2016-7-19 09:33:27

你的编辑器是怎么放进去的
作者: 水电费    时间: 2016-7-19 09:35:15

felt 发表于 2016-7-19 09:33
你的编辑器是怎么放进去的
  1. <div
  2.                         id="datagrid1"
  3.                         dataField="dicitems"
  4.                         class="mini-datagrid"
  5.                         style="width:100%;height:100%;"
  6.                         pageSize="15"
  7.                         showPager="false" showPageInfo="true"
  8.                         multiSelect="true"
  9.                         allowAlternating="true"
  10.                         oncellcommitedit="OnCellCommitEdit"
  11.                                         oncellbeginedit="OnCellBeginEdit"
  12.                         sortMode="client"  allowCellEdit="true"
  13.                         allowSortColumn="true" allowCellSelect="true" allowCellEdit="true" allowCellSelect="true" >

  14.                     <div property="columns">
  15.                         <div type="checkcolumn">
  16.                         </div>
  17.                         <div field="orgId" headerAlign="center" allowSort="true" visible="false">
  18.                             检测部门
  19.                         </div>
  20.                         <div field="groupId"  displayField="groupName" headerAlign="center" allowSort="true">
  21.                             专业组
  22.                         </div>
  23.                         <div field="sampleClass1" displayField="dictName1"  headerAlign="center" allowSort="true" renderer="sampleCalss1Render">
  24.                             样品大类                                <input property="editor"  class="mini-combobox" style="width:100%;" url="/data/AjaxService.do?method=GetSamples1"/>       
  25.                         </div>
  26.                         <div field="sampleClass2"  displayField="dictName2" headerAlign="center" allowSort="true" >
  27.                            样品小类 <input property="editor"  name="sampleClass2" class="mini-combobox" style="width:100%;" textField="dictName" valueField="dictId" dataField="data"/>
  28.                         </div>
  29.                     </div>
  30.                 </div>
复制代码

作者: felt    时间: 2016-7-19 09:49:04

水电费 发表于 2016-7-19 09:35

从你提供的代码上看没什么问题
oncellcommitedit事件里做了什么处理?
作者: 水电费    时间: 2016-7-19 09:53:53

felt 发表于 2016-7-19 09:49
从你提供的代码上看没什么问题
oncellcommitedit事件里做了什么处理?

把行的第二个表格的sampleClass2和dictName2清空。

function OnCellCommitEdit(e) {
            var grid1 = e.sender;
            var record = e.record;
            var field = e.field, value = e.value;
            if (field == "sampleClass1") {   
                grid1.updateRow(record, { sampleClass2: "", dictName2: "" });
            }
        }
作者: felt    时间: 2016-7-19 10:06:05

水电费 发表于 2016-7-19 09:53
把行的第二个表格的sampleClass2和dictName2清空。

function OnCellCommitEdit(e) {

应该是你第二列加载的数据有问题
请检查确认你加载的数据有dictId字段
作者: 水电费    时间: 2016-7-19 10:09:46

felt 发表于 2016-7-19 10:06
应该是你第二列加载的数据有问题
请检查确认你加载的数据有dictId字段

太感谢您了,确实是看错了。valuelFiled写错了。valuelFiled不是dictId,而是dictID.




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2