Dojo xpages选项卡容器部分刷新

Dojo xpages选项卡容器部分刷新,dojo,xpages,Dojo,Xpages,我在包含4个选项卡的选项卡容器上进行部分刷新: <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="djContentPane1"> <xp:this.action><![CDATA[#{javascript:vi

我在包含4个选项卡的选项卡容器上进行部分刷新:

 <xp:eventHandler event="onchange" submit="true"
                                    refreshMode="partial" refreshId="djContentPane1">
                                    <xp:this.action><![CDATA[#{javascript:viewScope.put("hideRelatedDocuments", true);}]]></xp:this.action>
   </xp:eventHandler>

然后,viewScope用于我想要隐藏/显示的一些字段。这些字段位于选项卡容器上

在此之后,选项卡容器看起来很奇怪:

有什么问题吗?谢谢你抽出时间

我尝试添加一个主面板,在这个面板上添加了TabContainer。然后,我更新了面板,但仍然没有工作。结果是:


这是因为您正在刷新内容窗格。我还没有确定原因,但是刷新Dojo选项卡容器外的区域或要刷新的选项卡容器窗格内的面板/div

我怀疑这与Dojo处理HTML响应有关。作为一个客户端框架,我不认为Dojo真的能够通过注入现有页面来处理替换HTML的问题


Tommy Valand添加了一个代码片段来处理此问题:

如果需要,可以根据combobox字段中的当前值刷新字段以显示/隐藏它们

  • 将字段放入具有id的面板中,并始终进行渲染
  • 将面板放入选项卡面板中
  • 使用
    XSP.partialRefreshPost
    s刷新组合框的onchange事件上的所有面板

查找示例代码。

我明白了。问题是我想显示/隐藏的字段都在同一个内容窗格中,但在不同的选项卡上。我想如果我刷新contentPane,它会工作的。刷新选项卡容器外的面板可能会工作。否则,您可能需要使用eventHandlerI尝试刷新面板的onComplete事件链接刷新。我已经用图片更新了这个问题,对我来说仍然没有工作。谢谢,我以前看过这个链接。我从未使用过Dojo事件,也不知道如何使用该片段。似乎我必须花更多的时间来理解它。我添加了来自的函数,然后在addOnLoad属性中添加了来自链接的代码,但是我得到:dojo not found。似乎刷新contentPane太难用简单的代码实现。