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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • apt 与 dpkg[通俗易懂]

    apt 与 dpkg[通俗易懂]dpkg简介“dpkg”是“DebianPackager”的简写。为“Debian”专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux”发行版都使用“dpkg”,例如“Ubuntu”、“Knoppix”等。dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg与RPM十分相似,同样被用于安装、卸载和供给….

    2022年9月26日
  • latex 公式换行的命令

    latex 公式换行的命令2019独角兽企业重金招聘Python工程师标准>>>…

    2022年6月10日
  • mysql查询时间戳转换成日期格式

    mysql查询时间戳转换成日期格式在很多的数据表中,很多日期的记录都是以时间戳的格式来存储,在查询的时候无可避免的会带来查看数据的不方便,作者在之前总是通过程序的方式去处理,后来通过查询,发现可以直接在数据表中进行查询。如下图中regdate是时间戳的格式,没法直接了当的进行查看时间。mysql中可以进行转换select*,from_unixtime(regdate,’%Y-%m-%d%H:%i:%s’)asregtimefromtax_common_memberorderbyregdateasc;..

    2022年6月21日
  • break 和 continue 的区别_continue的用法

    break 和 continue 的区别_continue的用法break和continue区别和用法的视频教程:https://ke.qq.com/course/149432?tuin=57912c43有技术问题或者面试方面想学习交流的加我个人微信renlliang2013,本人建了一个微信答疑群,有学习疑问的同学加我拉你进群。想搞清楚break和continue的用法以及区别必须要记住的两件两句话!我们大家先记住一句话:break再循环…

    2022年9月13日
  • 语音信号处理领域国内外高手homepage分享(一)

    语音信号处理领域国内外高手homepage分享(一)详细内容见群文件,欢迎大家加入音频/识别/合成算法群(696554058)交流学习,谢谢!本内容原创,转载和使用请注明出处,谢谢配合;Zheng-HuaTan的主页:http://kom.aau.dk/~zt/index.htm#Research%20interests(谭政华博士曾经是美国麻省理工学院(MIT)计算机科学与人工智能实验室(CSAIL)的客座科学家/教授,…

    2022年5月25日

发表回复

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

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