jQuery MiniUI

标题: treegrid在drawcell的时候如何找到编辑框editor? [打印本页]

作者: talent_w    时间: 2014-6-17 10:55:35     标题: treegrid在drawcell的时候如何找到编辑框editor?

e.editor 貌似不支持啊。。。有没有什么办法能找到?
作者: felt    时间: 2014-6-17 11:14:19

编辑器在编辑模式才创建,drawcell时是没有的
作者: talent_w    时间: 2014-6-17 11:32:28

我现在碰到这样个情况:有个treegrid,某一列的值是他第一层子节点相加,子节点的值同样也是子节点相加,如此循环。我在drawcell 的时候找到每行的子节点相加,然后e.cellHtml=相加的值,但是这样就有个问题,由于是cellhtml的值。。所以只计算了最底层的。。。之后上一层节点由于本身没值,所以就无法计算了。。。希望能看懂我的意思。
作者: talent_w    时间: 2014-6-17 11:34:12

有没有什么其他好的办法来处理这种问题?
作者: felt    时间: 2014-6-17 11:34:58

talent_w 发表于 2014-6-17 11:32
我现在碰到这样个情况:有个treegrid,某一列的值是他第一层子节点相加,子节点的值同样也是子节点相加,如 ...

e.cellHtml=值的时候,把列的那个字段也更新一下试试
e.record.xx=值
作者: talent_w    时间: 2014-6-17 11:41:26

e.record.xx=值 很正确。。。问题解决了。。太感谢了!!
作者: talent_w    时间: 2014-6-17 12:55:35

本帖最后由 talent_w 于 2014-6-17 12:56 编辑

还发现个问题e.record.xx=值这样修改以后 grid.getChanges ()  或者getData() 获取不到变化后的值。。。还是原本的,必须点击编辑里面值自动变化了以后保存才有效果
作者: felt    时间: 2014-6-17 13:28:36

talent_w 发表于 2014-6-17 12:55
还发现个问题e.record.xx=值这样修改以后 grid.getChanges ()  或者getData() 获取不到变化后的值。。。还 ...

grid.getData()不是有吗?
[attach]4707[/attach][attach]4706[/attach]
作者: talent_w    时间: 2014-6-17 13:44:00

getData()我知道,但是最后取出来json上面的值是最初获取列表时json的值,现在是由于drawcell 的原因改了,所以getData()没取到
作者: felt    时间: 2014-6-17 14:10:15

talent_w 发表于 2014-6-17 13:44
getData()我知道,但是最后取出来json上面的值是最初获取列表时json的值,现在是由于drawcell 的原因改了, ...

我这个截图就是drawcell后获取的getData()
你怎么获取不到了

作者: talent_w    时间: 2014-6-17 14:54:27

不是获取不到。。。是获取不到不是通过editor变更的数据,通过drawcell变更的数据getData()取不到
作者: felt    时间: 2014-6-17 15:00:05

talent_w 发表于 2014-6-17 14:54
不是获取不到。。。是获取不到不是通过editor变更的数据,通过drawcell变更的数据getData()取不到 ...

[attach]4710[/attach]
如图,我编辑修改了选中单元格的值,后面getData()弹出来的不是也变了


作者: talent_w    时间: 2014-6-17 15:25:04

本帖最后由 talent_w 于 2014-6-17 15:29 编辑

这个问题我后来想了下。。我的目的是计算下个节点的和,然后方法写在drawcell里,当CellEndEdit我就保存了,此时就更新了一格数据,然后treegrid重新加载,这个时候drawcell由于那一个数据改变使他上一节点的和改变了,但是由于我值判断了一层(getChildNodes),所以造成了drawcell看上去只会更新上一层数据,而不是整个treegrid。有没有什么好的办法使我更新一个数据让整个treegrid都能联动?
我感觉是不是要用getAllChildNodes ?然后循环用getChildNodes来处理?

作者: felt    时间: 2014-6-17 16:44:46

talent_w 发表于 2014-6-17 15:25
这个问题我后来想了下。。我的目的是计算下个节点的和,然后方法写在drawcell里,当CellEndEdit我就保存了 ...

drawcell是在单元格更新后会计算
你用了cellEndEdit不是在计算前就保存了数据?
作者: talent_w    时间: 2014-6-18 09:04:26

我知道问题出在哪了。。。这个算子节点和用miniui有点费劲,drawcell是一行一行的往下。。。处理过的就不会在处理。。这样就导致只能算下一层字节点有变化的节点,再上一层由于drawcell已经处理过了。。所以就不会再处理了。有没有什么办法能一个子节点变了。。。联动所有父节点。。?
作者: factory    时间: 2014-6-18 09:27:30

talent_w 发表于 2014-6-18 09:04
我知道问题出在哪了。。。这个算子节点和用miniui有点费劲,drawcell是一行一行的往下。。。处理过的就不会 ...

可以试试监听oncellendedit事件
在事件里面tree.getAncestors(node),获取当前node节点的所有父节点,然后遍历下
tree.getAllChildNodes(parentNode) 获取当前父节点的所有子节点,计算出来总和,再updateRow(parentNode,{field:value}) 更新父节点的汇总那个单元格值

大致的做法就是这样
作者: talent_w    时间: 2014-6-18 10:09:30

功能实现了。。。反过来遍历, 用getChildNodes就可以了。。太感谢了




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