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 相关文章推荐
jQuery EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
javascript开发中因空格引发的错误
Nov 08 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
JavaScript实现标题栏文字轮播效果代码
Oct 24 Javascript
JavaScript中的this使用详解
Jul 27 Javascript
ES6记录异步函数的执行时间详解
Aug 31 Javascript
AngularJS学习第二篇 AngularJS依赖注入
Feb 13 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
web前端vue实现插值文本和输出原始html
Jan 19 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 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
杏林同学录(二)
2006/10/09 PHP
模仿OSO的论坛(五)
2006/10/09 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php文件上传的简单实例
2013/10/19 PHP
php实现三级级联下拉框
2016/04/17 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
JS 数组基本用法入门示例解析
2020/01/16 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python使用turtle绘制分形树
2018/06/22 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
就业协议书怎么填
2014/04/11 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
求职信模板
2014/05/23 职场文书
办公用房租赁协议书
2014/11/29 职场文书
小学四年级学生评语
2014/12/26 职场文书
入党自传范文2015
2015/06/26 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python