一、引入相应的js

<link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
<script type="text/javascript" src="../../scripts/jquery.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxdatatable.js"></script>
<script type="text/javascript" src="../../jqwidgets/jqxtreegrid.js"></script>

二、页面

<div id="treeTable">
</div>

三、js代码

$(document).ready(function () {
var source =
{
dataType: "json",
//设置字段名称,name和后台实体对应
dataFields: [
{ name: "id", type: "string" },
{ name: "pid", type: "string" },
{ name: "name", type: "string" },
{ name: "value", type: "string" },
{ name: "title", type: "string" },
{ name: "type", type: "string" },
{ name: "children", type: "array" },
],
hierarchy:
{
root: "children" //设置孩子节点?
},
url : "getFullTree.shtml?time="+getTimestamp, //数据请求链接
id: "id" //设置主键
}; var dataAdapter = new $.jqx.dataAdapter(source);//加载source function loadTable(){
var averageW=parseInt($("#treeTable").width()*0.2);//定义表格树每列的宽度
$("#treeTable").jqxTreeGrid(
//设置一些基本的属性
{
source: dataAdapter,
altRows: true,
autoRowHeight: false,
editable: true,
/*checkboxes: true,
hierarchicalCheckboxes: true,*/
editSettings: { saveOnPageChange: true, saveOnBlur: true, saveOnSelectionChange: false, cancelOnEsc: true, saveOnEnter: true, editOnDoubleClick: false, editOnF2: false },
    //表头(每列显示的名称,与上文中source中的dataField对应)
columns:[
{
text:"Name",
dataField:'name',
align: "center",
width:averageW
},
{
text:"Value",
dataField:"value",
align:"center",
cellsAlign: 'center',
width:averageW,
},
{
text:"Title",
dataField:"title",
align:"center",
cellsAlign: 'center',
width:averageW,
},
{
text:"Type",
dataField:"type",
align:"center",
cellsAlign: 'center',
width:averageW,
},
{
text:"操作",
dataField:'toolBar',
cellsAlign: 'center',
align: "center",
width:averageW,
cellsRenderer:function(row,clomun,value){
var toolBtn= '<div class="custom-btn-group">'+
'<button class="custom-btn-small add-btn" title="添加" data-toggle="modal" data-target=".add-modal">'+
'<i class="fa fa-plus" aria-hidden="true"></i>'+
'</button>'+
'<button class="custom-btn-small edit-btn" title="编辑" data-toggle="modal" data-target=".edit-modal">'+
'<i class="fa fa-pencil" aria-hidden="true"></i>'+
'</button>'+
'<button class="custom-btn-small del-btn" title="删除">'+
'<i class="fa fa-trash" aria-hidden="true"></i>'+
'</button>'+
'</div>';
return toolBtn; }
}
]
});
}
loadTable();
$(window).resize(function(){
loadTable();
})
});

四、主要介绍对表格树的CRUD。

  4.1、首先要获取所选中的行(很重要)

 //rowSelect  当行被点击时执行的事件
$("#treeTable").on('rowSelect', function (event) {
var args = event.args;
//获取选中行的数据
rowData = args.row;
//获取选中行的主键(id)
rowKey = args.key;
});

  4.2、增加子节点(官方api没说清楚,坑了我好久)

$("#treeTable").jqxTreeGrid('addRow', message.id, message, 'last', rowKey);//参数解释:'addRow' ——>表明这是一个增加行的方法。
                                            //message.id ——>要增加数据的主键id(如果这个参数设置为null,则新加数据的主键id就会调用jqxTreeGrid默认的方法把父id(选中行的id)加1后作为增加数据的主键id!
                                            //message ——> 要增加的数据。
                                            //'last' ——> 设置新增的数据在表格中显示的位置(last:将新增的数据放在所选节点下的最后一行。first:将新增的数据放在所选节点下的第一行)
                                            //rowKey ——> 所选节点的id(父节点的id,主要是判断新增的数据该放在哪个节点(行)下)

  4.3、修改节点

$("#treeTable").jqxTreeGrid('updateRow', rowKey, message);//参数解释:updateRow ——> 表明这是一个更新方法
                                       //rowKey ——> 所选行的主键id
                                       //message ——> 更新的数据

  4.4、删除节点

$("#treeTable").jqxTreeGrid('deleteRow',rowKey);//参数解释:
                            //deleteRow ——> 表明这是一个删除方法
                            //rowKey —— > 要删除节点(行)的主键id

  4.5、效果图

五、官方API链接

https://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxtreegrid/jquery-treegrid-getting-started.htm?search=

最新文章

  1. Linux上进行单片机开发
  2. 四步完成NodeJS安装,配置和测试
  3. Swift - LineChart绘制折线图
  4. Python之路,day2-Python基础1
  5. lumen 登陆 注册 demo
  6. oracle 表复制
  7. HDU-2857-Mirror and Light(计算几何)
  8. IAT重定向之修复
  9. 「luogu3258」[JLOI2014] 松鼠的新家
  10. sqlserver 存储过程返回游标的处理
  11. MySql 在cmd下的学习笔记 —— 有关储存过程的操作(procedure)
  12. 表单中Readonly和Disabled的区别:readonly在get和post可传值到后端,disabled不可
  13. 2.scrapy安装
  14. gradle项目与maven项目互转
  15. 在mysql中RIGHT JOIN与group by一起使用引起的一个大bug
  16. hdu 6315 Naive Operations (2018 Multi-University Training Contest 2 1007)
  17. 使用 Php Artisan Tinker 来调试你的 Laravel
  18. 使用epublib解析epub文件(章节内容、书籍菜单)
  19. Android-bindService本地服务-初步-Service返回对象
  20. wx.request 获取不到post传递的值

热门文章

  1. JAVA课程设计 学生成绩管理
  2. 控制结构(2) 卫语句(guard clause)
  3. eclipse里index.jsp头部报错的原因和解决方法
  4. Django实现内容缓存
  5. PHP数组运算符
  6. Grunt针对静态文件的压缩,版本控制打包方案
  7. 巧用Mono.Cecil反射加载类型和方法信息
  8. Hbase对时,时差范围的确定
  9. hdu4704 Sum 2013 Multi-University Training Contest 10 数论题
  10. CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器