我在xpage上放置了许多自定义控件。我希望这些控件按照备注文档中的设置顺序显示
所以我的xpage在DDE中可能看起来像这样
CustomControl1
CustomControl2
CustomControl3
CustomControl4
但是当在网页上显示自定义控件时,自定义控件应按以下顺序显示(基于设置文档)
CustomControl4
CustomControl1
CustomControl2
CustomControl3
任何人都有任何想法如何实现这一点(服务器端)
答案 0 :(得分:3)
在不知道项目的真正痛苦的情况下,我只能假设需要在运行时定义个别位置,或者类似的东西。
通常:控制页面的布局是一个纯CSS作业。在结果页面上,几乎任何东西都可以放置在页面范围内的任何位置,并且在设计时将其放置在何处并不重要。因此,如果您将自定义控件放在自己的容器(面板/ div)中,那么您应该全部设置。您可以在CSS中定义定位类,然后让一些SSJS代码决定将哪个类分配给div。
例如,如果您对一周中的每一天都有一个自定义控件,并且您总是希望将当前日期置于最顶层位置,则可以在“.today”中定义7个css类,“。 todayPlus1“,”。dayPlus2“......”。todayPlus6“。写下每个班级的定位规则。最后根据当前工作日计算每个面板的styleClass属性。
答案 1 :(得分:3)
您可以将xp:switchFacet
与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
或document
的数据,而不是xsp.propertie
。此代码的输出是Control1 Control3 Control2,在您的Designer中,您可以按照以下顺序在switchFacet中控制控件:Control1 Control2 Control3。