jQuery MiniUI

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

grid的drawcell问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-9-5 13:40:23 |只看该作者 |倒序浏览
本帖最后由 xiaoNiuNew 于 2013-9-5 14:38 编辑

grid 监听drawcell事件。例如,给单元格的值*1000。但这个单元格是可编辑的,当编辑的时候,显示的是*1000之前的值,并且,此时若输入一个数字,编辑框失去焦点后,会自动*1000。


能想到的就是监听编辑框的一些事件,例如监听值改变事件
    function cell3ValueChange(e){
       this.setValue(e.value/1000);
    }

这样做把输入与drawcell的效果抵消。当例如用户输入100,画面会先闪过0.1,再变成100。显示效果不太好
1.显示正常

2.编辑时变成了数据源的值

3用户输入1121

4变成了1121000


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2013-9-5 14:01:46 |只看该作者
2个事件触发的时间不一样,但是你为什么要抵消掉。

Rank: 2

板凳
发表于 2013-9-5 14:10:39 |只看该作者
felt 发表于 2013-9-5 14:01
2个事件触发的时间不一样,但是你为什么要抵消掉。

不抵消的话,用户输入的值会被drawcell里的函数*1000。

我的需求是数据源的某列单位是(万元)。但显示的时候变成(元)。

Rank: 8Rank: 8

地板
发表于 2013-9-5 14:23:21 |只看该作者
xiaoNiuNew 发表于 2013-9-5 14:10
不抵消的话,用户输入的值会被drawcell里的函数*1000。

我的需求是数据源的某列单位是(万元)。但显示 ...

e.cellHtml = value * 1000
不要修改e.value,只修改单元格文本

Rank: 2

5#
发表于 2013-9-5 14:39:18 |只看该作者
factory 发表于 2013-9-5 14:23
e.cellHtml = value * 1000
不要修改e.value,只修改单元格文本

drawcell里就是这么做的,就是编辑有问题。
我上传了图片您看看。

Rank: 8Rank: 8

6#
发表于 2013-9-5 14:49:21 |只看该作者
xiaoNiuNew 发表于 2013-9-5 14:39
drawcell里就是这么做的,就是编辑有问题。
我上传了图片您看看。

你现在是想在输入的时候值是数据源的值,单元格显示的时候*100吗?
ondrawcell修改e.cellHtml 的话,就是这样的。文本值修改了,但是数据值不会改的,除非再修改下e.value

Archiver|普加软件

GMT+8, 2025-7-10 12:38 , Processed in 1.043102 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部