门户设置默认打开某个资源节点该怎么办?

5876
4

localhost:8080 小试身手Lv3

发表于2018-6-22 10:14

悬赏1

已解决

楼主
本帖最后由 localhost:8080 于 2018-8-3 08:39 编辑

需求场景:访问门户默认打开的是导航树上挂的第一个资源节点,如果想默认打开某个自己指定的资源节点,如何实现?


最近看过此主题的会员

tanxzh

esen_4QBPI1VXAV

贯佳睿

玊尔666

keer_

daix

最佳答案
实现方法:在树组件的属性面板—>事件—>加载完成中写脚本,格式如下:
function(xtree, _,iseditstatus){
xtree.getRootItem().getChildItem(n).getChildItem(n).selectSelf(true, true);
}

其中xtree.getRootItem()必须写,表示定位到门户的树的最高级总结点。
getChildItem(n)n=0/1/2/3/4...,表示指定到第一层的第n+1个节点,可连续写,比如说getChildItem(n).getChildItem(n)表示指定到第一层的第n+1个节点的第n+1个子节点,以此类推。
selectSelf(true, true)的功能是定位到此节点并展开显示。若改成doClick()则效果为只会显示页面,不会定位树节点。
需求进阶:基于以上需求场景,想进一步实现不同的用户登录访问到这个门户,默认打开不同的资源节点,比如:用户001登录默认打开树节点A,002登录默认打开树节点B,其他用户登录默认打开树节点C,是否可以做到呢?
答案当然是yes~ 以导航树风格门户为例,操作方法如下:
Step1:在门户上添加一个文本组件,用来获取登陆者的ID
文本内容:<#=login.id#>
组件标识:loginid

Step2:在树组件的加载完成属性中添加脚本
function(xtree,iseditstatus){
if (!iseditstatus) {
xtree.getRootItem().getChildItem(3).getChildItem($p.$("loginid").getText() === '001' ? 0 : ($p.$("loginid").getText() === '002' ? 1 : 2)).selectSelf(true, true);
}
}
 
脚本解析:
loginid即定义的文本组件标识;
$p.$("loginid").getText() === 'XXX' ? a : b)  结构相当于BI中的if判断,当登录ID是XXX时,访问第a+1个节点,否则访问第b+1个节点。 
补充说明:树组件默认不勾选“禁止定位第一个节点”属性,所以如果需要默认不打开导航树上的第一个资源、只打开脚本指定的资源节点,该属性需要勾选上。
4个回答

只看楼主

混乱七星天 数据达人Lv4

发表于2018-6-22 17:39

只看该作者

取消 关注该作者的回复

沙发

棒棒哒

大哥很IT 数据老手Lv5

发表于2018-6-22 10:14

只看该作者

取消 关注该作者的回复

板凳

实现方法:在树组件的属性面板—>事件—>加载完成中写脚本,格式如下:
function(xtree, _,iseditstatus){
xtree.getRootItem().getChildItem(n).getChildItem(n).selectSelf(true, true);
}

其中xtree.getRootItem()必须写,表示定位到门户的树的最高级总结点。
getChildItem(n)n=0/1/2/3/4...,表示指定到第一层的第n+1个节点,可连续写,比如说getChildItem(n).getChildItem(n)表示指定到第一层的第n+1个节点的第n+1个子节点,以此类推。
selectSelf(true, true)的功能是定位到此节点并展开显示。若改成doClick()则效果为只会显示页面,不会定位树节点。
需求进阶:基于以上需求场景,想进一步实现不同的用户登录访问到这个门户,默认打开不同的资源节点,比如:用户001登录默认打开树节点A,002登录默认打开树节点B,其他用户登录默认打开树节点C,是否可以做到呢?
答案当然是yes~ 以导航树风格门户为例,操作方法如下:
Step1:在门户上添加一个文本组件,用来获取登陆者的ID
文本内容:<#=login.id#>
组件标识:loginid

Step2:在树组件的加载完成属性中添加脚本
function(xtree,iseditstatus){
if (!iseditstatus) {
xtree.getRootItem().getChildItem(3).getChildItem($p.$("loginid").getText() === '001' ? 0 : ($p.$("loginid").getText() === '002' ? 1 : 2)).selectSelf(true, true);
}
}
 
脚本解析:
loginid即定义的文本组件标识;
$p.$("loginid").getText() === 'XXX' ? a : b)  结构相当于BI中的if判断,当登录ID是XXX时,访问第a+1个节点,否则访问第b+1个节点。 
补充说明:树组件默认不勾选“禁止定位第一个节点”属性,所以如果需要默认不打开导航树上的第一个资源、只打开脚本指定的资源节点,该属性需要勾选上。

小一一一 初学数据Lv2

发表于2018-8-6 08:06

只看该作者

取消 关注该作者的回复

地板

厉害了

韦韬然 数据老手Lv5

发表于2018-8-6 13:57

只看该作者

取消 关注该作者的回复

5#

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号