0

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

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

自定义控件
1 自定义控件
2 自定义控件3
自定义控件4

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

自定义控件
4 自定义控件
1 自定义控件2
自定义控件3

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

4

2 回答 2

3

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

一般来说:控制页面布局是一项纯 CSS 工作。在生成的页面上,几乎任何东西都可以放置在页面范围内的几乎任何地方,并且在设计时放置在哪里都没有关系。因此,如果您将自定义控件包含在它们自己的容器(面板/div)中,那么您应该一切就绪。您可以在 CSS 中定义定位类,然后让一些 SSJS 代码决定将哪个类分配给哪个 div。

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

于 2014-01-14T09:13:02.740 回答
3

您可以将xp:switchFaceta 与 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。

于 2014-01-14T09:17:10.633 回答