我花了好几天试图解决这个问题而且我放弃了.
我是一名LotusScript程序员,一直在努力学习XPages.我研究的所有示例和示例程序只涉及到这一部分.
有人可以一步一步地向我解释如何使用Extension Library Navigator控件的Selected属性吗?
我已根据扩展库中的布局控件创建了自己的自定义控件,并创建了一个名为navigationPath的自定义属性.我还创建了一个导航器自定义控件,它有5个页面链接节点.在每个页面链接节点的"选定"属性中,我放置了以下SSJS:
if(compositeData.navigationPath == "/Home/ApplicationPool"){
return true
}else{
return false
}
Run Code Online (Sandbox Code Playgroud)
/ Home/ApplicationPool对应于我在特定页面链接节点的"Selection"属性中放置的值.
在每个布局自定义控件中,我将"navigationPath"属性设置为compositeData.navigationPath.
我错过了什么?
有一个selected和selection财产,他们的意思是非常不同的事情,不能同时使用.在上面问题的代码示例中,您使用的selected属性在这种情况下是错误的.
应该将导航器中的treeNodes设置为使用该selection属性,这是一个RegEx值,用于查看它是否与通过自定义属性传递到应用程序布局的值相匹配.
<xe:navigator id="navigator1" expandable="true" expandEffect="wipe">
<xe:this.treeNodes>
<xe:pageTreeNode label="nodeName" page="/page.xsp" selection="/Home/ApplicationPool" />
</xe:this.treeNodes>
</xe:navigator>
Run Code Online (Sandbox Code Playgroud)
如您所见,您不需要使用任何SSJS来评估真/假结果.只需将treeNode中的值与XPage的applicationLayout控件中的值匹配即可.
如果您在布局titleBar中使用选项卡,那么您可以设置一个选择属性,它也使用这种格式/Home/.*,该选项卡将为每个XPage突出显示该选项卡/Home/的导航路径自定义属性.不要忘记它是RegEx,因此可以使用任何有效的RegEx语句为此特定属性添加更多功能.