-
localhost:8080 小试身手Lv3
发表于2018-6-22 10:14
悬赏1
已解决
需求场景:访问门户默认打开的是导航树上挂的第一个资源节点,如果想默认打开某个自己指定的资源节点,如何实现?
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个回答
实现方法:在树组件的属性面板—>事件—>加载完成中写脚本,格式如下:
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个节点。
补充说明:树组件默认不勾选“禁止定位第一个节点”属性,所以如果需要默认不打开导航树上的第一个资源、只打开脚本指定的资源节点,该属性需要勾选上。