2016-04-05 4 views
0

Я хотел бы вставить ссылку с обработчиком события в первый тег <th> в фасет заголовка. Смотрите пример кода ниже:XPages repeat control header facet

<xp:this.facets> 
<xp:text disableTheme="true" xp:key="header" escape="false"> 
<xp:this.value><![CDATA[ 
<table class="table table-striped table-hover"> 
<thead> 
<tr> 
<th> 
<xp:link escape="true" text="" id="link1"> 
    <i id="myIconLink" class="fa fa-square-o fa-lg text-success"></i> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="tab2Panel"> 
    <xp:this.action><![CDATA[#{javascript: 
    sessionScope.selectAll = "1"; 
    }]]></xp:this.action> 
    </xp:eventHandler> 

</xp:link>         
</th> 
<th>Project Title</th> 
<th>Type of Expenditure</th>  
<th>Plan Amount</th> 
<th>Fiscal Year</th>  
</tr> 
</thead> 
<tbody>]]> 
</xp:this.value> 
</xp:text> 
<xp:text disableTheme="true" xp:key="footer" 
escape="false"> 
<xp:this.value><![CDATA[ 
</tbody> 
</table>]]></xp:this.value> 
</xp:text> 
</xp:this.facets> 

Ошибки я получаю:

enter image description here

Кто-нибудь есть какие-либо предложения о том, как это исправить?

ответ

1

Вы не можете вставлять теги XPages внутри свойства value вычислимого поля. Любые теги XPages должны быть преобразованы в объекты Java компилятором, но вычисляемые значения оцениваются во время выполнения.

Существует два возможных подхода. Создайте ссылку как ссылку HTML, вызывающую службу JSON RPC http://www.notesin9.com/2014/05/21/tim-explains-json-rpc-codefortim/. Это гарантирует, что HTML в графе заголовка - лучшая практика.

Другое - использовать xp: div для фасета вместо текста xp: text, а затем использовать компоненты HTML или XPages по мере необходимости. Вероятно, это может быть более простой вариант (если вы полностью не знакомы с сервисом JSON RPC), но повлияет на вывод HTML.

+0

Спасибо, Пол. Я просто обошел проблему, избавившись от граней верхнего и нижнего колонтитулов :) –

+0

Осторожный Дэн - я согласен, что фасет выглядит отстойным, но пропуская их и помещая повторный контроль внутри тегов

, можно создать недопустимый HTML и, возможно, другие проблемы. –

+1

FYI, чтобы избежать xp: div, влияющего на HTML, вы можете использовать xp: panel disableOutputTag = "true", который выведет содержимое панели без контейнера div. Свойство disableOutputTag было добавлено в 8.5.3. –

Смежные вопросы