javascript - 使用 SessionScope 变量选择 DynamicContent

标签 javascript xpages dynamic-controls

在 XPage 上,我有一个导航器,它根据所选项目设置 sessionScope 变量。然后我在 SwitchFacet 中使用该值来显示几个不同 View 之一。这工作得很好,但我知道 switchFacet 加载所有 View 的整个树,而动态内容控件仅加载所选面板的树。因此,我使用以下代码在 XPage 上的 panelAll 内创建了一个动态内容控件(导航器对 panelAll onClick 进行了部分刷新):

<xp:panel id="panelAll" style="width:auto">
  <xe:dynamicContent id="dynamicContent1">
    getComponent("dynamicContent1").show(sessionScope.get("ssSelectedView");
    <xp:this.facets>
      <xp:panel xp:key="vwProfile">
        <xc:ccProfileView></xc:ccProfileView>
      </xp:panel>
      <xp:panel xp:key="vwPending">
        <xc:ccTransactionView></xc:ccTransactionView>
      </xp:panel>
      <xp:panel xp:key="vwAgentLog">
        <xc:ccAgentView></xc:ccAgentView>
      </xp:panel>

    </xp:this.facets>
  </xe:dynamicContent>
</xp:panel>

问题是 View 不会像 switchFacet 那样改变。我知道 sessionScope 变量 id 设置正确,并且 onClick 部分刷新应该刷新 panelAll 并选择要加载的不同面板,但它只显示 vwProfile View 。我还需要做些什么才能使动态内容发挥作用吗?

最佳答案

不幸的是,dynamicContent 控件不能用于部分更新,只能完全重新加载页面。几个月前我也尝试过同样的方法,但它对我来说也不起作用。

我使用解决方法将我的“动态内容”放入自定义控件中,并使用它们的 rendered 属性根据 sessionScope 变量的状态显示它们。

这并不完美,因为 XPages 引擎始终在其树中包含所有自定义控件的所有内容,但对于中等复杂的应用程序来说是可以的。

关于javascript - 使用 SessionScope 变量选择 DynamicContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438223/

相关文章:

css - 未为动态生成的控件恢复背景颜色 (ASP.NET)

javascript - 避免数组中出现双引号

javascript - 如何使用 ActiveDirectory 2 返回 AD 组的成员?

dojo - 将多值字段作为 View /网格处理的最佳方法

javascript - 仅使用 CSJS 获取单选按钮组值

css - 使用 CSS 调整 PlaceBarActions 在 xPages Ext Lib 应用程序布局控件中的位置

asp.net - 当用户控件中的数据列表中触发下拉事件时,动态添加的控件将被删除

C#动态创建控件问题

javascript - axios get 请求无法将 undefined 转换为对象

javascript - 我如何在 map 上显示观察位置经纬度