解析jquery easyui tree异步加载子节点问题
发布时间 - 2026-01-11 00:03:51 点击率:次easyui中的树可以从标记中建立,也可以通过指定一个URL属性读取数据建立。如果想建立一棵异步树,需要为每个节点指定一个id属性值,这样在加载数据时会自动向后台传递id参数。
<ul id="tt"></ul>
编写前台代码:
$('#tt').tree({
url:'/demo2/node/getNodes' // The url will be mapped to NodeController class and getNodes method
});
为测试用,建立一个节点的数据模型:
@Table(name="nodes")
public class Node extends ActiveRecordBase{
@Id public Integer id;
@Column public Integer parentId;
@Column public String name;
public boolean hasChildren() throws Exception{
long count = count(Node.class, "parentId=?", new Object[]{id});
return count > 0;
}
}
编写后台的控制器代码:
public class NodeController extends ApplicationController{
/**
* get nodes, if the 'id' parameter equals 0 then load the first level nodes,
* otherwise load the children nodes
* @param id the parent node id value
* @return the tree required node json format
* @throws Exception
*/
public View getNodes(int id) throws Exception{
List<Node> nodes = null;
if (id == 0){ // return the first level nodes
nodes = Node.findAll(Node.class, "parentId=0 or parentId is null", null);
} else { // return the children nodes
nodes = Node.findAll(Node.class, "parentId=?", new Object[]{id});
}
List<Map<String,Object>> items = new ArrayList<Map<String,Object>>();
for(Node node: nodes){
Map<String,Object> item = new HashMap<String,Object>();
item.put("id", node.id);
item.put("text", node.name);
// the node has children,
// set the state to 'closed' so the node can asynchronous load children nodes
if (node.hasChildren()){
item.put("state", "closed");
}
items.add(item);
}
return new JsonView(items);
}
}
官网例子地址:http://www.jeasyui.com/tutorial/tree/tree2.php
demo下载:easyui-tree2_jb51.rar
重要的事情说三遍!!!
$('#tt').tree({
method:"POST",
url:'/demo2/node/getNodes' // The url will be mapped to NodeController class and getNodes method
});
method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。
method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。
method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# easyui
# tree
# 异步加载
# 异步
# jquery
# 异步树
# EASYUI TREEGRID异步加载数据实现方法
# jquery easyui中treegrid用法的简单实例
# JQuery Easyui Tree的oncheck事件实现代码
# 使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
# 浅谈EasyUI中Treegrid节点的删除
# EasyUI Tree+Asp.net实现权限树或目录树导航的简单实例
# 浅析jQuery EasyUI中的tree使用指南
# Easyui Treegrid改变默认图标的方法
# EasyUi combotree 实现动态加载树节点
# 采用easyui tree编写简单角色权限代码的方法
# 要在
# 要用
# 来做
# 可以通过
# 建立一个
# 一棵
# 官网
# 大家多多
# 三遍
# 加载
# Integer
# nodes
# parentId
# Column
# Id
# Node
# public
# ActiveRecordBase
# extends
# count
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
佛山网站制作系统,佛山企业变更地址网上办理步骤?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
如何快速生成ASP一键建站模板并优化安全性?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Laravel怎么在Controller之外的地方验证数据
Laravel观察者模式如何使用_Laravel Model Observer配置
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
iOS正则表达式验证手机号、邮箱、身份证号等
Python正则表达式进阶教程_复杂匹配与分组替换解析
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在Tomcat中配置并部署网站项目?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
手机软键盘弹出时影响布局的解决方法
HTML 中如何正确使用模板变量为元素的 name 属性赋值
利用JavaScript实现拖拽改变元素大小
如何快速配置高效服务器建站软件?
Linux网络带宽限制_tc配置实践解析【教程】
Laravel怎么使用Intervention Image库处理图片上传和缩放
Python面向对象测试方法_mock解析【教程】
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Internet Explorer官网直接进入 IE浏览器在线体验版网址
零服务器AI建站解决方案:快速部署与云端平台低成本实践
详解jQuery中基本的动画方法
如何用PHP工具快速搭建高效网站?
Android okhttputils现在进度显示实例代码
如何用好域名打造高点击率的自主建站?
奇安信“盘古石”团队突破 iOS 26.1 提权
简单实现Android验证码
如何用wdcp快速搭建高效网站?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
PHP 500报错的快速解决方法
Android GridView 滑动条设置一直显示状态(推荐)
Laravel如何实现用户注册和登录?(Auth脚手架指南)
LinuxShell函数封装方法_脚本复用设计思路【教程】
香港服务器选型指南:免备案配置与高效建站方案解析
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
javascript如何操作浏览器历史记录_怎样实现无刷新导航
详解jQuery停止动画——stop()方法的使用
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何快速搭建高效WAP手机网站吸引移动用户?
MySQL查询结果复制到新表的方法(更新、插入)
Python文件操作最佳实践_稳定性说明【指导】
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
微信小程序 五星评分(包括半颗星评分)实例代码
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤

