2015-04-24 6 views
0

При использовании элемента управления «Pager Add Rows» вместе с элементом управления «Просмотр данных» в приложении Domino XPages пользователь не может открывать записи, которые были добавлены щелчком ссылку «Показать больше ...» элемента управления пейджером.Pager Add Rows Control Обновление Ajax не работает должным образом с контролем представления данных

Причина такого поведения заключается в том, что URL-адреса записей, которые добавлены элементом управления пейджером, отличаются от URL-адресов исходных записей, которые были загружены изначально.

Чтобы продемонстрировать это, я создал очень простое примерное приложение. Он содержит единую форму «Документ» и единый вид «($ All)». Существует два XPages - один называется «Документ», а один - «Вид». XPage «View» содержит только элемент управления «Просмотр данных» с набором итоговых столбцов и элементом «Pager Add Rows». Вот исходный код XPage «View»:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex"> 
    <xe:dataView id="dataView1"> 
     <xp:this.facets> 
      <xe:pagerAddRows id="pagerAddRows1" xp:key="pagerTop"></xe:pagerAddRows> 
     </xp:this.facets> 
     <xe:this.data> 
      <xp:dominoView var="view1" viewName="($All)"></xp:dominoView> 
     </xe:this.data> 
     <xe:this.summaryColumn> 
      <xe:viewSummaryColumn columnName="Subject"></xe:viewSummaryColumn> 
     </xe:this.summaryColumn> 
    </xe:dataView> 
</xp:view> 

При открытии XPage в браузере (и у вас есть более 30 документов в базе данных) по URL одного из первых 30 записей является то, как

/db.nsf/%24%24OpenDominoDocument.xsp?documentId=67D5CBA1EAFDF2B0C1257E310049545A & действие = editDocument

При нажатии на ссылку «Показать больше ...» ссылка контроля пейджером URL'ы, дополнительные записи являются что-то вроде

/db.nsf/ View.xsp /%24%24OpenDominoDocument.xsp?documentId=889BA0EEE8709BBCC1257E3100495497 & действия = editDocument

Когда я указать XPage открывать документы (Document.xsp), то URL-адрес выглядит как это для оригинальных записей:

/db.nsf/Document.xsp?documentId=67D5CBA1EAFDF2B0C1257E310049545A & действие = editDocument

и для дополнительных записей:

/db.nsf/ View.xsp /Document.xsp?documentId=889BA0EEE8709BBCC1257E3100495497 & действие = editDocument

Domino вставляет "/ View.xsp" в URL'о, дополнительных записях.

После нажатия одной из ссылок дополнительных записей страница перезагружается, и теперь все ссылки содержат дополнение «View.xsp».

Я вижу это с версиями 11 и 12 версии 9.0.1 extlib.

ответ

0

Пейджер работает правильно, когда я установил его свойство «refreshPage» истинно, поэтому проблема, как представляется, AJAX обновить пейджер выполняет без этого свойства:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex"> 
    <xe:dataView id="dataView1" pageName="/Document.xsp"> 
     <xp:this.facets> 
      <xe:pagerAddRows id="pagerAddRows1" xp:key="pagerTop" 
       for="dataView1" refreshPage="true" partialRefresh="true" refreshId="dataView1"> 
      </xe:pagerAddRows> 
     </xp:this.facets> 
     <xe:this.data> 
      <xp:dominoView var="view1" viewName="($All)"></xp:dominoView> 
     </xe:this.data> 
     <xe:this.summaryColumn> 
      <xe:viewSummaryColumn columnName="Subject"></xe:viewSummaryColumn> 
     </xe:this.summaryColumn> 
    </xe:dataView> 
</xp:view>