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 相关文章推荐
js下写一个事件队列操作函数
Jul 19 Javascript
读jQuery之三(构建选择器)
Jun 11 Javascript
jquery修改属性值实例代码(设置属性值)
Jan 06 Javascript
Jquery性能优化详解
May 15 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
Jul 19 Javascript
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
关于使用js算总价的问题
Jun 23 Javascript
JS返回顶部实例代码
Aug 09 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
Vue中fragment.js使用方法小结
Feb 17 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 XML数据解析代码
2010/05/26 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
代码生成器 document.write()
2007/04/15 Javascript
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
常用的javascript设计模式
2017/01/11 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
详解Python的Django框架中的中间件
2015/07/24 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python3多线程知识点总结
2019/09/26 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
为什么说python适合写爬虫
2020/06/11 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
python os.listdir()乱码解决方案
2021/01/31 Python
计算机专业自荐信
2013/10/14 职场文书
先进个人获奖感言
2014/01/24 职场文书
旷课检讨书1000字
2014/02/14 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2014年行政部工作总结
2014/11/19 职场文书
导游词之江西赣州
2019/10/15 职场文书
Python中相见恨晚的技巧
2021/04/13 Python