Как установить свойство pageTitle для всех страниц, которые используют пользовательский элемент управления?
Хотел бы автоматически вычислить свойство pageTitle на XPage, чтобы просто показать имя XPage. Я хочу написать это один раз в пользовательском элементе управления "Макет приложения", чтобы каждая страница, на которую я добавлял элемент управления, получала выгоду от вычисления свойства. До сих пор у меня на СС было несколько SSJS, чтобы вычислить заголовок страницы и присвоить переменную viewScope:
var path:String = context.getUrl().getPath();
var xpageName:String = @RightBack(path,"/");
viewScope.xpageName = xpageName;
return xpageName
В любом XPage, где я добавляю CC, я могу просто вернуть значение переменной viewScope в свойство pageTitle следующим образом:
viewScope.xpageName
Тем не менее, было интересно, как автоматически установить его из CC без необходимости в строке выше. Можно ли это сделать?
3 ответа
Вы также можете установить заголовок страницы в теме. На этой странице с сайта Джулиана Бусса показан код по умолчанию для значения http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_themes. Поскольку для override установлено значение false, вы можете переопределить его для любого пользовательского элемента управления или XPage по вашему выбору. Это одно из свойств темы, которое я установил во всех приложениях.
Вы можете сделать это, как говорит Деклан, в свойстве "Все свойства" пользовательского элемента управления. Я предпочитаю помещать это в тему базы данных, используя блок управления, например так:
<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>
Затем это заставляет ваш код использовать код ssjs для всех XPages, доставленных в базу данных. Я на самом деле предпочитаю, чтобы возвращаемое значение было:
return database.getTitle() + " : " + xpageName;
наслаждаться
/Newbs
На панели "Все свойства" пользовательского элемента управления есть свойство "pageTitle", которое вы можете использовать. После установки он будет использоваться для заголовка страницы до тех пор, пока не установлено свойство pageTitle в основном XPage, и пока у другого настраиваемого элемента управления на той же странице не установлено свойство.