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
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
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
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Wickens J KuskoUnited KingdomAmy Elsner PROPOSAL
Ivar P BologniaSpainAnna Fali QUALIFIED
Alejandro H AlbaresBrazilIoni Bowcher NEW
Jeanfrancois S AmigonGermanyIvan Magalhaes PROPOSAL
Leja G AlbaresCanadaElwin Sharvill PROPOSAL
Maria X AmigonUnited KingdomAmy Elsner RENEWAL
Maisha D CampainFranceXuxue Feng RENEWAL
Deepesh Q CaldareraItalyAsiya Javayant PROPOSAL
Rodrigues F MarrierGermanyOnyama Limba NEW
Octavia K BriddickGermanyAmy Elsner UNQUALIFIED
Jefferson Q RimAustraliaOnyama Limba PROPOSAL
Morrow U VenereCanadaIoni Bowcher NEGOTIATION
Stacey K GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey I PoquetteGermanyElwin Sharvill QUALIFIED
Leon C OldroydArgentinaAmy Elsner NEW
Jeanfrancois B BologniaItalyIoni Bowcher UNQUALIFIED
Stacey H BowleyArgentinaIvan Magalhaes NEGOTIATION
Mujtaba Y InouyeUnited KingdomAmy Elsner RENEWAL
Chavez F GillianSpainElwin Sharvill NEW
Nicolas O CaudyAustraliaAmy Elsner NEGOTIATION
Octavia T FigeroaBrazilAnna Fali NEW
Jones V GarufiItalyAnna Fali NEGOTIATION
Ashley M MacleadIndiaAsiya Javayant NEW
Francesco F SergiGermanyOnyama Limba QUALIFIED
Emily F VenereAustraliaElwin Sharvill RENEWAL
Faith L AlbaresGermanyIoni Bowcher NEGOTIATION
Mujtaba M CaldareraItalyElwin Sharvill UNQUALIFIED
David C ShinkoCanadaIvan Magalhaes RENEWAL
Munro V WieserJapanAsiya Javayant RENEWAL
Greenwood G RoysterBrazilOnyama Limba RENEWAL
Wickens P ChuiRussiaAsiya Javayant UNQUALIFIED
Aika V OstroskyBrazilElwin Sharvill QUALIFIED
Arvin O MarrierSpainXuxue Feng NEGOTIATION
Ivar F PaprockiSpainStephen Shaw QUALIFIED
Kadeem R ShinkoGermanyAsiya Javayant PROPOSAL
Murillo D InouyeItalyElwin Sharvill UNQUALIFIED
Maisha Y IturbideBrazilAnna Fali QUALIFIED
Deepesh J WieserCanadaAsiya Javayant RENEWAL
Ricardo X KuskoGermanyIoni Bowcher PROPOSAL
Francesco M BologniaArgentinaXuxue Feng UNQUALIFIED
Aruna U WieserRussiaAmy Elsner UNQUALIFIED
Isabel F CampainCanadaIvan Magalhaes QUALIFIED
Leon W RimArgentinaOnyama Limba PROPOSAL
Jefferson O SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Greenwood A PaprockiSpainXuxue Feng NEGOTIATION
Kadeem K ButtAustraliaAmy Elsner PROPOSAL
Chavez D BriddickUnited KingdomIvan Magalhaes RENEWAL
James T MorascaFranceElwin Sharvill NEGOTIATION
Salvatore M KuskoCanadaIvan Magalhaes NEW
Claire P WhobreyCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha S DoeJapanIoni Bowcher RENEWAL
Sinclair I PaprockiSpainAmy Elsner NEW
Johnson S OldroydJapanAsiya Javayant PROPOSAL
Adams A PaprockiFranceBernardo Dominic RENEWAL
Kadeem L WhobreyArgentinaOnyama Limba NEW
Kadeem X PerinFranceIoni Bowcher NEGOTIATION
Adams V WaycottItalyOnyama Limba UNQUALIFIED
Costa G GauchoJapanIoni Bowcher RENEWAL
Aruna M ButtBrazilOnyama Limba NEGOTIATION
Faith W OstroskyArgentinaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James S FigeroaIndia2024-06-05Rousseaux, Michael Esq PROPOSAL94Bernardo Dominic
1001Morrow U BriddickBrazil2024-06-18Feiner Bros NEGOTIATION62Ivan Magalhaes
1002Costa J RimGermany2024-06-13Truhlar And Truhlar Attys NEGOTIATION14Ivan Magalhaes
1003Antonio V SchemmerCanada2024-06-16Feiner Bros QUALIFIED77Bernardo Dominic
1004Sinclair M GlickAustralia2024-06-13Buckley Miller Wright QUALIFIED59Stephen Shaw
1005Kadeem L IturbideItaly2024-06-08Feltz Printing Service NEW15Asiya Javayant
1006Octavia F CaldareraRussia2024-06-04Commercial Press QUALIFIED30Amy Elsner
1007Juan G IturbideIndia2024-06-21Dorl, James J Esq RENEWAL30Ioni Bowcher
1008Antonio W RulapaughIndia2024-06-01Rangoni Of Florence UNQUALIFIED87Amy Elsner
1009Isabel Y SaylorsArgentina2024-06-04Rangoni Of Florence PROPOSAL71Ioni Bowcher
1010Kaitlin E SergiItaly2024-05-30Printing Dimensions UNQUALIFIED50Elwin Sharvill
1011Faith T KolmetzJapan2024-06-12King, Christopher A Esq PROPOSAL53Anna Fali
1012Deepesh I FerenczRussia2024-05-28Rousseaux, Michael Esq PROPOSAL3Bernardo Dominic
1013Francesco Q BriddickCanada2024-06-14Chemel, James L Cpa RENEWAL52Amy Elsner
1014Murillo M MacleadAustralia2024-06-11Buckley Miller Wright PROPOSAL69Stephen Shaw
1015David R AlbaresGermany2024-06-22Feltz Printing Service QUALIFIED49Stephen Shaw
1016Claire H WaycottIndia2024-05-28Chapman, Ross E Esq PROPOSAL90Amy Elsner
1017Antonio G MaletRussia2024-06-09Printing Dimensions UNQUALIFIED57Xuxue Feng
1018Deepesh Y PerinAustralia2024-06-17Chanay, Jeffrey A Esq QUALIFIED46Onyama Limba
1019Tony M KolmetzArgentina2024-06-13Printing Dimensions NEW57Asiya Javayant
1020Mujtaba B CaudyJapan2024-06-21Chemel, James L Cpa RENEWAL90Asiya Javayant
1021Nicolas Y TollnerBrazil2024-06-21Feltz Printing Service UNQUALIFIED98Anna Fali
1022Juan T InouyeArgentina2024-06-15Chemel, James L Cpa RENEWAL66Xuxue Feng
1023Jefferson Z SaylorsRussia2024-06-13Benton, John B Jr NEW32Amy Elsner
1024Aika G StockhamRussia2024-06-12Feiner Bros QUALIFIED10Stephen Shaw
1025Cody H PoquetteRussia2024-06-12Morlong Associates PROPOSAL47Anna Fali
1026Claire R RutaBrazil2024-06-12Commercial Press RENEWAL83Amy Elsner
1027Aika G MacleadRussia2024-06-02Feltz Printing Service PROPOSAL12Amy Elsner
1028Stacey X DarakjyCanada2024-06-22Benton, John B Jr PROPOSAL64Ioni Bowcher
1029Chavez Q BologniaGermany2024-06-03King, Christopher A Esq NEW84Xuxue Feng
1030Adams D StockhamUnited Kingdom2024-06-19Feiner Bros NEW51Xuxue Feng
1031Francesco T OldroydSpain2024-06-14Printing Dimensions QUALIFIED36Elwin Sharvill
1032Arvin P CaudyIndia2024-06-07Truhlar And Truhlar Attys QUALIFIED39Elwin Sharvill
1033Chavez G VenereJapan2024-06-01Chemel, James L Cpa QUALIFIED57Stephen Shaw
1034James P TollnerCanada2024-06-02King, Christopher A Esq NEGOTIATION93Onyama Limba
1035Alejandro P IturbideRussia2024-06-01Dorl, James J Esq QUALIFIED92Amy Elsner
1036Stacey Y WieserFrance2024-06-06Rangoni Of Florence RENEWAL89Anna Fali
1037Leja H IturbideFrance2024-05-31Truhlar And Truhlar Attys NEGOTIATION31Ivan Magalhaes
1038Johnson D StensethArgentina2024-06-15Dorl, James J Esq RENEWAL16Xuxue Feng
1039Isabel D DilliardGermany2024-06-19Printing Dimensions PROPOSAL94Amy Elsner
1040James X GauchoCanada2024-06-09Rangoni Of Florence RENEWAL30Ivan Magalhaes
1041Antonio X MaletIndia2024-05-27Benton, John B Jr NEGOTIATION38Amy Elsner
1042Faith E RulapaughAustralia2024-06-18Chanay, Jeffrey A Esq RENEWAL61Stephen Shaw
1043Leja E GillianUnited Kingdom2024-05-29Rangoni Of Florence NEW18Asiya Javayant
1044Cody T WhobreyUnited Kingdom2024-06-04Commercial Press RENEWAL87Ioni Bowcher
1045Kaitlin N OldroydCanada2024-05-25Commercial Press NEW33Xuxue Feng
1046Salvatore I RutaRussia2024-06-15Printing Dimensions PROPOSAL36Stephen Shaw
1047Cody T GillianArgentina2024-06-18Buckley Miller Wright UNQUALIFIED55Stephen Shaw
1048Jennifer A FerenczGermany2024-06-05Benton, John B Jr UNQUALIFIED93Anna Fali
1049Sinclair B GlickItaly2024-06-16Feltz Printing Service PROPOSAL7Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio M ButtFranceAmy Elsner QUALIFIED
Jones C GillianFranceAmy Elsner QUALIFIED
Greenwood U PerinItalyIvan Magalhaes NEW
Nicolas F CaldareraBrazilXuxue Feng UNQUALIFIED
Ricardo G GauchoUnited KingdomStephen Shaw QUALIFIED
Costa K RimBrazilAsiya Javayant PROPOSAL
Mayumi E WaycottCanadaIvan Magalhaes PROPOSAL
Ivar F PerinAustraliaIvan Magalhaes PROPOSAL
Munro A KolmetzSpainAsiya Javayant NEGOTIATION
Jennifer H NickaItalyAnna Fali NEGOTIATION
Emily A PoquetteAustraliaAsiya Javayant RENEWAL
David U CampainGermanyBernardo Dominic UNQUALIFIED
Maria L PaprockiFranceStephen Shaw NEGOTIATION
Mayumi R NestleRussiaBernardo Dominic NEW
James H StockhamSpainIvan Magalhaes UNQUALIFIED
Arvin P AlbaresBrazilStephen Shaw NEW
Tony V BowleyItalyAnna Fali QUALIFIED
Greenwood X KuskoRussiaElwin Sharvill PROPOSAL
James U RulapaughJapanAnna Fali NEW
Costa I DarakjyJapanBernardo Dominic PROPOSAL
Kadeem K StockhamArgentinaAmy Elsner PROPOSAL
Silvio J InouyeBrazilAsiya Javayant RENEWAL
Darci W RimSpainStephen Shaw RENEWAL
Deepesh E RulapaughBrazilIvan Magalhaes RENEWAL
Leon T GauchoItalyIoni Bowcher PROPOSAL
Johnson K GillianGermanyOnyama Limba NEGOTIATION
Ricardo D FerenczCanadaIoni Bowcher UNQUALIFIED
Octavia F GlickJapanIvan Magalhaes PROPOSAL
Wickens R RutaSpainIvan Magalhaes NEW
Antonio S MaletCanadaIvan Magalhaes NEGOTIATION
Ashley E MarrierAustraliaAnna Fali UNQUALIFIED
Adams U VenereItalyIvan Magalhaes PROPOSAL
Izzy J OstroskyItalyOnyama Limba PROPOSAL
Rodrigues A StockhamRussiaBernardo Dominic RENEWAL
Stacey U CaudyCanadaAsiya Javayant RENEWAL
Jennifer V CaldareraGermanyAmy Elsner PROPOSAL
Francesco C CaldareraAustraliaAsiya Javayant QUALIFIED
Jennifer M IturbideGermanyOnyama Limba NEW
Antonio G OldroydItalyIoni Bowcher NEGOTIATION
Ivar J WieserUnited KingdomAmy Elsner NEGOTIATION
Ivar K BriddickSpainIoni Bowcher NEW
Stacey M AmigonFranceXuxue Feng UNQUALIFIED
Salvatore I WhobreyArgentinaBernardo Dominic UNQUALIFIED
Antonio I IturbideGermanyAnna Fali RENEWAL
Rodrigues H OldroydArgentinaAmy Elsner UNQUALIFIED
Mayumi A GarufiItalyXuxue Feng UNQUALIFIED
Rodrigues I WhobreyBrazilAsiya Javayant QUALIFIED
Nicolas Y MarrierFranceAsiya Javayant NEW
Jones W MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Aika X RoysterAustraliaOnyama Limba NEGOTIATION
Frozen Columns
Name
Clifford X Kusko
Chavez T Glick
Tony W Doe
Alejandro A Flosi
Maisha H Stenseth
Faith Q Malet
Mujtaba D Oldroyd
Munro S Iturbide
Antonio U Maclead
Johnson D Whobrey
Mayumi A Vocelka
Ashley N Kusko
David Y Whobrey
Adams B Poquette
Adams T Amigon
Izzy L Ostrosky
Stacey E Gaucho
Izzy J Glick
Costa Y Rulapaugh
Clifford S Caldarera
Misaki P Albares
Leon G Ostrosky
Maisha Z Campain
Smith Q Ruta
Leja A Amigon
Jones U Gillian
Misaki V Caudy
Clifford H Doe
Claire E Shinko
Aruna W Foller
Jennifer E Ruta
Claire S Stockham
Deepesh W Rim
Francesco H Caldarera
Antonio X Schemmer
Juan K Nicka
Aditya Y Ostrosky
Rodrigues O Caldarera
Octavia U Paprocki
Nicolas R Glick
Octavia V Nicka
Ashley O Dilliard
Nicolas M Kolmetz
Clifford G Paprocki
Nicolas Z Figeroa
Aika B Waycott
Sinclair U Kolmetz
Juan X Bolognia
Kadeem W Shinko
Salvatore V Darakjy
IdCountryDate
1000Argentina2024-06-21
1001Australia2024-06-01
1002India2024-06-01
1003India2024-06-16
1004Argentina2024-06-16
1005Russia2024-06-02
1006Australia2024-06-22
1007Brazil2024-06-18
1008Argentina2024-06-05
1009Brazil2024-05-27
1010Canada2024-06-19
1011Russia2024-06-08
1012Japan2024-06-03
1013United Kingdom2024-06-20
1014Argentina2024-06-18
1015United Kingdom2024-05-29
1016United Kingdom2024-06-19
1017Australia2024-06-10
1018Russia2024-06-09
1019Japan2024-06-16
1020Canada2024-06-05
1021United Kingdom2024-06-18
1022Brazil2024-05-25
1023India2024-05-31
1024United Kingdom2024-06-17
1025France2024-06-05
1026Brazil2024-06-12
1027Japan2024-05-28
1028United Kingdom2024-06-15
1029Argentina2024-06-22
1030Canada2024-05-26
1031India2024-06-10
1032Italy2024-06-16
1033Russia2024-06-09
1034Brazil2024-06-22
1035Australia2024-06-09
1036Argentina2024-06-05
1037United Kingdom2024-06-04
1038Germany2024-06-08
1039Argentina2024-06-06
1040Spain2024-06-17
1041Russia2024-06-08
1042Canada2024-05-24
1043India2024-06-19
1044Canada2024-06-18
1045Russia2024-05-30
1046Brazil2024-06-09
1047Canada2024-05-29
1048Japan2024-05-31
1049Spain2024-06-12

