在网页上显示自定义控件的顺序不同于DDE - Xpages中的布局

时间:2014-01-14 07:48:01

标签: layout xpages dde

我在xpage上放置了许多自定义控件。我希望这些控件按照备注文档中的设置顺序显示

所以我的xpage在DDE中可能看起来像这样

CustomControl1
CustomControl2
CustomControl3
CustomControl4

但是当在网页上显示自定义控件时,自定义控件应按以下顺序显示(基于设置文档)

CustomControl4
CustomControl1
CustomControl2
CustomControl3

任何人都有任何想法如何实现这一点(服务器端)

2 个答案:

答案 0 :(得分:3)

在不知道项目的真正痛苦的情况下,我只能假设需要在运行时定义个别位置,或者类似的东西。

通常:控制页面的布局是一个纯CSS作业。在结果页面上,几乎任何东西都可以放置在页面范围内的任何位置,并且在设计时将其放置在何处并不重要。因此,如果您将自定义控件放在自己的容器(面板/ div)中,那么您应该全部设置。您可以在CSS中定义定位类,然后让一些SSJS代码决定将哪个类分配给div。

例如,如果您对一周中的每一天都有一个自定义控件,并且您总是希望将当前日期置于最顶层位置,则可以在“.today”中定义7个css类,“。 todayPlus1“,”。dayPlus2“......”。todayPlus6“。写下每个班级的定位规则。最后根据当前工作日计算每个面板的styleClass属性。

答案 1 :(得分:3)

您可以将xp:switchFacetxp: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 arrdocument的数据,而不是xsp.propertie。此代码的输出是Control1 Control3 Control2,在您的Designer中,您可以按照以下顺序在switchFacet中控制控件:Control1 Control2 Control3。