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 插件 人性化的消息显示
Jan 21 Javascript
Javascript入门学习资料收集整理篇
Jul 06 Javascript
jQuery Ajax之load()方法
Oct 12 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 Javascript
Vue.js学习笔记之常用模板语法详解
Jul 25 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
jQuery实现日历效果
Sep 11 jQuery
JavaScript setTimeout()基本用法有哪些
Nov 04 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
openflashchart 2.0 简单案例php版
2012/05/21 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
详解微信UnionID作用
2019/05/15 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
python实现邮件循环自动发件功能
2020/09/11 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
外语系毕业生求职自荐信
2014/04/12 职场文书
公司开业致辞
2015/07/29 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书