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


相关推荐

  • mmse评估量表_简易精神状态评价量表(mmse量表) 打印版.doc[通俗易懂]

    简易精神状态评价量表(mmse量表)15016简易精神状态评价量表(MMSE)项目积分定向力(10分)1.今年是哪一年现在是什么季节?现在是几月份?今天是几号?今天是星期几?11111000002.你住在那个省?你住在那个县(区)?你住在那个乡(街道)?咱们现在在那个医院?咱们现在在第几层楼?1111100000记忆力(3分)3.告诉你三种东西,我说完后,请你重复一遍并记住,待会还会问你(各1分,…

    2022年4月18日
    51
  • Protostuff使用示例

    Protostuff使用示例Protostuff使用示例1、引入Maven依赖的JAR包&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;io.protostuff&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;protostuff-core&amp;lt;/artifactId&amp;gt;

    2022年6月7日
    46
  • Windows环境安装ActiveMQ,Stomp扩展

    Windows环境安装ActiveMQ,Stomp扩展

    2022年3月13日
    38
  • 快速西门子PLC入门(适合零基础)[通俗易懂]

    快速西门子PLC入门(适合零基础)[通俗易懂]快速西门子PLC入门(适合零基础)一、触点及线圈指令PLC梯形图语言的编程原则1、梯形图由多个梯级组成,每个线圈可构成一个梯级,每个梯级有多条支路,每个梯级代表一个逻辑方程;2、梯形图中的继电器、接点、线圈不是物理的,是PLC存储器中的位(1=0N;0=0FF);编程时常开/常闭接点可无限次引用,线圈输出只能是一次;3、梯形图中流过的不是物理电流而是“概念电流”,只能从左向右流;4、用户程序的运算是根据PLC的输入/输出映象寄存器中的内容,逻辑运算结果可以立即被后面的程序使用;5、PLC的内部

    2022年10月19日
    2
  • 周末随笔「建议收藏」

    随便记录,聊以自慰这段时间的心思在工作上,也有一段时间没写一些东西了,内心有一些想法,搁置起来了。去年有段时间想着搞搞副业,说实话副业没赚到多少,几百上千的,还是自己能力不够。还是想办法先努力提高主业的收入,作为一个打工者,目前无非就是看哪里搬砖收益更好一点,能有更多点的成长而已。作为程序员,自己对技术的热情大多数只是停留在工作的使用上。这个技术工作中用了没有热情也是强制去了解去学习,要不就慢慢等着淘汰。单独靠热情驱动,还没发现自己真正对什么东西充满热情,有时候觉得可悲,无奈。工作对于目前的我来.

    2022年3月1日
    41
  • phpstorm2018激活码_一键无痕视频无需激活ios

    phpstorm2018激活码_一键无痕视频无需激活iosPhpStorm激活码最新破解教程,Mac版激活至2299年,PhpStorm激活码2021.3.3

    2022年4月20日
    220

发表回复

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

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