如何隐藏带有<;的菜单项;李>;XPages中的标记

如何隐藏带有<;的菜单项;李>;XPages中的标记,xpages,Xpages,我有一份传统的菜单,是根据这个惯例为我们准备的 <ul> <li><xp:link>menu link 1</xp:menulink></li> <li><xp:menulink>menu link 2</xp:menulink></li> </ul> 菜单链接1 菜单链接2 我想根据一些逻辑选择性地呈现菜单链接2。 我可以很好地渲染,但由于是一个HTML标记而不是一个

我有一份传统的菜单,是根据这个惯例为我们准备的

<ul>
<li><xp:link>menu link 1</xp:menulink></li>
<li><xp:menulink>menu link 2</xp:menulink></li>
</ul>
  • 菜单链接1
  • 菜单链接2
我想根据一些逻辑选择性地呈现菜单链接2。 我可以很好地渲染
,但由于
  • 是一个HTML标记而不是一个XPages标记,因此无法控制渲染

    我注意到有一个标记名属性用于
    ,但不用于
    。 见:

    在不使用重复等的情况下,最简单的管理方法是什么

    <ul>
        <li>Static item 1</li>
        <xp:text escape="false" id="computedField1" tagName="li" rendered="false">
            <xp:this.value><![CDATA[#{javascript:'<a href="http://XPages.info">menu link 2</a>'}]]></xp:this.value>
        </xp:text>
        <li>Static item 3</li>
    </ul>
    
    • 静态项目1
    • 静态项目3

    当然,您可以在xp:text上计算呈现的标记。

    如果您不担心代码是否显示您始终可以使用ssjs系统地更改li上的类

    <ul>
    <li class="#{javascript:return myclassname;}"><xp:link>menu link 1</xp:menulink></li>
    <li><xp:menulink>menu link 2</xp:menulink></li>
    </ul>
    
      菜单链接1
    • 菜单链接2

    您还可以将整个
  • ..
  • 标记包装在带有渲染脚本的
    标记中。不要给xp:panel一个ID,并且不会向浏览器发送额外的代码

    如果您使用的是Extlib或UP1,那么也可以使用
    标记。它将每个直接子条目呈现为一个列表项,因此您将得到类似于..的代码

    <xe:listcontainer>
      <xp:link> ... </xp:link>
      <xp:link rendered="renderscript"> ... </xp:link>
      <xp:link> ... </xp:link>
    </xe:listcontainer>
    
    
    ... 
    ... 
    ... 
    

    在这种情况下,您无需在代码中添加
  • 标记,ExtLib将为您处理这些标记。

    使用面板将标记名设置为“li”(自8.5.3起新增):

    • 菜单链接1
    • 菜单链接2

    我过去使用过xp:span,它工作得很好

        <xp:span>
           <xp:this.rendered><![CDATA[#{javascript:document1.isEditable()}]]></xp:this.rendered>
           <li>YOUR TEXT HERE</li>
        </xp:span>
    
    
    
  • 你的文字在这里

  • 谢谢,UP1的想法看起来不错。使用这么多面板的想法似乎非常“昂贵”
        <xp:span>
           <xp:this.rendered><![CDATA[#{javascript:document1.isEditable()}]]></xp:this.rendered>
           <li>YOUR TEXT HERE</li>
        </xp:span>