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 实现复制到粘贴板的功能代码
May 13 Javascript
js常用排序实现代码
Dec 28 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
多个js与css文件的合并方法详细说明
Dec 26 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
Node.js笔记之process模块解读
May 31 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 Javascript
JS前端使用canvas实现扩展物体类和事件派发
Aug 05 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下打开URL地址的几种方法小结
2010/05/16 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
详解Python中的循环语句的用法
2015/04/09 Python
Python实现数据库编程方法详解
2015/06/09 Python
Python使用剪切板的方法
2017/06/06 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python实现可逆简单的加密算法
2019/03/22 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
美国性感内衣店:Yandy
2018/06/12 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
师范毕业生求职自荐信
2013/09/25 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
Javascript webpack动态import
2022/04/19 Javascript