项目说明,要一个有权限并且按需加载的树形列表.

jeasyui网址

CSS

<!--添加树状控件-->
<link rel="stylesheet" type="text/css" href="../js/GridTree/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../js/GridTree/themes/default/serviceTesting1.css">

HTML

<div id="tableMain">
<table class="easyui-treegrid" id="funTreeList" style="width: 100% !important;"></table>
</div>

JS

<!--treeGrid树状插件-->
<script type="text/javascript" src="../js/GridTree/jquery.easyui.min.js"></script> //找到自己的文件目录 <script>
  
function GetModuleTree(){
$.ajax({
type: "get",
url: durl+"ServicePrice/GetSystemModulePriceTree",
data: {},
cache: false,
success: function (d) {
var data = d.data;
$('#funTreeList').treegrid({
fit: true,
toolbar: '#toolbar',
striped: true,
rownumbers: false, //设置为true,则显示带有行号的列
lines:true, //是否出现线条
fitColumns:true, //设置为true,则会自动扩大或缩小列的尺寸以适应网格的宽度并且防止水平滚动。
data: data, //加载的数据 (此数据为父级和子集的全部数据)
idField:'ModuleID', //指示那个字段是标识字段
treeField:'ModuleName', //定义树节点的字段
loadFilter: myLoadFilter, //最主要的方法 过滤数据
onLoadSuccess: function (row) {
          $('#funTreeList').treegrid('collapseAll')
obj.q(); //权限
closeload();
},
columns:[[
{field:'ModuleName',title:'功能名称',width:200},
{field:'ModuleSort',title:'功能序号',width:40},
{field:'ModuleID',title:'功能ID',width:40},
{field:'ModuleIndustry',title:'适用行业',width:60},
{field:'ModuleRemark',title:'功能简介',width:100,formatter:ModuleRemark},
{field:'IsMenu',title:'首页菜单',align:'center', width:40,formatter:IsMenu},
{field:'priceType',title:'定价点',align:'center', width:150,formatter:priceType},
{field:'btns',title:'操作',align:'center',width:270,formatter:formatOper}
]]
   });
},
error: function (a, b, c) {
closeload();
alert("请求服务器出现错误");
}
});
}
//按需加载子节点
function myLoadFilter(data,parentId){
function setData(data){//重新整理数据的children属性
var todo = [];
for(var i=0; i<data.length; i++){
todo.push(data[i]);//数组末端添加 将源数据添加到数组中便于后续利用
} while(todo.length){
var node = todo.shift();//方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
if (node.children){//如果有子节点
node.state = 'closed';
node.children1 = node.children;
node.children = undefined;
todo = todo.concat(node.children1);//数组联结
       }
}
}
setData(data);
var tg = $(this);//当前页面
var opts = tg.treegrid('options');//获取属性表格的属性对象
//节点展开前执行的方法 row是行数据
  opts.onBeforeExpand = function(row){
if (row.children1){
tg.treegrid('append',{
parent: row[opts.idField],//父节点id
data: row.children1//节点数据
});
row.children1 = undefined;
}
obj.q(); //权限
return row.children1 == undefined;
};
return data;
}
</script>

Jquery EasyUI Treegrid按需加载子集的更多相关文章

  1. jquery easyui easyui-treegrid 使用异步加载数据

    jquery easyui easyui-treegrid 使用异步加载数据 jquery easyui easyui-treegrid 异步请求 >>>>>>&g ...

  2. easyui combogrid 按需加载,点击下拉加载

    功能优点:减少不必要的http请求,减少服务器查询压力,降低额外的浏览器渲染,提高呈现速度开发分享: combogrid 点击才请求的功能实现简要:我分析了费用系统,和现在全网的写法.并不满意.都是要 ...

  3. jQuery easyui datagrid 的数据加载

        其实easyuidatagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法,这种方法用于加载本地js数据(非ur ...

  4. Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)

    private void SMT(HttpContext context) { string SqlConnection82 = System.Configuration.ConfigurationM ...

  5. jquery easyui:tab自动加载第一个tab内容

    $('#resourceTabs').tabs('unselect', 0);$('#resourceTabs').tabs('select', 0);

  6. jqGrid -treeGrid 按需加载

    Load Rows On Demand (AJAX) 参考:http://www.guriddo.net/demo/treegridjs/

  7. [转载]再次谈谈easyui datagrid 的数据加载

    这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...

  8. 谈谈easyui datagrid 的数据加载(转)

    这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...

  9. 再次谈谈easyui datagrid 的数据加载

    from:http://www.easyui.info/archives/204.html 这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实ea ...

随机推荐

  1. (转)jQuery基础之选择器

    原文地址: http://www.cnblogs.com/webmoon/p/3169360.html 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Ajax操作都依赖于选择器 ...

  2. wgs84坐标系与gcj02坐标系转换误差分布图 | Mapping the Error in Transformation between WGS84 and GCJ02 Coordinations

    国际上通用的是wgs84坐标系,而我国对于境内的坐标进行了加密,采用了gcj02坐标系,或者称为火星坐标系.亢孟军老师带的一门课<多媒体电子地图设计>要求我们从wgs84坐标系转换为gcj ...

  3. 编写高质量代码改善C#程序的157个建议——建议33:避免在泛型类型中声明静态成员

    建议33:避免在泛型类型中声明静态成员 在上一建议中,已经理解了应该将MyList<int>和MyList<string>视作两个完全不同的类型,所以,不应该将MyList&l ...

  4. Java集合类总结 (五)

    集合框架 为了避免进行不必要的随机访问操作,Java引入了一种标签接口RandomAccess, 这个接口没有任何方法,只是一个标签,用来标记一个集合是否应该进行随机访问操作: if (c insta ...

  5. .net core 图片合并,图片水印,等比例缩小,SixLabors.ImageSharp

    需要引用 SixLabors.ImageSharp 和SixLabors.ImageSharp.Drawing 引用方法 NuGet包管理 添加程序包来源 https://www.myget.org/ ...

  6. NSURLSession 网络请求

    1.NSURLSession 在 iOS9.0 之后,以前使用的 NSURLConnection 过期,苹果推荐使用 NSURLSession 来替换 NSURLConnection 完成网路请求相关 ...

  7. Atcoder Beginner Contest 121D(异或公式)

    #include<bits/stdc++.h>using namespace std;int main(){    long long a,b;    cin>>a>&g ...

  8. luoguP2982 [USACO10FEB]慢下来Slowing down

    https://www.luogu.org/problemnew/show/P2982 这题你写个树剖当然可以做,但是我们还有一种更简单的方法,使用 dfs 序 + 树状数组即可 考虑一只牛到了自己的 ...

  9. 八大排序算法的python实现(六)归并排序

    代码: #coding:utf-8 #author:徐卜灵 def merge(left,right): i,j = 0,0 result = [] while i < len(left) an ...

  10. linux系统安全及应用——PAM安全认证

    一.PAM认证模块介绍 PAM认证模块,叫做可插拔式的认证模块.一项重要的功能就是为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换.PAM提供了对所有服务进行 ...