我正在使用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
)我的属性viewRoot
,但它总是覆盖它,所以我的<body>
看起来像这样:
<body class="claro"...
而不是:
<body class="xsp lotusui claro"...
我也遇到了其他<controls>/<properties>
的问题。
我目前的解决方案是,我将属性值设置为xsp lotusui claro
,而不仅仅是claro
,以防止我的身体丢失所有oneui / xsp样式。任何人都知道为什么mode =“concat”在我的例子中不起作用?还是这种模式换别的?
我找不到所有主题属性的良好文档,所以如果有人有一个很好的链接,我会很高兴,如果他可以分享它。
答案 0 :(得分:0)
编辑: 因为我现在正在制作一个XPages主题,所以我对此更加好奇并且玩了一点。据我所知,你的代码工作得非常好。在我的测试中,我经历过您可以将样式定义连接到预定义的styleClass。因此,您可以创建一个XPage并使用在XPage中预定义的body-styleClass定义这样的正文样式类:
<?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>
使用主题,您现在可以添加另一个(甚至多个)styleClasses:
<control>
<name>ViewRoot</name>
<property mode="concat">
<name>styleClass</name>
<value>claro</value>
</property>
</control>
在您的场景中,您想要连接添加为“默认”styleClass的styleClass定义 - 这似乎是一个问题或冲突。 所以,现在这是我的结论。如果有其他人有更多更深刻的见解,我也会对更深入地了解主题和继承感兴趣。
旧评论:
据我所知,要仅添加属性,您应该将控件的override-property设置为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>
希望有用和有帮助,
迈克尔
答案 1 :(得分:0)
我知道它已经有一段时间了,但你还记得&#34;延伸&#34;你想要包含原始类的主题?即:
<theme extends="oneui">
<control….>…</control>…
</theme>