• Settings
    • Locale
    • Change the locale of the datepicker, schedule and client side validation messages.

      Language
      English
      English
      English
      French
      German
      German
      German
      Italian
      Korean
      Spanish
      Catalan
      Dutch
      Portuguese
      Portuguese
      Arabic
      Arabic
      Bulgarian
      Bangla
      Bosnian
      Czech
      Greek
      Estonian
      Persian
      Finnish
      Danish
      Hindi
      Indonesian
      Icelandic
      Croatian
      Japanese
      Hungarian
      Hebrew
      Georgian
      Central Kurdish
      Khmer
      Kyrgyz
      Kazakh
      Lithuanian
      Latvian
      Malay
      Norwegian
      Polish
      Romanian
      Russian
      Slovak
      Slovenian
      Serbian
      Serbian
      Swedish
      Thai
      Turkish
      Ukrainian
      Uzbek
      Vietnamese
      Chinese
      Chinese
  • Resources

DataView Lazy

DataView has built-in support to deal with huge datasets. In order to enable lazy loading, a LazyDataModel needs to be implemented to query the datasource when pagination happens. This example uses an in-memory list to mimic a real datasource like a database. In a real application, loading should be executed with the query built using the information passed to the load method.

DataView Tag Documentation

DataView displays data in grid or list layout.

NameTypeRequiredDefaultDescription
binding UIComponent false generated An EL expression referring to a server side UIComponent instance in a backing bean.
rendered boolean false true Boolean value to specify the rendering of the component, when set to false component will not be rendered.
value Object true Datasource of the component.
lazy boolean false True, if the value-binding is instance of LazyDataModel. Defines if lazy loading is enabled for the data component.
paginatorAlwaysVisible boolean false true Defines if paginator should be hidden if total data count is less than number of rows per page.
paginator boolean false false Enables pagination.
touchable Boolean false Enable touch if supported by device. NULL uses global default or primefaces.TOUCHABLE. Default: globally enabled.
gridIcon String false Icon to display for grid layout toggle button.
listIcon String false Icon to display for list layout toggle button.
first int false 0 Index of the first data to display.
gridRowStyle String false Inline style of each row (grid-cell) in grid layout.
style String false Inline style of the component.
rowStatePreserved boolean false false Keeps state of its children on a per-row basis.
layout String false list Layout of the items, valid values are "list" and "grid".
pageLinks int false 10 Maximum number of page links to display.
rowIndexVar String false Name of iterator to refer each row index.
widgetVar String false generated ('widget_' + componentClientId) Name of the client side widget.
var String true Name of the iterator variable that references each element in the data set.
rows int false 0 Number of rows to display per page. Default value is 0 meaning to display all data available.
paginatorPosition String false bottom Position of the paginator.
gridRowStyleClass String false Style class of each row (grid-cell) in grid layout.
styleClass String false Style class of the component.
currentPageReportTemplate String false ({currentPage} of {totalPages}) Template of the currentPageReport UI.
paginatorTemplate String false {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} Template of the paginator.
rowsPerPageTemplate String false Template of the rowsPerPage dropdown.
emptyMessage String false i18n Text to display when there is no data to display.
rowTitle String false Title for each row.
id String false generated Unique identifier of the component in a namingContainer.
flex Boolean false Use modern FlexGrid CSS for this component.
multiViewState boolean false false Whether to keep component state across views.
Loading...
Tag DocumentationNew DocumentationNew Documentation JSDoc Basic MultiViewState Lazy Responsive
ui-button
ui-button
  • Name:Aruna E Chui
    Country: Canada
    Company:Rousseaux, Michael Esq
    Representative:Asiya Javayant
  • Name:Juan D Nicka
    Country: Germany
    Company:Rangoni Of Florence
    Representative:Bernardo Dominic
  • Name:Cody K Doe
    Country: Brazil
    Company:Rousseaux, Michael Esq
    Representative:Stephen Shaw
  • Name:Salvatore Q Maclead
    Country: Germany
    Company:Morlong Associates
    Representative:Xuxue Feng
  • Name:Silvio L Rim
    Country: Brazil
    Company:Commercial Press
    Representative:Onyama Limba
  • Name:Antonio V Inouye
    Country: Canada
    Company:Chanay, Jeffrey A Esq
    Representative:Amy Elsner
  • Name:Silvio N Dilliard
    Country: Japan
    Company:King, Christopher A Esq
    Representative:Asiya Javayant
  • Name:Maisha W Kusko
    Country: Italy
    Company:Buckley Miller Wright
    Representative:Anna Fali
  • Name:Ashley N Gillian
    Country: Spain
    Company:Printing Dimensions
    Representative:Bernardo Dominic
  • Name:Misaki Q Oldroyd
    Country: Russia
    Company:Truhlar And Truhlar Attys
    Representative:Amy Elsner
  • Name:Izzy D Wieser
    Country: Canada
    Company:Chemel, James L Cpa
    Representative:Ioni Bowcher
  • Name:Aika W Chui
    Country: Russia
    Company:King, Christopher A Esq
    Representative:Anna Fali

