jQuery MiniUI

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

datagrid在编辑行数据触发onvaluechanged方法中使用getData问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2018-7-10 14:30:40 |只看该作者 |倒序浏览
在编辑行数据,当datagrid的单元格数据发生变化触发onvaluechanged事件时,我在onvaluechanged中使用
1、var record = grid.getSelected();2、var editor=e.sender
  var row=grid.getEditorOwnerRow(editor)都无法获得当前编辑行中可编辑的单元格的值,都是null(如果是第一次编辑)。正在编辑的单元格可以通过editor.getValue()获得,但是无法获取其余可编辑单元格的值。
而我使用grid.getData()或者grid.findRows(),也是同样无法获取当前行的可编辑单元格当前值,获取的反而是当前行valuechanged之前的值。不知道是为什么。是因为在onvaluechanged里面的缘故吗?
附上两个可编辑单元格的简单代码:
<div  field="pd" displayField="pdName" width="60" headerAlign="center" >评定
                        <input property="editor" class="mini-combobox" style="width:100%;"
                               valueField="id"  url="XXXXXX"
                              
                        />
                    </div>
                    <div  field="jl"  displayField="jlName" width="60" headerAlign="center" type="comboboxcolumn">结论
                        <input property="editor" class="mini-combobox" style="width:100%;"
                               valueField="id"  url="XXXXX"  onvaluechanged="setJcjg(grid1,e.value)"
                        />
                    </div>
function setJcjg(gridId,jl){
  var editor=e.sender;
  var row=gridId.getEditorOwnerRow(editor);  //row.pd 和row.jl都为valuechanged之前的值}

Rank: 8Rank: 8

沙发
发表于 2018-7-10 14:36:22 |只看该作者
请不要乱加参数影响我们的默认参数
onvaluechanged="setJcjg"
function setJcjg(e){
     var editor=e.sender;
      var row=grid.getEditorOwnerRow(editor)
}
当这个valuechanged事件发生时,数据还只是在这个combobox内改变,并没有更新到表格上,所有这时候获取的行数据里面,这列的数据还是编辑前的

Rank: 3Rank: 3

板凳
发表于 2018-7-10 14:43:58 |只看该作者
本帖最后由 牛牛牛 于 2018-7-10 14:45 编辑
dforce 发表于 2018-7-10 14:36
请不要乱加参数影响我们的默认参数
onvaluechanged="setJcjg"
function setJcjg(e){

不好意思,我写错了,我有传默认参数过去的。所以我在valuechanged方法里面获取当前行的值是不可能的吗?那有没有别的方法,在单元格值发生变化时获取当前行的数据的方法呢?

Rank: 8Rank: 8

地板
发表于 2018-7-10 14:52:11 |只看该作者
牛牛牛 发表于 2018-7-10 14:43
不好意思,我写错了,我有传默认参数过去的。所以我在valuechanged方法里面获取当前行的值是不可能的吗? ...

可以获取啊,2楼我贴了代码的。

Rank: 3Rank: 3

5#
发表于 2018-7-10 15:08:49 |只看该作者
本帖最后由 牛牛牛 于 2018-7-10 15:10 编辑
dforce 发表于 2018-7-10 14:52
可以获取啊,2楼我贴了代码的。




就是获取不了我才有疑问,请看图片,第一次row.pd为空,第二次row.pd为前一次的值。但是editor.getValue()是正确的值
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

6#
发表于 2018-7-10 15:10:58 |只看该作者
牛牛牛 发表于 2018-7-10 15:08
就是获取不了我才有疑问,请看图片,第一次row.pd为空,第二次row.pd为前一次的值。但是editor.getVa ...

请看一下我2楼的解释,从编辑器到更新到表格数据内,有一定的时间开销,你这valuechanged触发的时候还没有更新数据。

Rank: 3Rank: 3

7#
发表于 2018-7-10 15:21:29 |只看该作者
dforce 发表于 2018-7-10 15:10
请看一下我2楼的解释,从编辑器到更新到表格数据内,有一定的时间开销,你这valuechanged触发的时候还没 ...

解释我看了,所以我在3楼问是不是不能在valuechanged的时候获取当前正在编辑的行的值而不是之前的行的值,你说让我使用2楼的代码可以获取,但是我用了2楼的代码不行。我最主要的问题是在valuechanged方法内,使用getData(),获取的是之前行的数据。你说valuechanged方法有一定的时间开销,那我理解的就是在valuechanged方法内是获取不到当前行的数据的,是不是?所以我还是问如何获取当前编辑行的值?不知道我说的是不是清楚

Rank: 8Rank: 8

8#
发表于 2018-7-10 15:39:04 |只看该作者
牛牛牛 发表于 2018-7-10 15:21
解释我看了,所以我在3楼问是不是不能在valuechanged的时候获取当前正在编辑的行的值而不是之前的行的值 ...

不能,都没有更新到行数据里,怎么根据行数据来获取

Rank: 3Rank: 3

9#
发表于 2018-7-10 15:42:39 |只看该作者
dforce 发表于 2018-7-10 15:39
不能,都没有更新到行数据里,怎么根据行数据来获取

好的,谢谢

Archiver|普加软件

GMT+8, 2025-7-9 00:13 , Processed in 1.037727 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部