Как отложить открытие представления в Xpage

#xpages

#xpages

Вопрос:

На моей Xpage у меня есть критерии поиска в верхней части страницы и представление внизу. Пользователь выберет некоторые критерии поиска, а затем нажмет поиск, и я выполняю поиск FT в представлении.

Я хочу избежать загрузки представления при первом открытии xpage, поскольку это занимает много времени. Как я могу это сделать?

Ответ №1:

Используйте свойство rendered вашего элемента управления view. Верните false для отображаемого свойства, если поле поиска пустое, и верните true, если оно заполнено.

Пример:

 <xp:inputText
    id="inputText1"
    value="#{viewScope.search}">
</xp:inputText>
<xp:button
    value="Search"
    id="button1">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="partial"
        refreshId="viewForSearch">
    </xp:eventHandler>
</xp:button>
<xp:panel
    id="viewForSearch">
    <xp:viewPanel
        rows="30"
        id="viewPanel1"
        rendered="#{javascript:viewScope.search}">
        ... pager ... view ... columns ...
    </xp:viewPanel>
</xp:panel>
 

Поле поиска хранится в переменной области представления «поиск». Если оно пустое, то rendered="#{javascript:viewScope.search}" возвращает false, и представление не отображается. Как только пользователь вводит строку поиска и нажимает кнопку поиска #{javascript:viewScope.search} , возвращается true, и view становится видимым.

Частичное обновление панели управления представлением, нажав на кнопку поиска.

Комментарии:

1. Потрясающе. Это сработало отлично. Большое вам спасибо.