从HREF隐藏和显示XPages自定义控件

从HREF隐藏和显示XPages自定义控件,xpages,Xpages,在XPages应用程序中,我得到了以下导航栏的HTML代码,用于选择三个不同的自定义控件中的哪一个: <ul class="Navigation"> <li><a href="optionOne">Option One</a></li> <li><a href="optionTwo">Option Two</a></li> <l

在XPages应用程序中,我得到了以下导航栏的HTML代码,用于选择三个不同的自定义控件中的哪一个:

    <ul class="Navigation">
        <li><a href="optionOne">Option One</a></li>
        <li><a href="optionTwo">Option Two</a></li>
        <li><a href="optionThree">Option Three</a></li>
    </ul>
我知道很多通过按钮或代码显示或隐藏窗格、div或自定义控件的方法,但我不知道如何通过简单的HREF调用来实现。我尝试过使用dojo隐藏一个div,该div在CSJS中的按钮中工作,但在这里不工作,并使用CSJS设置一个sessionScope变量,当然该变量不起作用:

    <li><a href="javascript:dojo.byId('#{id:myDivTwo}').style.display='none'">Option One</a></li>
    <li><a href="javascript:sessionScope.candidateCC = 'optionTwo';">Option Two</a></li>

  • 我很感激你能帮我做这件事。非常感谢

    您可以使用面板隐藏整个
  • 元素:

    <xp:panel tagName="li" rendered="...">
    <a href="...">...</a>
    </xp:panel>
    
    
    

    如果要隐藏基于url的自定义控件,只需使用该面板元素的逻辑计算呈现属性。

    。我相信这可以通过ext库或9.0x附带的动态内容控件来实现。我可能把名字弄错了,但应该很接近。我认为ext库演示应用程序中有一个例子,您可以从OpenNTF获得

    使用XSP.partialRefreshGet()或XSP.partialRefreshPost()使用客户端的所有自定义控件刷新面板。使用当前值设置参数“选项”

    javascript:XSP.partialRefreshGet("#{id:panelAll}", {params: {'option': 'One'}}
    
    刷新服务器端的面板,使用

    param.option == 'One'
    
    并相应地渲染子面板

    如果必须的话

    href="optionOne"
    
    或者类似的,你可以试试

    href="currentpage.xsp?nav=optionOne"
    

    并在代码中使用param.nav来确定选择了哪个选项。与克努特的想法非常相似,但随后进行了全面更新。

    非常感谢Oliver Busse的回复。我想我的问题可能不清楚。我不是试图隐藏无序列表中的
  • 元素,而是试图根据单击的
  • 元素选择要显示的自定义控件。自定义控件位于包含无序列表的HTML代码下方的窗格中。当XPage打开时,除了一个默认自定义控件外,它们都将被隐藏,然后用户可以通过单击相应的
  • 标记来选择或显示其他自定义控件。但是动态内容控件不在组件树中存储自定义控件(或每个方面的内容)。因此,这是一种更值得推荐的方法。要显示的方面可以通过客户端或服务器端代码显示,也可以通过href进行管理。