想要自动计算XPage上的pageTitle属性,只显示XPage名称。我想在Application Layout自定义控件上对此进行一次编码,因此我添加控件的每个页面都可以获得属性计算的好处。到目前为止,我在CC上有一些SSJS来计算页面标题并分配给viewScope变量:
var path:String = context.getUrl().getPath();
var xpageName:String = @RightBack(path,"/");
viewScope.xpageName = xpageName;
return xpageName
在我添加CC的任何XPage上,我只需将viewScope变量的值返回到pageTitle属性,如下所示:
viewScope.xpageName
然而,想知道如何从CC自动设置它而不需要上面的那一行。可以这样做吗?
答案 0 :(得分:3)
您还可以在主题中设置pageTitle。 Julian Buss网站上的这个页面显示了默认值http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_themes的代码。因为override设置为false,所以您可以在您选择的任何自定义控件或XPage上覆盖它。这是我在所有应用程序中设置的主题属性之一。
答案 1 :(得分:2)
你可以这样做,因为Declan在自定义控件的All Properties属性中说。我更喜欢使用这样的控制块将它放在数据库主题中:
<control override="true">
<name>ViewRoot</name>
<property>
<name>pageTitle</name>
<value>#{javascript:
var path:String = context.getUrl().getPath();
var xpageName:String = @RightBack(path,"/");
viewScope.xpageName = xpageName;
return xpageName
}</value>
</property>
</control>
然后,这会强制您的代码对数据库中提供的所有XPage使用ssjs代码。我实际上更喜欢返回值为:
return database.getTitle() + " : " + xpageName;
享受
/ Newbs
答案 2 :(得分:0)
在自定义控件的“所有属性”面板中,您可以使用“pageTitle”属性。设置后,只要在主XPage上没有设置pageTitle属性,并且只要同一页面上没有其他自定义控件设置了属性,它就会用于页面标题。