jQuery MiniUI

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

datagrid 每次编辑提交后会重新渲染此行的元素 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-5-24 17:02:24 |只看该作者 |倒序浏览
本帖最后由 ffffohno 于 2016-5-24 17:08 编辑

我有一个状态值以hidden的形式 ,写在grid的一列中 ,实现方式就是drawCell:
grid.on("drawcell", function (e) {
                var column = e.column;
                if (column.name == "attach") {
                  e.cellHtml =  '<input type="hidden"  value ="xxx"/>';
                }
        });

然后我有需要动态设计该列内容。
然而就算设置了,同一行的其他数据一旦被编辑,hidden列又重新调用drawcell,回到原来的状态值。
有没有办法解决这个问题?




注:
1、我的表格的实现形式大致如:http://www.miniui.com/demo/#src=datagrid/celledit.html,就是加了一列需要维护的状态值
2、此值必须绑定行项目

Rank: 8Rank: 8

沙发
发表于 2016-5-24 17:28:13 |只看该作者
更新肯定会重绘整行
你要保存一个数据的话,可以直接放到行对象上,不需要绘制放到html里

Rank: 2

板凳
发表于 2016-5-24 18:00:12 |只看该作者
dforce 发表于 2016-5-24 17:28
更新肯定会重绘整行
你要保存一个数据的话,可以直接放到行对象上,不需要绘制放到html里 ...

编辑了一个值也会触发更新整行,而且非可编制单元格也重新绘制。
这里面有办法阻止他更新整行吗?

Rank: 2

地板
发表于 2016-5-24 18:05:15 |只看该作者
本帖最后由 ffffohno 于 2016-5-25 09:07 编辑
dforce 发表于 2016-5-24 17:28
更新肯定会重绘整行
你要保存一个数据的话,可以直接放到行对象上,不需要绘制放到html里 ...

其实我这里面不止保存一个数据这么简单,而是一个有状态的自定义html组件,需要绘制放到html里,只是为了简化问题说成一个值。
因为编辑而被还原,尝试了多种办法也没有解决方案
使用cellcommitedit 回调方法,设置.cancel = true;可以阻止更新,但是编辑也无效了

Rank: 2

5#
发表于 2016-5-24 18:24:44 |只看该作者
dforce 发表于 2016-5-24 17:28
更新肯定会重绘整行
你要保存一个数据的话,可以直接放到行对象上,不需要绘制放到html里 ...

或者drawCell阶段,有没有方法判断是来自编辑更新,并获取重新绘制前的元素html并直接返回?

Rank: 8Rank: 8

6#
发表于 2016-5-25 09:25:16 |只看该作者
ffffohno 发表于 2016-5-24 18:24
或者drawCell阶段,有没有方法判断是来自编辑更新,并获取重新绘制前的元素html并直接返回? ...

无法判断,只能把数据放到行对象上,绘制的时候根据行对象里面的数据来绘制,这样更新之后也会重新按照这个数据来绘制

Archiver|普加软件

GMT+8, 2025-7-6 20:33 , Processed in 1.047215 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部