我在 xpage 上布置了许多自定义控件。我希望这些控件按照笔记文档中的设置顺序显示
所以我的 xpage 在 DDE 中可能看起来像这样
自定义控件
1 自定义控件
2 自定义控件3
自定义控件4
但是当在网页上显示自定义控件时,应按以下顺序显示自定义控件(基于设置文档)
自定义控件
4 自定义控件
1 自定义控件2
自定义控件3
任何人都有任何想法如何实现这一点(服务器端)
在不知道您项目的真正痛苦的情况下,我只能假设需要在运行时定义各个位置,或者类似的东西。
一般来说:控制页面布局是一项纯 CSS 工作。在生成的页面上,几乎任何东西都可以放置在页面范围内的几乎任何地方,并且在设计时放置在哪里都没有关系。因此,如果您将自定义控件包含在它们自己的容器(面板/div)中,那么您应该一切就绪。您可以在 CSS 中定义定位类,然后让一些 SSJS 代码决定将哪个类分配给哪个 div。
例如,如果您对一周中的每一天都有一个自定义控件,并且您总是希望当天在最顶部的位置,那么您可以定义 7 个 css 类,如“.today”、“.todayPlus1”、 “.todayPlus2”...“.todayPlus6”。为每个班级写下你的定位规则。最后根据当前工作日计算每个面板的 styleClass 属性。
您可以将xp:switchFacet
a 与 a 结合使用xp:repeat
来计算运行时的顺序,如下所示:
<xp:repeat
id="repeat1"
rows="30"
var="rowEntry">
<xp:this.value><![CDATA[#{javascript:var arr = ["Control1","Control3","Control2"];return arr;}]]></xp:this.value>
<xe:switchFacet
id="switchFacet1"
selectedFacet="#{javascript:rowEntry}">
<xp:this.facets>
<xp:panel xp:key="Control1">Control1</xp:panel>
<xp:panel xp:key="Control2">Control2</xp:panel>
<xp:panel xp:key="Control3">Control3</xp:panel>
</xp:this.facets>
</xe:switchFacet>
</xp:repeat>
Array arr
您可以使用基于 adocument
或的数据来代替xsp.propertie
。此代码的输出是 Control1 Control3 Control2,在您的设计器中,您按以下顺序在 switchFacet 中有控件:Control1 Control2 Control3。