2013-06-19 42 views
1

調用LazyDataModelload()方法,並退出成功。 呈現dataTable,但唯一的問題是整個頁面被阻止,按鈕不會給出任何響應,除了執行JavaScript的按鈕之外。PrimeFaces LazyDataModel渲染數據後整個頁面被阻塞

我認爲有Ajax的東西,而AjaxStatus顯示有東西正在加載,但沒有加載。

我使用PrimeFaces 3.4.2鑽嘴魚科2.1.6

這裏是我的.xhtml,在options.xhtml是多了一個H:形式宣佈

<ui:include src="options.xhtml" /> 
     <h:form id="display"> 
     ... 
     <p:dataTable id="resultsTable" value="#{index.lazyModel}" 
      var="searchResult" rows="10" paginator="true" emptyMessage="" 
      paginatorPosition="bottom" lazy="true" 
      rendered="#{empty index.lazyModel ? false : true}"> 
      <p:column> 
       <h:panelGrid columns="1"> 
        <h:panelGrid columns="2"> 
        <h:outputLink value="#{searchResult.url}"> 
         <h:outputText value="#{searchResult.title}" /> 
        </h:outputLink> 
        <h:outputText value="#{searchResult.category}" /> 
        </h:panelGrid> 
        <h:outputText value="#{searchResult.kwic}" /> 
       </h:panelGrid> 
      </p:column> 
     </p:dataTable> 
     <p:graphicImage value="/resources/welcome.gif" 
      rendered="#{empty index.lazyModel}" styleClass="welcome" /> 
     </h:form> 

的LazyDataModel的加載方法:

@Override 
    public List<Result> load(int first, int pageSize, String sortField, 
     SortOrder sortOrder, Map<String, String> filters) { 

     // rowCount 
     int dataSize = searchResults.size(); 
     this.setRowCount(dataSize); 

     List<Result> temp = null; 
     // paginate 
     if (dataSize > pageSize) { 
     try { 
      temp = searchResults.subList(first, first + pageSize); 
     } catch (IndexOutOfBoundsException e) { 
      temp = searchResults.subList(first, first 
        + (dataSize % pageSize)); 
     } 
     } else { 
     temp = searchResults; 
     } 

     return searchHandler.classify(temp); 
    } 

任何想法或建議將不勝感激。

在此先感謝。

回答

0

如果您使用PrimeFaces中的表單更改h:表單,這難道不對嗎?只是一個ideea ...

+0

你的意思是哪種形式?因爲據我所知,沒有PrimeFaces的特定形式。 – ReDy

+0

好吧,我曾經使用RichFaces和Ajax工作,並且有一個a4j:表單,它總是在處理來自RichFaces和/或Ajax的組件時幫助我們...所以我想我沒有正確表達表單來自PrimeFaces ..抱歉:)但無論如何,這只是一個長期的 – Uvedenrodee

+0

謝謝,無論如何,爲您的嘗試 – ReDy