TreeGrid

TreeGrid是树形表格,为了展示成树形,比数据表格主要增加了以下两点;

1、表格属性中设置 idField、treeField 两个属性;idField 表示用于区分上下级的主键,treeField 表示展开、关闭下级的字段;

2、获取的数据中新增属性:_parentId、state;_parentId 表示当前行的父节点 idField 值,state表示展开、关闭 的默认状态

_parentId

  • 如果是顶级节点,则必须为null值,或者将该属性delete掉,否则数据不能正常显示;

state

  • ‘open‘ :默认该节点是打开的 ,如果加载本节点的时候没有加载子节点并且为 ‘open‘,则以后也不会加载子节点;
  • ‘closed‘:默认该节点是关闭的,展开该节点时,如果下级数据随本级数据一起加载,数据就展示下级,没有下级数据则自动请求服务器加载数据。

数据格式如下:

{"total":null,"rows":[{"OID":"522300000000","SHORT_NAME":"黔西南州","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520300000000","SHORT_NAME":"遵义市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520100000000","SHORT_NAME":"贵阳市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520200000000","SHORT_NAME":"六盘水市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520500000000","SHORT_NAME":"毕节市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"522700000000","SHORT_NAME":"黔南州","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520600000000","SHORT_NAME":"铜仁市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520400000000","SHORT_NAME":"安顺市","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"522600000000","SHORT_NAME":"黔东南州","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520700000000","SHORT_NAME":"贵安新区","AREA_LEVEL":1,"_parentId":"520000000000","state":"closed"},{"OID":"520000000000","SHORT_NAME":"贵州省","AREA_LEVEL":-1,"_parentId":null,"state":"closed"}]}

初始化表格函数定义如下:

//查询当前登录人及下级、被当前人员审核 的考核信息
        $(‘#table_khcx‘).treegrid({
            title:‘‘,                 //标题    考核信息查询
            iconCls:‘icon-tip‘,             //图标
            fit:true,
            method:‘post‘,              //数据方式
            iconCls:‘icon-tip‘,             //图标
            singleSelect: true,             //单选
            fitColumns: true,                 //自动调整各列,用了这个属性,下面各列的宽度值就只是一个比例。
            striped: true,                     //行斑马线
            nowrap:false,                    //true 禁止换行
            pagination:true,
            pageSize:20,
            rownumbers:true,                 //显示行号
            loadMsg:‘正在加载,请稍候……‘,         //加载数据的时候显示提示消息
            idField:‘CODE‘,                     //主键字段
            queryParams:{},                 //查询参数集合
            scrollbarSize:18,
            idField:‘OID‘,
            treeField:‘SHORT_NAME‘,
            url:"${ctx}/treegrid/getdata", //数据来源        jiujiayi/pkhxx
            columns:[
                     [
                        {field:‘OID‘,title:‘ID‘,halign:‘center‘,width:120,sortable:false,hidden:true },
                        {field:‘SHORT_NAME‘,title:‘区域名‘,halign:‘center‘,width:120,sortable:false},
                        {field:‘AREA_LEVEL‘,title:‘级次‘,halign:‘center‘,width:120,sortable:false }
                    ]
            ],
            //清除datagrid之前的选择状态
            onLoadSuccess:function(){
                $(‘#table_khcx‘).treegrid(‘clearSelections‘);
                if($(‘#table_khcx‘).treegrid(‘getRows‘).length>0){
                    $(‘#table_khcx‘).treegrid(‘selectRow‘,0);//默认选中第一行
                };
                $(this).treegrid(‘resize‘);

            },
            onLoadError:function(){
                $.messager.alert("提示",‘获取数据失败!‘,‘info‘);
            }
        })

sql如下:

sql="select OID,SHORT_NAME,AREA_LEVEL, case PARENT_ID when ‘-1‘ then null else PARENT_ID end \"_parentId\",‘closed‘ \"state\" "

+ "from Cfg_Basic_Area  where rownum<20 and AREA_LEVEL in (‘-1‘,‘1‘)";

时间: 2024-12-29 11:40:29

TreeGrid的相关文章

扩展BootstrapTable的treegrid功能

扩展BootstrapTable的treegrid功能 阅读目录 一.效果预览 二.代码示例 三.组件需要完善的地方 四.总结 正文 前言:上篇  JS组件系列--自己动手封装bootstrap-treegrid组件 博主自己动手封装了下treegrid的功能,但毕竟那个组件只是一个单独针对树形表格做的,适用性还比较有限.关注博主的园友应该知道,博主的博客里面写了很多bootstrapTable的扩展,今天打算在直接在bootstrapTable的基础上扩展一个treegrid的功能,很多长期关

[Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列

为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid.treegrid增加表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中 */ var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* grid本身 */ var

knockoutjs + easyui.treegrid 可编辑的自定义绑定插件

http://blog.csdn.net/maddemon/article/details/16846183 目前仅支持URL的CRUD.不需要的话可以却掉相关代码,把treegrid的data直接赋值给viewModel,然后用ko提交整个data 1.支持双击编辑 2.单击Cell,自动保存编辑. 3.4个功能按钮. 插件源码: ko.bindingHandlers.etreegrid = { editing: false, editIndex: 0, init: function (ele

ExtJS中TreeGrid的用法

如果您是第一次使用ExtJS的TreeGrid的话,我相信总会有一些小麻烦的,下面就来说一说ExtJS中TreeGrid的使用. 本人使用的ExtJS版本为4.0.7,并且使用了MVC模式,如果不了解ExtJS的MVC模式的话我个觉得还是有必要去学学的, 学完后你肯定会喜欢上的. 其实在ExtJS中并没有TreeGrid这么一个类,这个说法是从EasyUI中借用过来的,ExtJS中的TreeGrid功能已经合在了Ext.tree.Panel中. TreeGrid显示出来大概是这个样子: 下面是这

第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件

jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于 DataGrid(数据表格)组件. 一.加载方式 建立一个 JSON 文件 [ { "id": 1, "name": "系统管理", "date": "2015-05-10", &quo

TreeGrid( 树形表格)

本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于DataGrid(数据表格)组件 一. 加载方式//建立一个 JSON 文件[{"id" : 1,"name" : "系统管理","date" : "2015-05-10","children" : [{"id" : 2,"name" : "主机信

easyui——treegrid级联选中之微改进,解决解除选中的问题。

代码大部分参考网络资源,但针对网络资源中取消选中的各种问题做了改进. if ($.fn.treegrid) { $.extend($.fn.treegrid.methods, { /** * 级联选择 * @param {Object} target * @param {Object} param * param包括两个参数: * id:勾选的节点ID * deepCascade:是否深度级联 * @return {TypeName} */ cascadeCheck: function (tar

jQuery EasyUI, datagrid, treegrid formatter 参数比较 row index

如题: datagrid中,见官方文档: formatter function The cell formatter function, take three parameter:value: the field value.rowData: the row record data.rowIndex: the row index. undefined 例子: {field:'id',title:'id',width:100,align:'center',formatter:function(va

easyui plugin —— etreegrid:CRUD Treegrid

昨天写了一个ko+easyui的同样的实现,感觉写的太乱,用起来十分麻烦,于是今天照着edatagrid,写了一个etreegrid,这样再用ko绑定就方便多了. 使用很简单,$(tableId).etreegrid({idField:''parentIdField:'',treeField:'',saveUrl:'',deleteUrl:''}); 还支持一些事件,onSave,onBeforeSave,onEdit,onAdd,onRemove: Url可以不指定,指定Data即可. /**