PrimeNG TreeTable异步加载子树[通俗易懂]

PrimeNG TreeTable异步加载子树[通俗易懂]1.PrimeNG官网:https://www.primefaces.org/primeng/#/treetable2.引入TreeTableModule到自己的module.ts中3.页面中写上PrimeNG规定的p-treeTable格式,value对应后台返回的treeNode格式,field中对应的是data:item中返回的值   的名称  <p-treeTable…

大家好,又见面了,我是你们的朋友全栈君。

1. PrimeNG官网:https://www.primefaces.org/primeng/#/treetable

2. 引入TreeTableModule到自己的module.ts中

3. 页面中写上PrimeNG规定的p-treeTable格式,value对应后台返回的treeNode格式,field中对应的是data:item中返回的值      的名称

   


<
p
-treeTable
[
value
]=
_organizationalManagementList

selectionMode
=
“single”
[(
selection
)]=
“selectedFile”
(
onNodeSelect
)=
“_OrganizationalSelectHandler($event)”
(
onNodeExpand
)=
“_expandOrganizational($event)”
>
<
p
-header
>Singe Selection
</
p
-header
>
<
p-column
field=
“descn”
header=
“部门名称” [
style]=
“{‘width’:’200px’}”
></
p-column
>
<
p-column
field=
“id”
header=
“”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“部门编号”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“部门简称”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“部门性质”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“负责人”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“电话号”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“分机号”
></
p-column
>
<
p-column
field=
“jobGroupId”
header=
“备注”
></
p-column
>
</
p
-treeTable
>

4. 首次请求后台得到第一次树形节点数据

    

this.
unitService.
getAllOrganizational()
.
subscribe(
(
profile:
any[])
=> {
console.
log(
profile);

this
.
_organizationalManagementList
=
profile
.
map
(
item

=>
{


return {
label:
item[
“descn”],
data:
item,
expandedIcon:
“fa-folder-open”,
collapsedIcon:
“fa-folder”,
leaf:
false
};


});
});


5. 第二次展开,会触发 onNodeExpand方法,执行中根据$event中的id值进行第二次请求

   

_expandOrganizational(
event){
console.
log(
event);
if (
event.
node) {
this.
unitService.
getAllOrganizationalById(
event.
node[
“data”].
id).
subscribe(
(
res:
any[])
=> {
const
childrenList=
res[
“privileges”];

event.node.children
=
childrenList
.
map
(
item

=>
{
return {
label:
item[
“text”],
data:
item,
expandedIcon:
“fa-folder-open”,
collapsedIcon:
“fa-folder”,
leaf:
false
};
});
// console.log(event.node);
},
(
err:
HttpErrorResponse)
=> {
if (
err.
error
instanceof
Error) {
alert(
`客户端错误or网络连接失败,
${

err.
error.
message
}
`);
}
else {
const
errMsg =
`服务器返回数据失败,错误代码:
${
err.
status
}
,错误信息:
${

err.
error
}
`;
console.
log(
errMsg);
alert(
errMsg);
}
}
);


}
}

6. 再展开之前还需要判断是否已经是最后一层,如果是的话是文件形式的图标,如果不是的话是文件夹形式,后续会再更新

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141863.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 旁路由设置的正确方式

    旁路由设置的正确方式最近在玩旁路由,踩了一些坑,也学习了点相关知识,特整理记录下。一、旁路由的配置上图是旁路由的连接方式,一般作为旁路由的只有一个LAN口,可以把它想成一个普通的连接路由器的电脑。让他们ip在一个网段即可,比如主路由网关192.168.3.1,旁路由配置成192.168.3.21.主路由配置:DHCP配置,把网关和DNS改成旁路由ip地址,如192.168.3.2。2.旁路由配置:关闭DHCP,把网关改成主路由地址,如192.168.3.1,关闭桥接模式。这样配置后,网络流量如下图:.

    2022年6月14日
    56
  • Java字符串常量池_字符串常量池溢出

    Java字符串常量池_字符串常量池溢出包装类对象池是不是JVM常量池的一种?Java创建newString会产生多少个对象

    2022年7月28日
    6
  • Java中xml转义字符和gt,gte,lt,lte缩写

    Java中xml转义字符和gt,gte,lt,lte缩写javamybatisXML文件中不允许出现”>”、”<“之类的符号。需要转义”=”是可以正常使用的 字段 符号 说明 &lt; < 小于号 &gt; > 大于号 …

    2022年7月20日
    19
  • js获取当前时间年份_js输入年月日,判断是这年的第几天

    js获取当前时间年份_js输入年月日,判断是这年的第几天vardate=newDate();date.getYear();//获取当前年份(2位)date.getFullYear();//获取完整的年份(4位)date.getMonth();//获取当前月份(0-11,0代表1月)date.getDate();//获取当前日(1-31)date.getDay();//获取当前星期X(0-6,0代表星期天)date.getTime();//获取当前时间(从1970.1.1开始的毫秒数)date.getH

    2025年7月2日
    3
  • 单片机结构_单片机原理读书笔记

    单片机结构_单片机原理读书笔记文章目录Chapter1:51单片机结构1.1MCS-51单片机内部结构1.1.151单片机内部结构1.1.2核心部件CPU1.2存储器1.2.1ROM和RAM1.2.2普林斯顿结构、哈佛结构1.2.3片内存储器、片外存储器1.2.4程序存储器、外部数据、内部数据存储器1.3特殊功能寄存器1.4时钟电路和复位电路1.4.1时钟电路1.4.2基本时序单位1.4.3复位…

    2022年10月4日
    5
  • C# 多线程编程

    C# 多线程编程1.如果只是启动一个新线程,不需要传入参数,不需要线程返回结果,可以直接使用ThreadStart(),Thread类接收一个ThreadStart委托或ParameterizedThreadSta

    2022年7月2日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号