如何为使用自定义控件的所有页面设置pageTitle属性?

时间:2012-08-03 13:31:12

标签: xpages xpages-ssjs xpages-extlib

想要自动计算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自动设置它而不需要上面的那一行。可以这样做吗?

3 个答案:

答案 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属性,并且只要同一页面上没有其他自定义控件设置了属性,它就会用于页面标题。

相关问题