树形数据的反选有两种方法以及处理后台返回拼装htmL的异步获取不到现象(但是页面F12可以看到):
1、在后台构建树的时候,就和被选中的结果集比较设置被选中---》缺点需要在迭代中加入循环匹配、效率低
2、只在后台构建树,在前台用js结合本选中的结果集进行设置勾选---》免除在迭代中循环
scriptOfMenu.append("<li tname=\"name\" tvalue=\"" + tree.getId() + "\" " +">");
////////////////////////////////////////////////////////////////////////
如果是后台返回的字符串且渲染成功(返回时长不长在渲染之前(最后一个js执行完才开始渲染)),但是js获取不到里面的元素操作,这种问题还是因为此js不是最后执行的js,其在渲染前就执行了当然拿不到(但是页面F12可以看到),所以改用ajax同时改为同步,或延时
调用,
比如:
<div style="height: 90%">
<form method="post" action="${pageContext.request.contextPath}/account/tradPerm/tradPermModify" class="pageForm required-validate" onsubmit="return validateCallback(this,navTabAjaxDone)">
<input type="hidden" name="id" value="${customerKey}">
<fieldset>
<legend>会员权限分配</legend>
<dl>
<dt style="width: 50px;display: inline-block;"><input type="submit" value="保存"/></dt>
<dd style="width: 50px;display: inline-block;"><input type="button" value="返回"/></dd>
</dl>
<dl>
<div id="layoutSimple" style="width: 99.8%;">
<div position="left" title="会员权限分配" id="accordionSimple"
style="text-align: left; overflow: auto;">
<ul id="mtreeSimple" style="margin-top: 3px;height: 600px;" class="tree treeFolder treeCheck expand" oncheck="kkk" >
${permTree}
</ul>
</div>
</div>
</dl>
</fieldset>
</form>
</div>
<script type="text/javascript">
var oidStr="";
var aa ="";
var aarray= [];
setTimeout(function () {
aa =parseInt($("input[name='name1']").length);
for(i=0;i<aa;i++){
oidStr +=$("input[name='name1']")[i].value+',';
}
aarray=oidStr.split(",");
for(j=0;j<aarray.length-1;j++){
<c:forEach items="${cusPowerGroupList}" var="item">
var tmp=${item.groupKey};
if(aarray[j]==tmp){
$("li a[tvalue='"+tmp+"']").attr("checked",'true');
$("input[value='"+tmp+"']").attr("checked",'true');
$("input[value='"+tmp+"']").parent().attr("class",'ckbox checked');
/* $("input[value='"+tmp+"']").click(); */
}
</c:forEach>
}
/* $("li a[tvalue='161']").attr("checked",'true');
$("input[value='161']").attr("checked",'true');
$("input[value='161']").parent().attr("class",'ckbox checked'); */
//alert(aarray);=""
}, 60);
</script>
用树形实体不要求查询的结果集为树形,在遍历的时候直接根据pid,id组装
private Tree createMenuTree(String cusTradeKind,int i)
{
Example example = new Example(TbPowerGroup.class);
example.createCriteria().andLike("flag", "%"+cusTradeKind+"%");
example.setOrderByClause("levelCode asc");
List<TbPowerGroup> list= tbPowerGroupMapper.selectByExample(example);
Map mr= new HashMap();
mr.put("NodeName", "会员中心");
Tree tree = new Tree("-1", 0, mr, 0);
createMenuTreeNow(tree,list);
// return this.permServ.findMenuTree(this.CusTradeKind, 0);
return tree;
}
private void createMenuTreeNow(Tree tree,List<TbPowerGroup> list ){
if (tree.getType() == 1) {
return;
}
List<TbPowerGroup> temp = new ArrayList<TbPowerGroup>();
temp.addAll(list);
for(TbPowerGroup l : list){
Map mr = new HashMap();
mr.put("NodeName", l.getGroupName());
Tree t = new Tree( l.getGroupKey().toString(), l.getGroupLevel().intValue() == 2 ? 1 : 0, mr, Integer.valueOf(l.getLevelCode()));
if ( l.getParentKey().toString().equals(tree.getId()))
{
tree.getSonList().add(t);
temp.remove(l);
createMenuTreeNow(t, temp);
}
}
}
相关推荐
通过XMLHttpRequest对象与服务器进行异步数据交换,再用JavaScript处理返回的数据,实现页面的局部刷新。在ECharts与后台数据交互中,AJAX起到了关键的角色。 三、ECharts与MySQL数据交互步骤 1. **创建数据库连接*...
"Java 数据拼装树工具类" 提供了一种便捷的方法,将后台数据转换为树形结构,这对于展示层次化信息或者进行递归操作非常有用。在JDK 8及以上版本中,这种工具类能够充分利用新引入的特性,如流(Stream)和函数式编程...
在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。在本篇讨论中,我们将聚焦于如何利用Ajax获取服务器返回的...
测量数据处理方法是影响竖井联系测量定向精度的重要因素,尤其涉及到水平角观测和边长量取的准确性,以及温度和尺长改正等因素。在具体操作中,通常会采用钢尺法或钢丝法进行竖井高程联系测量,而本文则重点讨论水平...
文档中提到了一种基于CAD图形操作的吊装组件拼装定位数据处理方法。这涉及到如何使用CAD软件将设计图纸上的坐标准确地转换为实际施工时所用的坐标系,这对于确保钢结构组件在地面上的精确拼装至关重要。 6. 工程...
mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...
在Node.js环境中,读取本地文件并生成目录树是一种常见的需求,特别是在开发文件管理系统或进行文件操作时。Node.js提供了一系列强大的文件系统(fs)模块,使得开发者能够方便地进行文件和目录的操作。本篇文章将...
与传统的链式结构不同,动态通用串结构在存储分配时结合了链式和顺序两种方法的优势,使得它可以更高效地进行数据的增删改查操作。在链式结构中,每个节点通常包含数据域和指针域,指针域用于指向下一节点。这种结构...
标题 "NetHelper_C#帮助类HtmlHelper_JSON_PostJson_" 概述的是一个C#编程中的网络辅助类集合,其中包含了处理HTML、JSON数据以及POST请求的相关功能。这个工具集可能是为了方便开发者在进行Web开发时,高效地进行...
在IT领域,特别是数据结构和算法中,"树"是一种重要的数据结构,广泛应用于文件系统、数据库索引、计算机科学的编译原理等多个方面。在实际应用中,我们需要经常进行树的查询操作,例如查找一个特定节点的所有子节点...
盾构隧道断面测量数据处理方法研究是一项涉及工程测量、数据分析及数学建模的综合性技术研究。在这一领域中,地铁、铁路等地下通道的建设采用盾构机进行开挖已经变得越来越普遍。隧道的断面多为圆形,如何准确测量和...
在开发Java Web项目时,构建树形数据结构是常见的需求,尤其在展示多级分类、组织结构或地理位置等场景。本篇文章将详细讲解如何利用Java和MySQL递归地实现拼接树形JSON列表的方法。 首先,我们需要理解问题的整体...
直接类似这样的写法就可以了.于是决定用易语言模仿一个, 这个版本只支持 "生成拼装SQL", 下次准备结合ad0o对象. 允许直接操作数据库。制作这么一个东西的初衷是为了 "更快更高效的开发程序", 我们往往在SQL上耽搁了...
6. 三维激光扫描技术:三维激光扫描技术是一种获取构件三维空间信息的技术,能够快速、高精度地获取构件的三维空间信息。 7. 几何质量检测:几何质量检测是一种检测预拼装构件的关键施工工序,旨在检测预拼装构件的...
TBM后配套管片拼装机是一种用于隧道掘进机械(Tunnel Boring Machine, TBM)的配套设备,它主要用于隧道施工中管片的自动拼装。管片是隧道衬砌的重要组成部分,拼装机能够将预制的管片按照设计要求拼装成环状,以...
在ECharts中,地图数据可以以JS对象或JSON格式存储,这两种方式各有优势。JS格式的地图数据可以直接在代码中引用和操作,方便灵活;JSON格式的数据则更适合于静态存储和跨平台传输。 ECharts的地图数据通常包括地理...
《叠合节点贝壳形单层穹顶网壳高空拼装法施工方案》为青岛市展览中心展览馆多功能厅屋盖的建设提供了一种创新性的施工方法。该方案利用了叠合节点技术与贝壳形状相结合的结构体系,不仅体现了结构设计的新颖性,还为...
在本压缩包文件“行业文档-设计装置-一种拼装式立体纸温室制作方法.zip”中,主要包含了一份名为“一种拼装式立体纸温室制作方法.pdf”的详细文档,该文档详细介绍了如何设计并制作拼装式的立体纸温室。这种创新的...
文件“一种建筑用空心楼板模板及其拼装方法.pdf”很可能详细介绍了这种模板的设计原理、构造特点以及拼装的具体步骤。内容可能涵盖以下几个方面: 1. 设计理念:解释空心楼板模板的设计目标,比如节省成本、提高...