On-Demand Data

NameIdCountryDate
Jennifer J Rim1000India2024-06-20
Morrow K Ruta1001Canada2024-06-01
Maisha W Campain1002Italy2024-06-13
Octavia K Doe1003Germany2024-06-16
Claire G Stenseth1004Argentina2024-06-16
Chavez I Darakjy1005France2024-05-26
Jennifer Y Flosi1006United Kingdom2024-06-13
Costa D Dilliard1007Australia2024-05-24
Adams Q Flosi1008Brazil2024-05-25
Kaitlin W Rulapaugh1009Italy2024-06-16
Salvatore V Rim1010Australia2024-06-06
Silvio Q Rulapaugh1011Brazil2024-05-30
Ivar Z Kolmetz1012Japan2024-06-06
Darci H Inouye1013France2024-06-11
Aditya B Ruta1014United Kingdom2024-06-07
Maisha V Morasca1015Russia2024-06-06
Greenwood C Gaucho1016United Kingdom2024-06-13
Jones K Vocelka1017Russia2024-06-12
Leon S Garufi1018Germany2024-06-09
Silvio L Wieser1019Brazil2024-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo H DilliardItalyAnna Fali QUALIFIED
Kaitlin W WieserGermanyIoni Bowcher NEGOTIATION
Claire O AlbaresItalyBernardo Dominic NEGOTIATION
Julie C CampainItalyBernardo Dominic UNQUALIFIED
Morrow T FerenczBrazilStephen Shaw NEW
Ashley Y ShinkoIndiaAmy Elsner NEW
Nicolas R InouyeArgentinaOnyama Limba QUALIFIED
Morrow F MaletUnited KingdomAsiya Javayant PROPOSAL
Greenwood B KolmetzCanadaBernardo Dominic NEGOTIATION
Aika S VenereAustraliaOnyama Limba QUALIFIED
Kaitlin G DarakjySpainIoni Bowcher NEGOTIATION
Kaitlin S WieserFranceBernardo Dominic QUALIFIED
Mujtaba S DarakjyBrazilAsiya Javayant UNQUALIFIED
Wickens N BologniaAustraliaOnyama Limba QUALIFIED
Maisha L SlusarskiJapanIvan Magalhaes QUALIFIED
Maria W IturbideRussiaAmy Elsner UNQUALIFIED
Jefferson F GauchoIndiaElwin Sharvill RENEWAL
Rodrigues F WieserAustraliaAsiya Javayant RENEWAL
Emily S OldroydItalyElwin Sharvill QUALIFIED
Izzy G FigeroaGermanyOnyama Limba PROPOSAL
Murillo R RutaRussiaIoni Bowcher NEGOTIATION
Alejandro F SaylorsItalyElwin Sharvill UNQUALIFIED
Clifford H BologniaBrazilElwin Sharvill NEGOTIATION
Leon R PoquetteBrazilAmy Elsner NEW
Ashley Q WieserAustraliaAsiya Javayant NEW
Leon C MorascaBrazilBernardo Dominic RENEWAL
Tony M RoysterUnited KingdomOnyama Limba NEW
Emily R RutaRussiaStephen Shaw NEGOTIATION
Stacey H MaletJapanStephen Shaw NEGOTIATION
Faith J RulapaughBrazilAsiya Javayant PROPOSAL
Isabel U OstroskyUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois U SaylorsCanadaAsiya Javayant PROPOSAL
Alejandro R StockhamArgentinaElwin Sharvill PROPOSAL
Octavia A CaudyRussiaOnyama Limba NEGOTIATION
Julie C MaletCanadaXuxue Feng NEW
Francesco E RimGermanyOnyama Limba NEGOTIATION
Leja W GauchoSpainStephen Shaw UNQUALIFIED
Alejandro P FerenczAustraliaBernardo Dominic NEW
Faith W FollerJapanIvan Magalhaes NEGOTIATION
Misaki R MaletArgentinaAmy Elsner RENEWAL

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>