jQuery MiniUI

标题: 关于datagrid的updateRow问题 [打印本页]

作者: 2858653617    时间: 2021-9-24 11:11:03     标题: 关于datagrid的updateRow问题

       <div field="placeName" headerAlign="center" vtype="required" width="150">作业场所
                <input property="editor" class="mini-textarea"  style="width:100%;"emptyText="--请选择--"/>
            /div>
使用updateRow来更新行数据后,这个placeName字段为空值。


作者: felt    时间: 2021-9-24 11:28:21

你有更新这个placeName字段的数据吗?
作者: 2858653617    时间: 2021-9-24 11:30:43

felt 发表于 2021-9-24 11:28
你有更新这个placeName字段的数据吗?

更新了,我测试是有值的。
grid.updateRow(row, {buildingCode : diseaseplace.buildingCode , examPeriod : diseaseplace.examPeriod,           
                                            harmFactor : diseaseplace.harmFactor , placeId : diseaseplace.placeId,
                                            placeName : diseaseplace.placeName , healthcareOutlay : diseaseplace.healthcareOutlay});
                                        }
作者: felt    时间: 2021-9-24 11:34:17

本帖最后由 felt 于 2021-9-24 11:36 编辑
2858653617 发表于 2021-9-24 11:30
更新了,我测试是有值的。
grid.updateRow(row, {buildingCode : diseaseplace.buildingCode , examPerio ...

如果是这代码,肯定有值。确实有问题的话,做例子重现问题,发上来


作者: 2858653617    时间: 2021-9-24 11:37:07

felt 发表于 2021-9-24 11:34
如果是这代码,肯定有值。确实有问题的话,做例子重现问题,发上来

但是页面上显示为空的,并且我使用grid.getData取出来,这个字段还是空的
作者: 2858653617    时间: 2021-9-24 13:23:39

felt 发表于 2021-9-24 11:34
如果是这代码,肯定有值。确实有问题的话,做例子重现问题,发上来

我是从另一个页面传回的值
      <div field="placeName" headerAlign="center" vtype="required" width="150">作业场所
        <input property="editor" class="nui-textarea"  style="width:100%;" emptyText="--请选择--" onclick="inputClick"/>
                    </div>
<div field="placeId" headerAlign="center" vtype="required" visible="false"  width="150"></div>
placeId就是有值的,placeName为空
作者: felt    时间: 2021-9-24 13:29:20

本帖最后由 felt 于 2021-9-24 13:31 编辑
2858653617 发表于 2021-9-24 13:23
我是从另一个页面传回的值
      作业场所
        

做例子重现问题,发例子。既然你传过来的也只有id,我们凭什么根据id来给你产生name???

作者: 2858653617    时间: 2021-9-24 13:38:46

felt 发表于 2021-9-24 13:29
做例子重现问题,发例子。既然你传过来的也只有id,我们凭什么根据id来给你产生name???
...

我肯定id,name都传过来了
作者: felt    时间: 2021-9-24 13:40:02

2858653617 发表于 2021-9-24 13:38
我肯定id,name都传过来了

做例子,重现问题。
作者: 2858653617    时间: 2021-9-24 14:26:15

本帖最后由 2858653617 于 2021-9-24 14:28 编辑
felt 发表于 2021-9-24 13:40
做例子,重现问题。
  1.                 <div id="datagrid1"  class="mini-datagrid" style="width:100%;height:calc(100% - 70px);"
  2.                                 allowCellEdit="true" allowCellSelect="true" showPager="false" multiSelect="true">
  3.                     <div property="columns">
  4.                         <div type="checkcolumn" width="35"></div>
  5.                         <div field="placeName" headerAlign="center" vtype="required" width="150">作业场所
  6.                                                 <input property="editor" class="mini-textarea"  style="width:100%;" emptyText="--请选择--" onclick="click2()"/>
  7.                         </div>
  8.                         <div field="placeId" headerAlign="center" vtype="required"  width="150">场所id</div>
  9.                     </div>
  10.                 </div>

  11. <script type="text/javascript">
  12.         mini.parse();
  13.         var grid = mini.get("datagrid1");
  14.     function click2(){
  15.     var row = grid.getSelected();
  16.     grid.updateRow(row,{placeName : "123",placeId : "234"});
  17.     }
  18.     </script>
复制代码

作者: 2858653617    时间: 2021-9-24 14:27:01

2858653617 发表于 2021-9-24 14:26

我用这种方法也只能更新placeId的数据,placeName还是为空的
作者: felt    时间: 2021-9-24 14:31:50

本帖最后由 felt 于 2021-9-24 14:35 编辑
2858653617 发表于 2021-9-24 14:26

因为你在编辑的就是placeName这列,你updateRow之后还有个结束编辑的过程,结束编辑的时候你这个编辑器里面是空的,把你刚才updateRow的数据覆盖掉了。var control = mini.get(this.event.currentTarget);
control.setValue("123");
grid.updateRow(row, { placeId: "234" });


作者: 2858653617    时间: 2021-9-24 14:32:32

felt 发表于 2021-9-24 14:31
因为你在编辑的就是placeName这列,你updateRow之后还有个结束编辑的过程,结束编辑的时候你这个编辑器里 ...

请问我该怎么写呢?
作者: felt    时间: 2021-9-24 14:42:30

2858653617 发表于 2021-9-24 14:32
请问我该怎么写呢?

看楼上
作者: 2858653617    时间: 2021-9-24 14:51:44

felt 发表于 2021-9-24 14:42
看楼上

完蛋,直接报错了
Uncaught TypeError: Cannot read properties of undefined (reading 'currentTarget')
这个this.event是点击事件吗?
作者: 2858653617    时间: 2021-9-24 15:28:22

felt 发表于 2021-9-24 14:42
看楼上

感谢大佬,我直接在行编辑结束后进行updateRow操作就好了
作者: felt    时间: 2021-9-24 16:31:31

2858653617 发表于 2021-9-24 15:28
感谢大佬,我直接在行编辑结束后进行updateRow操作就好了

嗯,当前列的话,要么更新到编辑器里面,要么结束编辑之后,再更新。




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