0

我正在为我的XPage应用程序使用主题来设置全局外观设置,因此我的viewRoot外观配置如下:

<control dojoTheme="true">
    <name>ViewRoot</name>
    <property>
        <name>pageIcon</name>
        <value>/favicon.ico</value>
    </property>
    <property>
            <name>style</name>
                <value>#{javascript:
                     var response = facesContext.getExternalContext().getResponse();
                    response.setHeader("X-UA-Compatible", "IE=8");
                }</value>
            </property>
            <property mode="concat">
                <name>styleClass</name>
                <value>claro</value>
            </property>
</control>

虽然我使用了mode="concat",我认为只是将array.concat我的属性添加(如)到 myviewRoot但它总是覆盖它,所以我<body>看起来像这样:

<body class="claro"...代替:
<body class="xsp lotusui claro"...

我和其他人也遇到过这个问题<controls>/<properties>

我目前的解决方案是我将属性值设置为xsp lotusui claro不仅是claro为了防止我的身体失去所有 oneui/xsp 样式。任何人都知道为什么 mode="concat" 在我的示例中不起作用?或者这种模式是为了别的什么?

我找不到所有主题属性的好文档,所以如果有人有一个好的链接,如果他能分享它,我会很高兴。

4

2 回答 2

0

编辑:因为我现在也在研究 XPages 主题,所以我对此更加好奇并玩了一点。据我所知,您的代码运行良好。在我的测试中,我体验到您可以将样式定义连接到预定义的样式类。因此,您可以创建一个 XPage 并使用在 XPage 中预定义的 body-styleClass 来定义一个像这样的 body 样式类:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" styleClass="mystyle">
<xp:button value="Label" id="button1" themeId="bt"
    styleClass="oink">
</xp:button>
</xp:view>

使用主题,您现在可以添加另一个(甚至多个)样式类:

<control>
    <name>ViewRoot</name>
    <property mode="concat">
        <name>styleClass</name>
        <value>claro</value>
    </property>
</control>

在您的场景中,您想要连接作为“默认” styleClass 添加的 styleClass 定义 - 这似乎是一个问题或冲突。所以,现在这是我的结论。如果还有其他人有更多和更深入的见解,我也会对主题和继承的更深入见解感兴趣。

旧评论:
据我所知,仅添加属性,您应该将控件的覆盖属性设置为 false。

示例(您的代码已更改):

<control dojoTheme="true" override="false">
<name>ViewRoot</name>
<property>
    <name>pageIcon</name>
    <value>/favicon.ico</value>
</property>
<property>
        <name>style</name>
            <value>#{javascript:
                 var response = facesContext.getExternalContext().getResponse();
                response.setHeader("X-UA-Compatible", "IE=8");
            }</value>
        </property>
        <property mode="concat">
            <name>styleClass</name>
            <value>claro</value>
        </property>

希望有效并有所帮助,

迈克尔

于 2013-08-26T09:21:32.217 回答
0

我知道已经有一段时间了,但是您还记得“扩展”您想要包含原始课程的主题吗?IE:

<theme extends="oneui">
  <control….>…&lt;/control>…
</theme>
于 2014-09-18T20:18:28.173 回答