2014-09-19 53 views
2

<p:dataList>是否支持page事件?我試圖按以下方式使用page事件(在瀏覽頁面時使用<pe:blockUI>阻止<p:dataList>)。在PrimeFaces中使用帶有p:dataList的頁面事件

<pe:blockUI target="dataList" widgetVar="blockDataListUIWidget"> 
    <h:panelGrid columns="2"> 
     <h:graphicImage library="default" name="images/ajax-loader1.gif"/> 
     <h:outputText value="Fetching..." class="block-ui-text"/> 
    </h:panelGrid> 
</pe:blockUI> 

<p:dataList id="dataList" 
      var="orderRow" 
      value="#{orderDetailsManagedBean}" 
      first="0" 
      rows="1" 
      paginator="true" 
      paginatorAlwaysVisible="false" 
      type="definition" lazy="true" 
      emptyMessage="Message"> 

    <p:ajax event="page" 
      onstart="PF('blockDataListUIWidget').block()" 
      oncomplete="PF('blockDataListUIWidget').unblock()" 
      process="@this" 
      update="@none"/> 

      ... 

</p:dataList> 

這不工作了。該頁面保持空白,沒有錯誤。事件似乎不被<p:dataList>支持。

無論如何可以在<p:dataList>中模擬此場景嗎?

+0

爲了記錄在案,阻斷一個DataList提出了一個錯誤的PrimeFaces擴展!它可能不被支持!你會嘗試從你的控制檯嗎? – 2014-09-19 09:48:21

回答

3

正如我從source codepage事件看到不dataList支持,而另一方面dataGridsupports it

解決方案是猴子補丁,因爲我們無法控制重寫原始JS文件,您可以在處理分頁之前和之後鉤住一個事件,全部通過javascript。

下面是一個例子: 假設你的DataList widgetVardataListWV

//making sure the widgetVar is ready to be used  
setTimeout(dataListPaginationExtraEvents, 1000);  

function dataListPaginationExtraEvents() { 
    var odlHandlePagination = PF('dataListWV').handlePagination; 

    PF('dataListWV').handlePagination = function(newState) { 
     //before 
     console.log('start fetch'); 
     //calling original pagination 
     odlHandlePagination.apply(this, [newState]); 
     //after 
     console.log('end fetch'); 
    } 
} 
+0

瀏覽器拒絕編譯代碼 - var'dataListWV'的Widget不可用!'Uncaught TypeError:無法讀取未定義的屬性'handlePagination'。 – Tiny 2014-09-19 14:54:30

+0

起初我有這個問題,但它確實是放置你的js代碼的地方,無論如何測試它...刪除document.ready並設置超時..我已經更新了答案。 – 2014-09-19 14:56:58

+0

PrimeFaces Extension''不起作用。 PrimeFaces''然而,確實如此。 PrimeFaces Extension的''不起作用的原因是什麼?謝謝。 – Tiny 2014-09-19 15:19:37

0

由於PrimeFaces 5.3最終(社區發行版),在<p:dataList>

支持的page事件下面的圖片是取自PrimeFaces user guide 5.3(第146頁)。

enter image description here

還有就是在以前的導遊阿賈克斯行爲事件隻字未提。

該問題中提到的page事件在PrimeFaces 5.3 final(社區發佈)中完美無缺地工作。

相關問題