Элемент управления добавлением строк пейджера Ajax-обновление не работает должным образом с элементом управления представлением данных

При использовании элемента управления «Пейджер Добавить строки» вместе с элементом управления «Просмотр данных» в приложении Domino XPages пользователь не может открывать записи, которые были добавлены путем нажатия на ссылку «Показать больше…» элемента управления пейджером.

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

Чтобы продемонстрировать это, я создал очень простой пример приложения. Он содержит одну форму «Документ» и одно представление «($ All)». Есть два XPage — один называется «Документ», а другой — «Просмотр». «Представление» XPage содержит только элемент управления «Просмотр данных» с набором сводных столбцов и элемент управления «Пейджер добавления строк». Вот исходный код 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&action=editDocument

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

/db.nsf/View.xsp/%24%24OpenDominoDocument.xsp?documentId=889BA0EEE8709BBCC1257E3100495497&action=editDocument

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

/db.nsf/Document.xsp?documentId=67D5CBA1EAFDF2B0C1257E310049545A&action=editDocument

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

/db.nsf/View.xsp/Document.xsp?documentId=889BA0EEE8709BBCC1257E3100495497&action=editDocument

Domino вставляет «View.xsp/» в URL-адреса дополнительных записей.

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

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


person Jens Polster    schedule 24.04.2015    source источник


Ответы (1)


Пейджер работает правильно, когда я устанавливаю для его свойства "refreshPage" значение true, поэтому проблема, похоже, заключается в обновлении 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>
person Jens Polster    schedule 24.04.2015