最新在使用Bootstrap+table+treegrid组件进行代码编写时,遇到一个奇怪的问题,就是接口返回数据正常,JS脚本运行也都正常,没有报出任何错误,但就是不显示树形。
经过自己一番折腾之后发现,可能是我们的程序接口返回的数据的问题。
究其根本原因:treegrid中根结点pid的值不能是0,(很多程序员朋友在设计层级结构时喜欢使pid=0,包括我在内)
找到原因之后,我们就可以针对bootstrap-table-treegrid.js进行修改了(因为这种方法算是一劳永逸)
具体修改内容如下:
onCheckRoot: function (row, data) { var that = this; //以下这个if块就是新增的内容,bootstrap-table-treegrid.js的原文件中是没有的。 if(row[that.options.parentIdField]==0) { return true; } return !row[that.options.parentIdField]; }
可以使用Sublime/Editplus进行编辑,查找到
onCheckRoot:function(row,data){
var that=this;
if(row[that.options.parentIdField]==0)
{
return true;
}
return !row[that.options.parentIdField];
}
注:上述代码红色部分即为修改后的内容,增加到js文件中就可以了。大家在使用时可以借鉴一下。
欢迎大家相互学习指导