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 改变radio/checkbox选中状态,获取选中的值(示例代码)
Dec 12 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
js中数组的常用方法小结
Dec 30 Javascript
vue2.0实现分页组件的实例代码
Jun 22 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 Javascript
JS限制输入框输入的实现代码
Jul 02 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP的开发框架的现状和展望
2007/03/16 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
小程序转发探索示例
2019/02/19 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python可视化实现KNN算法
2019/10/16 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
火山动力Java笔试题
2014/06/26 面试题
2014年庆元旦活动方案
2014/02/15 职场文书
公休请假条
2014/04/11 职场文书
研究生导师推荐信
2014/09/06 职场文书
学术会议通知范文
2015/04/15 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