This question on StackOverflow让我对主题感兴趣。但是问题中的示例只是将主题文件中的CSS类分配给themeId,而themeId又分配给XPage上具有相应themeId的元素。我也可以直接将类名分配给XPage中的组件。
所以我的第一个问题是主题给XPage带来了什么好处?
我试图探索可以通过主题分配哪些其他属性,似乎我们可以在主题文件中分配其他属性,如valign
和style
,如下所示:
<control>
<name>HtmlTd</name>
<property>
<name>styleClass</name>
<value>tdclass</value>
</property>
<property>
<name>style</name>
<value>font-family: Courier</value>
</property>
<property>
<name>valign</name>
<value>top</value>
</property>
</control>
上述代码实际上为XPage中的所有valign
标记设置了style
和<td>
。所以我的第二个问题是所有属性都可以通过主题设置?
答案 0 :(得分:4)
主题非常强大。几乎XPages中的每个控件都是really a bean,这意味着您可以使用主题设置几乎所有属性(请参阅Paul的答案中的澄清)。
这里有一些有用的资源:
答案 1 :(得分:2)
为了澄清Per的答案,你可以设置几乎一切。那是因为主题在渲染响应阶段应用。
您无法覆盖XPage上的属性,SSJS设置为在页面加载时运行。那是因为设置了静态值,因此不会应用运行时绑定。
您无法在渲染响应之前设置任何需要知道的内容,例如:重复控件的var属性。
渲染响应阶段是性能更好的原因。如果使用SSJS计算XPage上的值,则在部分刷新期间会多次计算它。如果它在主题中,则仅在渲染响应期间计算。
要查看实际主题的示例,请查看OpenNTF并查看由Tim和XPage帮助应用程序提供的dPloy项目。