Treegrid的动态加载实例代码


Posted in Javascript onApril 29, 2016

废话不多说了,直接给大家贴代码了。

具体代码如下所示:

1、前端

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<script type="text/javascript">
$(function() {
$('#goods_type_treegrid').treegrid({
url : '${pageContext.request.contextPath}/admin/goodsTypeController/treegrid.do?id=NULL',
idField : 'id',
treeField : 'text',
rownumbers: true,
parentField : 'pid',
fit : true,
fitColumns : true,
border : false,
frozenColumns : [ [ {
title : '编号',
field : 'id',
width : 150,
hidden : true
}, {
field : 'text',
title : '类别名称',
width : 200
} ] ],
columns : [ [ {
field : 'pname',
title : '上级类别名称',
width : 80
},{
field : 'seq',
title : '排序',
width : 50
},{
field : 'code',
title : '类别编码',
width : 50
}, {
field : 'pid',
title : '上级类别ID',
width : 150,
hidden : true
}, {
field : 'action',
title : '动作',
width : 50,
formatter : function(value, row, index) {
return formatString('<img onclick="goods_type_editFun(\'{0}\');" src="{1}"/> <img onclick="goods_type_deleteFun(\'{2}\');" src="{3}"/>', row.id, '${pageContext.request.contextPath}/style/images/extjs_icons/pencil.png', row.id, '${pageContext.request.contextPath}/style/images/extjs_icons/cancel.png');
}
} ] ],
toolbar : [ 
{
text : '批量导入',
iconCls : 'icon-remove',
handler : function() {
goods_type_importFun();
}
},{
text : '增加',
iconCls : 'icon-add',
handler : function() {
goods_type_appendFun();
}
}, '-', {
text : '展开',
iconCls : 'icon-redo',
handler : function() {
var node = $('#goods_type_treegrid').treegrid('getSelected');
if (node) {
$('#goods_type_treegrid').treegrid('expandAll', node.cid);
} else {
$('#goods_type_treegrid').treegrid('expandAll');
}
}
}, '-', {
text : '折叠',
iconCls : 'icon-undo',
handler : function() {
var node = $('#goods_type_treegrid').treegrid('getSelected');
if (node) {
$('#goods_type_treegrid').treegrid('collapseAll', node.cid);
} else {
$('#goods_type_treegrid').treegrid('collapseAll');
}
}
}, '-', {
text : '刷新',
iconCls : 'icon-reload',
handler : function() {
$('#goods_type_treegrid').treegrid('reload');
}
} ],
onBeforeExpand:function(row){
//动态设置展开查询的url 
var url = '${pageContext.request.contextPath}/admin/goodsTypeController/treegrid.do'; 
$("#goods_type_treegrid").treegrid("options").url = url; 
return true; 
},
onContextMenu : function(e, row) {
e.preventDefault();
$(this).treegrid('unselectAll');
$(this).treegrid('select', row.id);
$('#goods_type_menu').menu('show', {
left : e.pageX,
top : e.pageY
});
},
onExpand : function(row){
var children = $("#goods_type_treegrid").treegrid('getChildren',row.id);
if(children.length<=0){
row.leaf=true;
$("#goods_type_treegrid").treegrid('refresh', row.id);
}
}
});
});
</script>
<table id="goods_type_treegrid"></table>

2、controller

@RequestMapping("/treegrid")
@ResponseBody
public List<GoodsTypePage> treegrid(GoodsTypePage goodsTypePage) {
if(null==goodsTypePage || "".equals(goodsTypePage.getId()) || null == goodsTypePage.getId()){
goodsTypePage.setId("NULL");
}
return goodsTypeService.treegrid(goodsTypePage);
}

3、service

@Override
// 缓存数据
public List<GoodsTypePage> treegrid(GoodsTypePage goodsTypePage) {
String hql = "";
if(null==goodsTypePage || "".equals(goodsTypePage.getId()) || "NULL".equals(goodsTypePage.getId())){
hql = "from GoodsType t where t.tgoodstype.id is NULL order by t.seq";
}else{
hql = "from GoodsType t where t.tgoodstype.id = '" +goodsTypePage.getId()+"' order by t.seq";
}
List<GoodsType> brList = goodsTypeDao.find(hql);
List<GoodsTypePage> nl = new ArrayList<GoodsTypePage>();
if (brList != null && brList.size() > 0) {
for (GoodsType br : brList) {
GoodsTypePage r = new GoodsTypePage();
BeanUtils.copyProperties(br, r);
if(br.getTgoodstype()!=null){
r.setPname(br.getTgoodstype().getText());
r.setPid(br.getTgoodstype().getId());
}
r.setState("closed");
nl.add(r);
}
}
return nl;
}
Javascript 相关文章推荐
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
Safari5中alert的无限循环BUG
Apr 07 Javascript
JS下拉框内容左右移动效果的具体实现
Jul 10 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
js实现自定义进度条效果
Mar 15 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
vue-cli3单页构建大型项目方案
Apr 07 Javascript
element跨分页操作选择详解
Jun 29 Javascript
Easyui 之 Treegrid 笔记
Apr 29 #Javascript
浅析BootStrap模态框的使用(经典)
Apr 29 #Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 #Javascript
JavaScript函数柯里化详解
Apr 29 #Javascript
easyui validatebox验证
Apr 29 #Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 #Javascript
javascript中利用柯里化函数实现bind方法
Apr 29 #Javascript
You might like
常用的php ADODB使用方法集锦
2008/03/25 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php文件操作实例代码
2012/05/10 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
newxtree.js代码
2007/03/13 Javascript
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js给selected添加options的方法
2015/05/06 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
js实现中文实时时钟
2020/01/15 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
python开发之thread实现布朗运动的方法
2015/11/11 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
大学生个人学习总结
2015/02/15 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
Golang 字符串的常见操作
2022/04/19 Golang
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技