我有一个基于这个惯例的传统菜单
<ul>
<li><xp:link>menu link 1</xp:menulink></li>
<li><xp:menulink>menu link 2</xp:menulink></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想根据某些逻辑有选择地渲染菜单链接2.我可以渲染<xp:link>罚款,但由于它<li>是HTML标记而不是XPages标记,因此无法控制渲染.
我注意到有一个tagName属性<xp:text>但不是for <xp:link>.请参阅:http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=4EB7314545EE0C19852578CB0066CE4C
在不使用重复等的情况下管理它的最简单方法是什么?
您还可以将整个<li>...</li>标记包装在其<xp:panel>上具有呈现脚本的标记中.不要给xp:panel一个ID,也不会向浏览器发送额外的代码.
如果您使用的是Extlib或UP1,那么您也可以使用该<xe:listcontainer>标签.它将每个直接子项作为列表项呈现,因此您最终会得到类似于...的代码.
<xe:listcontainer>
<xp:link> ... </xp:link>
<xp:link rendered="renderscript"> ... </xp:link>
<xp:link> ... </xp:link>
</xe:listcontainer>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您无需在代码中添加<ul>或<li>标记,ExtLib将为您照顾.
使用面板并将tagName设置为"li"(自8.5.3开始以来),而不是LI标记:
<ul>
<li>
<xp:link>menu link 1</xp:link>
</li>
<xp:panel
rendered="#{test == true}"
tagName="li">
<xp:link>menu link 2</xp:link>
</xp:panel>
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1492 次 |
| 最近记录: |