jQuery MiniUI

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

关于cellendedit事件的问题。 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-11-6 05:17:51 |只看该作者 |倒序浏览
在事件中修改e.record中某列的数据,每次都是第二次修改才生效。请问是什么原因呢?
我测试了,保证每次事件都是正确触发了的。

Rank: 3Rank: 3

沙发
发表于 2012-11-6 05:39:40 |只看该作者
本帖最后由 lixiaoliang7 于 2012-11-6 05:40 编辑

我又测试了一下,似乎是第一次record.xx修改后的值,第二次修改时才会显示至页面中

Rank: 3Rank: 3

板凳
发表于 2012-11-6 06:00:38 |只看该作者
拿这个DEMO即可还原一下情况
http://miniui.com/demo/#src=datagrid/cellvalidation.html

修改:
datagird添加oncellendedit="cellendedit"
然后添加js方法
function cellendedit(e) {
            var now = new Date();
            alert(now);
            e.record.loginname = now;
        }

编辑一列即可发现,值并没有马上显示至loginname列中
当进行第二次编辑时,发现上次的值显示到了loginname列中(可以拿alert出来的值进行了一下对比,看秒就好了)

Rank: 3Rank: 3

地板
发表于 2012-11-6 07:53:18 |只看该作者
但我发现最终提交后的json串,是正常的。

Rank: 8Rank: 8

5#
发表于 2012-11-6 09:45:26 |只看该作者
lixiaoliang7 发表于 2012-11-6 07:53
但我发现最终提交后的json串,是正常的。

我昨天理解错误了,以为你只是修改这行的数据,然后提交.
你这样应该是这样做:
  1. function cellendedit(e) {
  2.             var now = new Date();
  3.             grid.updateRow(e.row,{loginname:now});
  4.         }
复制代码
应该用gird.updateRow(row,rowData)这个方法

Archiver|普加软件

GMT+8, 2024-7-4 00:34 , Processed in 1.073137 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部