下面的这个方法是页面刚刚加载的时候,调用的函数
function resetTree(grade, subject, parId) {
$("#pointTree")
.tree(
{
width : 500,
url : "/action/exampoint/tree/initPoint?grade=" + grade
+ "&subject=" + subject + "&parId=" + parId,
onBeforeExpand : function(node) {
$("#pointTree").tree("options").url = "/action/exampoint/tree/initPoint?grade="
+ grade
+ "&subject="
+ subject
+ "&parId="
+ node.id;
},
onLoadSuccess : function(node, data) {
if(grade==-1&&subject==-1&&parId==-1)
return;
if (data == null || data == "")
$.messager
.alert("系统提示", "暂无匹配考点训练!", "warning");
}
});
}
后台action对应的方法:
public String initPoint() {
List<Map<String, Object>> root = new ArrayList<Map<String, Object>>();
List<EduExampoint> points = knowledgeManage
.findBySubjectAndGradeAndParId(subject, grade, parId);
for (int i = 0; i < points.size(); i++) {
System.out.println("point==========="+points.get(i));
System.out.println(points.size());
}
for (EduExampoint point : points) {
Map<String, Object> item = new HashMap<String, Object>();
item.put("id", point.getId());
// root
if (point.getParId() == 0)
item.put("text", point.getEduGrade() + " "
+ point.getEduSubject().getName());
else
item.put("text", point.getName());
/* int childCount=knowledgeManage.getExamPointChildCount(point.getId());
if (childCount > 0)
item.put("state", "closed");
root.add(item);*/
String countHql = "select count(p.id) from EduExampoint p where p.deleteFlag='true'";
countHql += " and p.parId=" + point.getId();
countHql += grade != null && grade != -1 ? " and p.eduGrade.id="
+ grade
: "";
countHql += subject != null && subject != -1 ? " and p.eduSubject.id="
+ subject
: "";
System.out.println("countHql====="+countHql);
List<Object> rs = knowledgeManage.findByHql(countHql);
int c = 0;
if (!rs.isEmpty()) {
c = Integer.parseInt(rs.get(0).toString());
}
item.put("state", c < 1 ? "open" : "closed");
root.add(item);
}
for (int i = 0; i < root.size(); i++) {
System.out.println("root.get(i)====="+root.get(i));
}
try {
response.getWriter().print(JSONArray.fromObject(root));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
目前就是初始化加载的时候显示的是图片1的效果,但是现在用户要实现的是页面加载的时候,全部显示树形菜单的所有的结构.就是页面加载的时候要显示的是图片2的效果,有什么好的办法啊,求大神们解决!
相关推荐
在这个“ajax树形菜单 动态显示”的项目中,我们关注的是如何利用Ajax技术来实现一个交互式的、只在需要时加载内容的树形菜单。 树形菜单是一种常见的用户界面元素,它通过层级结构来展示信息,常用于网站导航、...
树形菜单的初始加载只包含顶层节点,用户展开节点时,通过AJAX请求获取子节点数据,这样可以显著提高页面加载速度。`ztree`支持异步加载,只需配置相应的数据接口,即可实现动态加载效果。 在`ztree`中,主要涉及...
"js"可能包含的是具体的JavaScript代码,包括初始化树形菜单、处理Ajax请求以及解析和渲染JSON数据的逻辑。通常,这个JavaScript文件会定义一些函数来处理树形菜单的交互,如点击事件,以及与服务器进行Ajax通信的...
JSTree作为一个强大且灵活的JavaScript树形菜单组件,为开发者提供了解决大数据量加载问题的有效工具。其高效、易用和可扩展的特性,使其在各种Web应用中广泛应用,无论是企业级后台管理界面,还是用户友好的前端...
首先,`Thd.css`很可能是样式表文件,用于定义树形菜单的样式,如字体、颜色、布局和展开/折叠动画效果。在CSS中,我们通常会为不同的菜单级别设置不同的缩进,使用伪类来处理展开和折叠状态的样式,例如`::before`...
树形菜单,顾名思义,是模仿自然界树木分支结构的一种数据可视化形式。每个菜单项可以视为一个节点,包含父节点和子节点。根节点位于顶部,没有父节点,而叶子节点没有子节点。通过这种方式,树形菜单能够有效地组织...
Element UI的树形菜单提供了多种配置选项,包括展开方式、节点图标、是否显示检查框等。你还可以通过CSS覆盖默认样式,定制自己的菜单外观。 ### 7. 总结 Vue.js与Element UI结合使用,可以方便地构建出功能丰富的...
- 对于大型数据集,树形菜单常采用懒加载策略,只在需要时请求和渲染子节点。这可以通过AJAX或Fetch API实现,减少初始加载时间,提高用户体验。 6. **事件处理** - 事件处理是树形菜单交互的核心,如`...
2. **JavaScript初始化**:创建一个函数来处理树形菜单的初始化。这个函数应该遍历所有的菜单项,为有子菜单的项添加事件监听器。 3. **事件处理**:为每个可能含有子菜单的节点添加点击事件监听器。当用户点击时,...
- 初始化树形菜单,通过`treeView = new dhtmlXTreeView({});`创建实例,然后调用`treeView.attachTree(data)`加载数据。 - 添加节点,使用`treeView.addItem(parentId, text, icon, opened)`。 - 删除节点,使用`...
在这个树形菜单中,JavaScript会动态地添加、隐藏或展开/折叠菜单项。 - **事件处理**:JavaScript的事件监听机制使得用户交互(如点击)能够触发相应的函数执行,实现菜单的展开与收缩。 - **CSS样式控制**:通过...
在本话题中,我们主要讨论的是使用JavaScript实现的树形菜单,它是一种常见的用户界面元素,用于展示层次结构的数据。 树形菜单在网页设计中扮演着重要角色,它可以将复杂的层级关系以简洁直观的方式呈现给用户。...
这里的`onClick`回调函数可以用来处理用户点击树形菜单节点时的行为,比如加载更多内容或执行其他业务逻辑。 除了基本的创建,jQuery EasyUI的树形菜单还支持许多高级功能,如异步加载数据、拖放操作、多选节点等。...
3. **性能优化**:在处理大量数据时,jQuery树形菜单往往采用异步加载策略,只在需要时加载相应的节点,减少初次加载时的页面负担,提升用户体验。 4. **兼容性**:jQuery库对浏览器的兼容性非常好,因此基于jQuery...
1. **控件介绍**:树形菜单在WinForms中通过`TreeView`控件来实现,它可以显示一个可折叠/展开的节点结构,每个节点可以有任意数量的子节点,形成树状的层级关系。 2. **节点与属性**:每个节点是`TreeNode`对象,...
树形菜单通常由一系列可以展开和折叠的节点组成,这些节点代表了数据的层级关系。在jQuery中,我们可以通过遍历DOM,添加事件监听器以及修改元素的样式来实现这一功能。例如,我们可以为每个节点添加一个点击事件,...
在IT领域,尤其是在网页开发中,"下拉树形菜单"是一种常见的用户界面元素,它允许用户通过展开和折叠节点来浏览层次结构的数据。这里,我们主要关注的是使用jQuery库实现的树形菜单,因为标签中提到了"jquery"。 ...
此外,JavaScript还可以实现更高级的功能,如异步加载子菜单内容、无限级树形菜单的递归渲染等。 在实际开发中,为了提高代码复用性和维护性,可以将树形菜单的逻辑封装成一个JavaScript插件或组件。这个组件可以...
3. **初始化树形菜单**:调用插件提供的函数,传入相应的配置项,如数据源、节点点击事件等。 4. **渲染数据**:将后台获取的层级数据结构转换成插件可识别的格式,然后传递给插件进行渲染。 5. **事件监听**:根据...
在Bootstrap中,下拉框(Dropdown)是一种常见的交互元素,而"bootstrap树形下拉框 下拉框树形菜单(修改版)"则是将传统的下拉菜单与树形结构相结合,以提供更复杂的选项选择体验。 在Web开发中,有时我们需要在一...