我想基于某些条件在XPage上包含自定义控件。这些条件取决于某些用户选择字段。所以当用户更改他的选择时,我正在填充自定义控件名称,并尝试将其包含在XPage中。 我阅读了一下,但它在页面加载过程中加载了给定页面,我无法动态加载它。在XPage上动态包含自定义控件
示例代码片段:
<xp:button id="button3" value="Change Page to Include CC 2">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" disableValidators="true" refreshId="pnlRefresh">
<xp:this.action><![CDATA[#{javascript:sessionScope.ccPageName = "content_CC2"}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:panel id="pnlRefresh">
<xp:include>
<xp:this.pageName><![CDATA[${javascript:sessionScope.ccPageName + ".xsp";}]]> </xp:this.pageName>
</xp:include>
</xp:panel>
是否有可能实现这一要求?或者使用JAVA,我们如何在XPage代码中动态注入页面?
我不想使用动态内容控制或从ExtLib开关控制,因为我需要包括所有必需的自定义控件(硬编码),那么只有我可以根据标准显示特定的CC。
请帮帮我。
如果你注意到'xp:include'组件的代码,你会在'pageName'的公式前面看到**'$'**。这表明此公式将在页面加载时进行评估。在XPage中没有任何选项可以根据需要动态评估此公式。你可以看看[Keith Strickland的博客,他在那里解释了组件注入](http://xprentice.gbs.com/A55BAC/keithstric.nsf/d6plinks/KSTD-8MGJTA)。可能这会给你一些想法。 – Naveen
为什么你不想使用动态内容控制?为什么你需要包含所有必需的自定义控件?如果您仍然包含所需的自定义控件,则可以使用局部刷新来渲染它们。 –
其实,我不想使用动态内容控件。我想根据用户选择加载自定义控件。所以需求如下:当页面最初加载时,页面上没有加载自定义控件,用户点击一些参数,然后加载相应的自定义控件。 –