Usage


<div class="card">
    <h:form id="form">
        <p:dataView var="customer" value="#{dtLazyView.lazyModel}" rows="12" paginator="true"
                    rowsPerPageTemplate="6,12,16"
                    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                    gridIcon="pi pi-th-large" listIcon="pi pi-bars">

            <p:dataViewGridItem>
                <div class="card flex justify-content-center">
                    <h:panelGrid columns="2" cellpadding="7">
                        <h:outputText value="Name:" styleClass="text-secondary"/>
                        <h:outputText value="#{customer.name}"/>

                        <h:outputText value="Country:" styleClass="text-secondary"/>
                        <p:column>
                            <span class="flag flag-#{customer.country.code}"
                                    style="width: 30px; height: 20px"/>
                            <h:outputText style="vertical-align: middle; margin-left: .5rem"
                                            value="#{customer.country.name}"/>
                        </p:column>

                        <h:outputText value="Company:" styleClass="text-secondary"/>
                        <h:outputText value="#{customer.company}"/>

                        <h:outputText value="Representative:" styleClass="text-secondary"/>
                        <p:column>
                            <p:graphicImage name="images/avatar/#{customer.representative.image}"
                                            library="demo"
                                            width="32" style="vertical-align: middle"/>
                            <h:outputText style="vertical-align: middle; margin-left: .5rem"
                                            value="#{customer.representative.name}"/>
                        </p:column>
                    </h:panelGrid>
                </div>
            </p:dataViewGridItem>

            <p:dataViewListItem>
                <h:panelGrid columns="2" style="width:100%" cellspacing="20">
                    <p:outputPanel>
                        <h:panelGrid columns="2" cellpadding="7">
                            <h:outputText value="Name:" styleClass="text-secondary" />
                            <h:outputText value="#{customer.name}"/>

                            <h:outputText value="Country:" styleClass="text-secondary"/>
                            <p:column>
                                <span class="flag flag-#{customer.country.code}"
                                      style="width: 30px; height: 20px"/>
                                <h:outputText style="vertical-align: middle; margin-left: .5rem"
                                              value="#{customer.country.name}"/>
                            </p:column>

                            <h:outputText value="Company:" styleClass="text-secondary"/>
                            <h:outputText value="#{customer.company}"/>

                            <h:outputText value="Representative:" styleClass="text-secondary"/>
                            <p:column>
                                <p:graphicImage name="images/avatar/#{customer.representative.image}"
                                                library="demo"
                                                width="32" style="vertical-align: middle"/>
                                <h:outputText style="vertical-align: middle; margin-left: .5rem"
                                              value="#{customer.representative.name}"/>
                            </p:column>
                        </h:panelGrid>
                    </p:outputPanel>
                </h:panelGrid>
            </p:dataViewListItem>
        </p:dataView>
    </h:form>
</div>