Xpages <;xe:navigator>;使用OneUI 2.1应用不正确的样式
我正在使用扩展库中的导航器控件。我想使用默认样式,其中只有选定的项目高亮显示,所有其他项目不高亮显示,并显示指针光标。出于某种原因,它将“lotusSelected”类应用于所有呈现为列表项的导航器节点 我知道树节点的“selected”属性控制着这一点。无论属性设置为true、false还是nothing,都会执行相同的操作。我不想在这里做任何花哨的事情,只是使用默认行为。自定义css或主题中没有任何内容可以覆盖此内容 这在所有浏览器上都会发生。使用Chrome工具,我可以看到删除类会导致我想要的行为。导航打开一个XPage并更改一个动态内容控件,这一切都可以正常工作。这在应用程序布局控件内部使用Xpages <;xe:navigator>;使用OneUI 2.1应用不正确的样式,xpages,Xpages,我正在使用扩展库中的导航器控件。我想使用默认样式,其中只有选定的项目高亮显示,所有其他项目不高亮显示,并显示指针光标。出于某种原因,它将“lotusSelected”类应用于所有呈现为列表项的导航器节点 我知道树节点的“selected”属性控制着这一点。无论属性设置为true、false还是nothing,都会执行相同的操作。我不想在这里做任何花哨的事情,只是使用默认行为。自定义css或主题中没有任何内容可以覆盖此内容 这在所有浏览器上都会发生。使用Chrome工具,我可以看到删除类会导致我想
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xe:navigator id="navigator1" expandable="false">
<xe:this.treeNodes>
<xe:pageTreeNode label="Add New ATM"
page="/xpSupervisor.xsp" queryString="content=newATM">
</xe:pageTreeNode>
<xe:pageTreeNode label="Update ATM Information"
page="/xpSupervisor.xsp" queryString="content=updateATM"
selected="false">
</xe:pageTreeNode>
<xe:pageTreeNode label="One Time Settlement Amount Change"
page="/xpSupervisor.xsp" queryString="content=changeSettlementAmt"
selected="false">
</xe:pageTreeNode>
</xe:this.treeNodes>
</xe:navigator></xp:view>
更新:pageTreeNode和我创建动态内容控件的方式之间似乎存在一些冲突。只有在那一页上才会搞砸。以下是代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xe:dynamicContent id="dynamicContent1" useHash="true"
defaultFacet="default">
<xp:this.facets>
<xc:ccSupervisorHelp xp:key="default"></xc:ccSupervisorHelp>
<xc:ccNewATM xp:key="newATM"></xc:ccNewATM>
<xc:ccUpdateATM xp:key="updateATM"></xc:ccUpdateATM>
<xc:ccChangeSettlementAmt xp:key="changeSettlementAmt"></xc:ccChangeSettlementAmt>
</xp:this.facets>
</xe:dynamicContent>
</xp:view>
如果我是对的,则会选择所有节点,因为所有节点都具有与aim相同的page=“/xpSupervisor.xsp”。
因此,如果页面xpSupervisor.xsp处于打开状态,导航器将节点呈现为select。属性
selected
只是一个布尔值,指示是否选择了pageTreeNode
您应该查看属性
选择
。此属性与applicationLayout控件中的导航路径结合使用。属性selection
可以使用正则表达式来确定选择状态。尽管有两个很好的答案让我更接近,但我无法使用pageTreeNode使菜单工作。修复方法是切换到使用basicLeafNode,使用submittedValue并在导航器的onItemClick事件中打开正确的页面。我还在“selected”属性中添加了代码,以计算选择了哪个菜单项
我无法使context.getSubmittedValue()方法在所选属性中工作。我通过在事件中将其设置为sessionScope变量克服了这一问题。(由于某种原因,viewScope无法工作)
扩展库手册第244页的底部确认了此问题,但没有提供解决方案。即使我有这本书,希望这个可搜索的答案能帮助其他人避免我所经历的麻烦。答案也不错。这是真的,并导致我调整我的想法,最终导致我从使用PageTreeNode改为使用BasicLeafNode。看看我的答案,我希望它能帮助其他人避免我所经历的一切。
<xe:basicLeafNode label="Update ATM Information" submitValue="updateATM">
<xe:this.selected><![CDATA[#{javascript:if(sessionScope.menuValue == "updateATM"){
return true;
} else {
return false;
}}]]></xe:this.selected></xe:basicLeafNode>
sessionScope.menuValue = context.getSubmittedValue();
if (sessionScope.menuValue == "newATM") {
context.redirectToPage("xpSupervisor.xsp?content=newATM");
} else...