Блокировка дочернего / включающего компонента итерационных компонентов, таких как p:dataTable, с использованием p:blockUI или pe:blockUI не работает
Я нацеливаюсь на <p:dataTable>
быть заблокирован <pe:blockUI>
следующее.
<pe:blockUI target="dataTable" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<p:commandLink id="link" value="Link" onstart="PF('blockUIWidget').block()" oncomplete="PF('blockUIWidget').unblock()"/>
</p:column>
</p:dataTable>
Естественно, это хорошо работает.
Мне не нужно ориентироваться на всю таблицу данных, а только на ссылку внутри таблицы. Следующая попытка сделать это не удалась.
<pe:blockUI target="dataTable:link" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>
Здесь значение target
атрибут был изменен с dataTable
в dataTable:link
чтобы сделать это, обратитесь к ссылке (таблица данных остается стационарной).
В этом случае он остается немым. Ни ошибок в консоли браузера, ни каких-либо исключений не происходит.
То же самое происходит с <p:blockUI>
, Следующая попытка работает так, как она предназначена.
<p:blockUI block="dataTable" widgetVar="blockUI"/>
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<p:commandLink id="link" value="Link" onstart="PF('blockUI').show()" oncomplete="PF('blockUI').hide()"/>
</p:column>
</p:dataTable>
Изготовление <p:blockUI>
указать на <p:commandLink>
внутри таблицы, однако, не работает.
<p:blockUI block="dataTable:link" widgetVar="blockUI"/>
Опять без ошибок, без исключений.
Какой смысл? Могут ли нацеливающие компоненты итерационных компонентов не быть нацелены <p:blockUI>
или же <pe:blockUI>
?
1 ответ
Это хорошо работает, когда <p/pe:blockUI>
определяется внутри самих столбцов таблицы данных следующим образом.
<p:dataTable id="dataTable" var="row" value="Test">
<p:column>
<!--Using PrimeFaces Extensions <pe:blockUI>-->
<pe:blockUI target="link" widgetVar="blockUIWidget">
<h:outputText value="Sending data..."/>
</pe:blockUI>
<p:commandLink id="link" value="Link" onstart="PF('blockUIWidget').block()" oncomplete="PF('blockUIWidget').unblock()"/>
</p:column>
<p:column>
<!--Using PrimeFaces <p:blockUI>-->
<p:blockUI block="link1" widgetVar="blockLink1UI" />
<p:commandLink id="link1" value="Link1" onstart="PF('blockLink1UI').show()" oncomplete="PF('blockLink1UI').hide()"/>
</p:column>
<p:column>
<!--Using PrimeFaces <p:blockUI>-->
<p:blockUI block="link2" widgetVar="blockLink2UI" />
<p:commandLink id="link2" value="Link2" onstart="PF('blockLink2UI').show()" oncomplete="PF('blockLink2UI').hide()"/>
</p:column>
</p:dataTable>