Блокировка дочернего/включающего компонента повторяющихся компонентов, таких как 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>?


person Tiny    schedule 31.07.2014    source источник


Ответы (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>
person Tiny    schedule 31.07.2014