jqGrid的treegrid的bug修复
2016-04-27 16:58
281 查看
刚开始使用jqGrid,就碰到了难题。想把列表做成树形的treegrid,在网上查了下jqgrid也正好有这个方法,但是使用的过程中发现个问题,就是传入的数据顺序如果不是一棵树一棵树的排列好的,就会出现节点排序错乱的问题,比如这个树的节点跑到另外一棵树的后面。在官网上面找了好多资料,也没有人说过这个问题,可能没什么人用,也有可能是我使用错误了吧,如果是我使用错误了,官网例子也会出现这个问题。我也不管是我的操作错还是真的bug了,我自己在源码中修改了下。
先说明下我使用的是jqGrid 4.6的版本,后面有修改后的插件
在jqGrid.src 1577行中增加了
这里需要注意的是,因为我在插件中增加了新的方法,所以在jqGrid方法中的colmodel方法和colName方法中必须要加上id和parentId。
插件下载链接:http://download.csdn.net/detail/qq805911956/9515640
先说明下我使用的是jqGrid 4.6的版本,后面有修改后的插件
在jqGrid.src 1577行中增加了
<span style="white-space:pre"> </span>/* 增加了给树排序的代码 */ var tempRowData = []; var count = -1; for (var i = 0; i < rowData.length; i++) { //把数据分成树的节点单位 if (rowData[i].match('<tr')) { count++; tempRowData[count] = ""; } tempRowData[count] += rowData[i]; } var data = ''; for (var i = 0; i < tempRowData.length; i++) { if (ts.p.data[i].pid == null) { var dataArry = new Array(); dataArry[0] = tempRowData[i]; sortLeaf(dataArry, tempRowData, ts.p.data, ts.p.data[i].id); //依次排列出树的节点 data += dataArry.join(''); } } // $("#" + $.jgrid.jqID(ts.p.id) + " tbody:first").append(rowData.join(''));原来代码 $("#" + $.jgrid.jqID(ts.p.id) + " tbody:first").append(data);在12655行中增加了
/* 依次查找出树的节点,dataArray是返回数据,tempRowData是树的节点数据,ts包含了树的据节点信息,parentId是父节点 */ function sortLeaf(dataArray, tempRowData, node, parentId) { for (var i = 0; i < node.length; i++) { if (node[i].pid == parentId) { dataArray[dataArray.length] = tempRowData[i]; sortLeaf(dataArray, tempRowData, node, node[i].id); } } }
这里需要注意的是,因为我在插件中增加了新的方法,所以在jqGrid方法中的colmodel方法和colName方法中必须要加上id和parentId。
插件下载链接:http://download.csdn.net/detail/qq805911956/9515640
相关文章推荐
- SourceProvider.getJniDirectories
- 从源码安装Mysql/Percona 5.5
- Trac 中文语言安装
- 软件 bug 的生命周期
- Firefox2中输入框丢失光标bug的解决方法
- for命令的一些bug分析
- 浅析Ruby的源代码布局及其编程风格
- 修正IE下使用CSS属性overflow的bug
- 解决IE6 3像素Bug的css写法
- asp.net 抓取网页源码三种实现方法
- 跟我学习JScript的Bug与内存管理
- Extjs4 Treegrid 使用心得分享(经验篇)
- JS注释所产生的bug 即使注释也会执行
- IE本地存储userdata的一个bug说明
- JS小游戏之仙剑翻牌源码详解
- JS小游戏之宇宙战机源码详解
- IE在DOM操作有表单控件时的bug
- jqgrid 简单学习笔记
- jQuery源码分析之jQuery中的循环技巧详解
- 本人自用的global.js库源码分享