【问题标题】:primefaces lazydatamodel table is emptyprimefaces 惰性数据模型表为空
【发布时间】:2014-08-04 15:33:05
【问题描述】:

我有一个空的 primefaces 惰性数据模型表。调用lazydatamodel的load方法,查询正确执行。如果我在从 load 方法返回的数据上放置一个刹车点,它包含预期的数据。但是在 xhtml 中仍然有一个空表。

惰性数据模型类:

@Named
@Stateless
public class LazyEventDataModel extends LazyDataModel<Event> implements Serializable {

private static final long serialVersionUID = -1044044395695736241L;

@Inject @YpayDB EntityManager em;

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

    if(sortField == null || sortField.equals("")){
        sortField = "event.startUTC";
    }

    List<Event> data = selectData(first, pageSize, sortField, DataUtilsWeb.transformSortOrder(sortOrder), filters);
    //row count
    this.setRowCount(count(filters));

    return data;
}
.....

调用惰性数据模型的 bean:

@Named
@ViewScoped
public class ModeratorDashboardBean implements Serializable {

private static final long serialVersionUID = -8586184444671684610L;

@Inject
private LazyEventDataModel lazyEventDatamodel;

public LazyEventDataModel getLazyEventDatamodel() {
    return lazyEventDatamodel;
}

}

xhtml 数据表文件:

<p:dataTable emptyMessage="No data" id="dataTable" var="event" value="#{moderatorDashboardBean.lazyEventDatamodel}"
                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                     paginator="true"  paginatorPosition="bottom" rowsPerPageTemplate="10,20,30" rows="20" rowKey="#{event.idEvent}"   
                     lazy="true" style="width:100%"  sortBy="event.startUTC" sortOrder="DESCENDING" filterDelay="400">

                    <p:column headerText="Date from" >
                         <h:outputText value="#{event.start}" >
                                <f:convertDateTime pattern="dd.MM.yy HH:mm" />  
                            </h:outputText>
                    </p:column>
                    <p:column headerText="Date to" >
                         <h:outputText value="#{event.end}" >
                                <f:convertDateTime pattern="dd.MM.yy HH:mm" />  
                            </h:outputText>
                    </p:column>
                     <p:column headerText="Event" filterBy="#{event.name}" filterMatchMode="contains" sortBy="event.name">
                         <h:outputText value="#{event.name}" >
                            </h:outputText>
                    </p:column>


                </p:dataTable>

【问题讨论】:

  • rowCount 设置正确吗?
  • @RobbyCornelissen 是的 setRowCount 我在表中有许多所有插入。
  • 问题解决了吗?

标签: jsf jsf-2 primefaces lazy-loading datamodel


【解决方案1】:

我也猜

this.setRowCount(count(filters));

错了。假设是正确的:

this.setRowCount(data.size());

【讨论】:

    【解决方案2】:

    如果你带走 h:outputText(谁会想到)它会起作用

    <p:column headerText="Event" filterBy="#{event.name}" filterMatchMode="contains" sortBy="event.name">
        #{event.name}"
    </p:column>
    

    【讨论】:

      猜你喜欢
      • 2018-08-18
      • 1970-01-01
      • 2015-04-10
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2014-06-24
      • 2017-11-15
      相关资源
      最近更新 更多