Я использую primefaces datatable
с помощью фильтрации столбцов и глобальной фильтрации.
В нашем приложении мы используем пользовательский <p:ajaxStatus>
чтобы уловить все вызовы ajax и показать сообщение "Please wait.."
до тех пор, пока запрос не будет завершен. Это блокирует полный пользовательский интерфейс.
Это идеально соответствует всем сценариям, кроме тех, которые я буду описывать.
Я хочу выполнить фильтрацию столбцов в datatable, и если я введу какой-то текст, вызов ajax будет запущен, а экран заблокирован настраиваемым диалоговым окном ajax с сообщением "Please wait.."
Но я не хочу, чтобы эти конкретные вызовы ajax были захвачены глобальным ajax. если мы используем атрибут global="false"
то он не будет выполнять глобальный ajax.
Но в datatable я не могу дать global="false"
в <p:column >
как свойство.
В этом случае я просто хочу показать ему загрузочное изображение в правом нижнем углу, как и все связанные с фильмом фильтрации. проверьте следующую ссылку, как я хочу реализовать.
В приведенном выше примере код не указан. Итак, как я могу это реализовать?
Любая идея высоко ценится.
Чтобы уловить все запросы ajax, мы определили <p:ajaxStatus>
на главной странице макета.
Который захватывает все запросы ajax.
Поэтому, чтобы преодолеть это, я определил одну и ту же страницу макета на моей включенной странице и удалил специально определенный <p:ajaxStatus>
который блокирует полный пользовательский интерфейс. Проблемный код на странице макета:
<div id="container">
<div id="content">
<ui:insert name="content" />
</div>
<ui:insert name="dialog">
</ui:insert>
</div>
в включенной странице мы определяем контент как
<ui:define name="content">
<h1>Test Application</h1>
</ui:define>
Решение
<p:ajaxStatus style="width:64px;height:64px;position:fixed;right:5px;bottom:5px">
<f:facet name="start">
<p:graphicImage name="loading.gif" library="images"></p:graphicImage>
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
<div id="container">
<div id="content">
<ui:insert name="content" >
<h1> Test Application </h1>
</ui:insert>
</div>
</div>
Таким образом, здесь любой запрос ajax с этой страницы будет зависеть от настроек, определенных на этой странице. Это очень помогло мне.
Надеюсь, поможет