jQuery MiniUI

标题: datagrid 每次编辑提交后会重新渲染此行的元素 [打印本页]

作者: ffffohno    时间: 2016-5-24 17:02:24     标题: datagrid 每次编辑提交后会重新渲染此行的元素

本帖最后由 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、此值必须绑定行项目


作者: dforce    时间: 2016-5-24 17:28:13

更新肯定会重绘整行
你要保存一个数据的话,可以直接放到行对象上,不需要绘制放到html里
作者: ffffohno    时间: 2016-5-24 18:00:12

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

编辑了一个值也会触发更新整行,而且非可编制单元格也重新绘制。
这里面有办法阻止他更新整行吗?
作者: ffffohno    时间: 2016-5-24 18:05:15

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

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


作者: ffffohno    时间: 2016-5-24 18:24:44

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

或者drawCell阶段,有没有方法判断是来自编辑更新,并获取重新绘制前的元素html并直接返回?
作者: felt    时间: 2016-5-25 09:25:16

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

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




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