当通过AJAX更新DataTable时,Primefaces blockUI阻止DataTable不起作用

时间:2013-07-06 02:09:38

标签: jsf jsf-2 primefaces

我在Primefaces 3.5中有一个DataTable,如此,

<p:panel id="dataTablePanel" toggleable="true" toggleOrientation="horizontal" closable="false" header="Data">
    <p:dataTable id="dataTable" var="row" value="#{bean}"
                 lazy="true"
                 pageLinks="10"
                 paginator="true"
                 sortMode="multiple"
                 resizableColumns="true"
                 sortOrder="descending"
                 editable="true"
                 filterEvent="keyup"
                 selection="#{bean.selectedValues}"
                 rowsPerPageTemplate="5,10,15"
                 rows="10"
                 rowKey="#{row.id}"
                 rowIndexVar="rowIndex"
                 editMode="row">

                 ...
    </p:dataTable>
</p:panel>

我正在使用<p:blockUI>来阻止此DataTable,同时正在对此DataTable执行某些操作。

<p:blockUI block="dataTable" trigger="dataTable">
    Loading<br />
    <p:graphicImage value="../resources/images/ajax_loader_image/ajax-loader.gif"/>
</p:blockUI>

这很好用。


我正在使用<p:commandButton>,当按下时会导致一行插入数据库,因此DataTable会通过AJAX更新(此按钮由另一个具有id属性id="panel"的面板保存和一些必要的UIComponents,如<p:inputText>等。)

<p:commandButton 
               id="btnSubmit" 
               update="dataTable panel" 
               actionListener="#{bean.insert}" 
               icon="ui-icon-check" 
               value="Save"/>

添加行时,DataTable会更新,而<p:blockUI>在后​​面不起作用。为什么会这样?


因此,我暂时阻止了包含DataTable的面板,

<p:blockUI block="dataTablePanel" trigger="dataTable">
    Loading<br />
    <p:graphicImage value="../resources/images/ajax_loader_image/ajax-loader.gif"/>
</p:blockUI>

在这种情况下,block="dataTable"已更改为block="dataTablePanel"

为什么DataTable在通过AJAX更新后无法单独阻止?

0 个答案:

没有答案