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
Jefferson T PoquetteAustraliaIoni Bowcher QUALIFIED
Isabel N AmigonUnited KingdomOnyama Limba QUALIFIED
Chavez M WaycottGermanyAmy Elsner NEGOTIATION
Maria K RulapaughCanadaBernardo Dominic NEGOTIATION
Izzy W RutaIndiaBernardo Dominic UNQUALIFIED
Leja Z KuskoIndiaAnna Fali NEW
Izzy K SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Emily A RulapaughCanadaElwin Sharvill NEW
Costa R VenereUnited KingdomElwin Sharvill NEGOTIATION
Maria Y RimItalyAnna Fali PROPOSAL
Chavez I KolmetzBrazilStephen Shaw NEW
Leon Y StockhamItalyIvan Magalhaes NEW
Emily E CampainGermanyStephen Shaw NEGOTIATION
Leon O FollerJapanElwin Sharvill NEW
Salvatore H AlbaresItalyAsiya Javayant QUALIFIED
Stacey Q BowleyRussiaAnna Fali PROPOSAL
Mujtaba D ShinkoFranceXuxue Feng PROPOSAL
Arvin Z WieserCanadaOnyama Limba NEGOTIATION
Francesco D WhobreySpainElwin Sharvill UNQUALIFIED
Rodrigues S BriddickUnited KingdomStephen Shaw RENEWAL
Claire H CampainIndiaIvan Magalhaes UNQUALIFIED
Cody L ButtBrazilIvan Magalhaes UNQUALIFIED
Mayumi C OstroskyIndiaStephen Shaw NEGOTIATION
Jeanfrancois S MarrierJapanAsiya Javayant UNQUALIFIED
Leja K FlosiSpainBernardo Dominic NEGOTIATION
Mayumi P BologniaJapanOnyama Limba UNQUALIFIED
Aditya K RoysterFranceStephen Shaw QUALIFIED
Munro A GlickItalyAnna Fali PROPOSAL
Johnson C PoquetteBrazilIoni Bowcher RENEWAL
Ashley R FollerArgentinaElwin Sharvill QUALIFIED
Chavez H RulapaughCanadaAnna Fali QUALIFIED
Johnson R BologniaCanadaAmy Elsner RENEWAL
Francesco Z FlosiFranceBernardo Dominic RENEWAL
Murillo A FollerAustraliaAnna Fali NEGOTIATION
Silvio W SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Antonio O WieserArgentinaXuxue Feng RENEWAL
Claire F FigeroaUnited KingdomOnyama Limba NEGOTIATION
Clifford P DarakjyAustraliaElwin Sharvill PROPOSAL
Aruna V MacleadGermanyAmy Elsner NEW
Julie X DilliardSpainStephen Shaw RENEWAL
Sinclair R FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Johnson N RulapaughAustraliaAnna Fali RENEWAL
Jones Q SaylorsGermanyElwin Sharvill NEW
Deepesh U WhobreyBrazilAnna Fali PROPOSAL
Aruna A GlickRussiaOnyama Limba UNQUALIFIED
Isabel N BowleyCanadaXuxue Feng PROPOSAL
Claire U GlickBrazilIoni Bowcher NEW
Cody Q FigeroaSpainStephen Shaw PROPOSAL
Alejandro Y KuskoJapanAsiya Javayant PROPOSAL
Maria B OldroydSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois B NestleArgentinaOnyama Limba NEGOTIATION
Aditya E GarufiFranceAmy Elsner NEW
Deepesh A RulapaughJapanXuxue Feng NEGOTIATION
Nicolas Q RutaJapanAsiya Javayant NEW
Leon Y RoysterCanadaAnna Fali QUALIFIED
Izzy K IturbideSpainAmy Elsner QUALIFIED
David V RulapaughArgentinaAnna Fali UNQUALIFIED
Octavia H RutaCanadaAnna Fali UNQUALIFIED
Mayumi H RutaCanadaElwin Sharvill QUALIFIED
Tony Q DarakjyArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja R VocelkaArgentina2026-06-25Chanay, Jeffrey A Esq PROPOSAL93Onyama Limba
1001Salvatore J FollerSpain2026-07-05Rousseaux, Michael Esq QUALIFIED88Asiya Javayant
1002Ricardo U SlusarskiAustralia2026-06-28Chemel, James L Cpa NEGOTIATION23Amy Elsner
1003Clifford J RoysterAustralia2026-07-04Truhlar And Truhlar Attys NEGOTIATION19Elwin Sharvill
1004Clifford B StensethRussia2026-06-26Feltz Printing Service NEW46Amy Elsner
1005Munro N StockhamAustralia2026-07-07King, Christopher A Esq RENEWAL60Amy Elsner
1006Octavia X OldroydUnited Kingdom2026-07-21Chapman, Ross E Esq UNQUALIFIED45Bernardo Dominic
1007Aruna X StensethFrance2026-07-05Printing Dimensions NEGOTIATION6Xuxue Feng
1008Morrow X GarufiSpain2026-06-28King, Christopher A Esq NEW75Elwin Sharvill
1009Aika Q FlosiCanada2026-06-24Feltz Printing Service RENEWAL26Onyama Limba
1010Clifford L DoeGermany2026-07-12Feiner Bros QUALIFIED24Stephen Shaw
1011Alejandro O CaudySpain2026-07-21Morlong Associates PROPOSAL69Anna Fali
1012Deepesh F PoquetteSpain2026-07-10Feiner Bros NEW81Amy Elsner
1013Darci O SaylorsUnited Kingdom2026-07-08King, Christopher A Esq NEGOTIATION47Xuxue Feng
1014Murillo A OstroskyIndia2026-06-25Morlong Associates QUALIFIED0Ioni Bowcher
1015Rodrigues Q AlbaresRussia2026-07-13Printing Dimensions RENEWAL59Ioni Bowcher
1016Isabel F DarakjySpain2026-07-17Chanay, Jeffrey A Esq RENEWAL43Bernardo Dominic
1017Jeanfrancois S OldroydBrazil2026-07-01Rousseaux, Michael Esq UNQUALIFIED99Elwin Sharvill
1018Izzy M InouyeBrazil2026-07-17Buckley Miller Wright QUALIFIED67Anna Fali
1019Chavez X AmigonBrazil2026-07-17Rousseaux, Michael Esq QUALIFIED91Elwin Sharvill
1020Deepesh A RoysterIndia2026-07-09Chanay, Jeffrey A Esq QUALIFIED46Xuxue Feng
1021Misaki U GlickSpain2026-07-02Buckley Miller Wright QUALIFIED48Anna Fali
1022Rodrigues E WieserCanada2026-07-13Printing Dimensions NEGOTIATION10Ivan Magalhaes
1023Sinclair S RutaBrazil2026-06-22King, Christopher A Esq UNQUALIFIED37Xuxue Feng
1024Sinclair S GlickFrance2026-06-25King, Christopher A Esq PROPOSAL28Anna Fali
1025Jeanfrancois R DoeArgentina2026-07-17Chapman, Ross E Esq RENEWAL10Bernardo Dominic
1026Tony A ChuiIndia2026-07-19Buckley Miller Wright PROPOSAL60Stephen Shaw
1027Murillo D DilliardJapan2026-07-10Printing Dimensions UNQUALIFIED54Stephen Shaw
1028Kadeem F CampainSpain2026-06-29Rangoni Of Florence UNQUALIFIED73Anna Fali
1029Aika Z SchemmerFrance2026-07-20Chemel, James L Cpa RENEWAL12Anna Fali
1030Greenwood M DilliardJapan2026-07-11Rousseaux, Michael Esq NEGOTIATION68Ioni Bowcher
1031David C OldroydUnited Kingdom2026-07-07Rousseaux, Michael Esq RENEWAL37Ioni Bowcher
1032Emily A KuskoFrance2026-07-07Benton, John B Jr NEW15Elwin Sharvill
1033Emily M ButtUnited Kingdom2026-07-17Feltz Printing Service RENEWAL2Bernardo Dominic
1034Arvin O GarufiFrance2026-07-06Dorl, James J Esq QUALIFIED76Ivan Magalhaes
1035Isabel J GarufiFrance2026-07-21King, Christopher A Esq NEGOTIATION40Amy Elsner
1036Jones X OldroydSpain2026-07-07Truhlar And Truhlar Attys NEW48Amy Elsner
1037Darci X NickaBrazil2026-06-30Morlong Associates NEW89Bernardo Dominic
1038Murillo K StockhamCanada2026-06-29Morlong Associates RENEWAL15Xuxue Feng
1039Claire P WaycottUnited Kingdom2026-07-05Dorl, James J Esq RENEWAL17Ioni Bowcher
1040Maisha R VocelkaAustralia2026-07-15Chanay, Jeffrey A Esq NEGOTIATION14Anna Fali
1041Nicolas H VenereArgentina2026-07-13King, Christopher A Esq UNQUALIFIED26Elwin Sharvill
1042Alejandro T DilliardIndia2026-07-21Feltz Printing Service PROPOSAL94Onyama Limba
1043Faith F MarrierGermany2026-07-02Rangoni Of Florence QUALIFIED88Ioni Bowcher
1044Jones Y CampainItaly2026-07-03Morlong Associates RENEWAL92Onyama Limba
1045Cody P WaycottJapan2026-06-30Chemel, James L Cpa UNQUALIFIED66Ivan Magalhaes
1046Izzy W FigeroaFrance2026-06-27Truhlar And Truhlar Attys NEW30Ioni Bowcher
1047Claire B KolmetzCanada2026-06-24Chapman, Ross E Esq QUALIFIED37Ivan Magalhaes
1048Smith B SlusarskiGermany2026-07-12Truhlar And Truhlar Attys NEGOTIATION80Asiya Javayant
1049Faith H StensethArgentina2026-06-29Commercial Press UNQUALIFIED74Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues X MarrierAustraliaOnyama Limba UNQUALIFIED
Greenwood U SergiBrazilIoni Bowcher RENEWAL
Jeanfrancois C TollnerFranceIoni Bowcher NEGOTIATION
Greenwood E GlickRussiaElwin Sharvill RENEWAL
Isabel W FollerJapanBernardo Dominic NEW
Claire L PerinIndiaAsiya Javayant NEW
Smith W CampainItalyIvan Magalhaes NEGOTIATION
Ivar O DarakjyGermanyOnyama Limba UNQUALIFIED
Stacey H MaletJapanAnna Fali UNQUALIFIED
Mujtaba J VocelkaBrazilElwin Sharvill RENEWAL
Arvin Q DoeJapanAsiya Javayant RENEWAL
Darci C MorascaJapanElwin Sharvill UNQUALIFIED
Jefferson J RimIndiaAnna Fali UNQUALIFIED
Claire E MarrierSpainStephen Shaw NEW
Sinclair N ButtItalyIoni Bowcher PROPOSAL
Octavia L StockhamSpainBernardo Dominic UNQUALIFIED
Aditya N KuskoGermanyIvan Magalhaes NEW
Morrow F CampainUnited KingdomStephen Shaw UNQUALIFIED
Maisha D CaudySpainStephen Shaw QUALIFIED
Leja O BowleyJapanBernardo Dominic RENEWAL
Isabel O SaylorsFranceAnna Fali PROPOSAL
James S AmigonGermanyIvan Magalhaes NEGOTIATION
Jones F CaudyArgentinaAmy Elsner UNQUALIFIED
Jefferson J FerenczArgentinaAsiya Javayant RENEWAL
Johnson R BologniaAustraliaIvan Magalhaes QUALIFIED
Misaki E BologniaUnited KingdomAsiya Javayant NEGOTIATION
Murillo D ShinkoCanadaBernardo Dominic NEGOTIATION
James C StockhamItalyBernardo Dominic RENEWAL
Morrow L VenereSpainAsiya Javayant RENEWAL
Misaki M RulapaughAustraliaAnna Fali QUALIFIED
Stacey R NickaJapanStephen Shaw RENEWAL
Juan P DarakjyFranceElwin Sharvill RENEWAL
Sinclair Q MorascaSpainElwin Sharvill QUALIFIED
Faith D SaylorsArgentinaIoni Bowcher PROPOSAL
Wickens Z CaudyGermanyAsiya Javayant PROPOSAL
Ashley C DilliardCanadaAsiya Javayant NEGOTIATION
Munro H OldroydJapanBernardo Dominic NEW
Izzy G DoeIndiaIoni Bowcher PROPOSAL
Murillo X VenereBrazilIoni Bowcher PROPOSAL
Leja G PaprockiIndiaAmy Elsner NEW
Jeanfrancois W VocelkaGermanyBernardo Dominic UNQUALIFIED
Emily Y SaylorsJapanOnyama Limba NEW
Johnson K PaprockiCanadaOnyama Limba RENEWAL
Ivar Q BriddickRussiaAnna Fali RENEWAL
Aditya K BriddickIndiaAnna Fali RENEWAL
Cody T WieserSpainIoni Bowcher NEGOTIATION
Mayumi I WhobreyItalyAnna Fali RENEWAL
Silvio Z RulapaughAustraliaAsiya Javayant UNQUALIFIED
David Y FlosiArgentinaAnna Fali PROPOSAL
Mayumi Y ChuiJapanAnna Fali RENEWAL
Frozen Columns
Name
Clifford N Perin
Salvatore D Darakjy
Cody A Schemmer
Aruna M Nicka
Mayumi T Malet
Francesco N Butt
Mayumi M Nestle
Johnson B Marrier
Smith U Malet
Tony Q Flosi
Jefferson T Doe
Kadeem Q Perin
Adams C Rim
Darci V Nicka
Cody S Paprocki
Jefferson I Amigon
Rodrigues X Figeroa
Leon L Venere
Izzy G Gaucho
Costa F Kusko
Silvio L Waycott
Silvio F Vocelka
Ashley X Inouye
Deepesh Z Bowley
Julie V Briddick
Aika Q Darakjy
Octavia T Shinko
Maisha M Iturbide
Silvio B Ferencz
Mujtaba D Nestle
Leon B Morasca
Salvatore B Oldroyd
Leon N Kusko
Antonio U Paprocki
Wickens O Saylors
Munro H Caudy
Johnson M Kolmetz
Stacey F Nicka
Jeanfrancois J Ferencz
Mujtaba E Bolognia
Aruna R Malet
Munro X Saylors
Jones G Maclead
Darci G Rim
David E Iturbide
Maria R Iturbide
Ricardo C Kolmetz
Leja M Iturbide
Costa P Butt
Alejandro Y Perin
IdCountryDate
1000India2026-07-13
1001India2026-06-27
1002Brazil2026-07-01
1003Brazil2026-07-02
1004Canada2026-07-21
1005Japan2026-07-14
1006Russia2026-07-09
1007India2026-07-17
1008Spain2026-07-06
1009Italy2026-07-17
1010Brazil2026-07-20
1011Russia2026-07-21
1012United Kingdom2026-06-22
1013Spain2026-07-11
1014Russia2026-06-24
1015Russia2026-07-19
1016Spain2026-06-26
1017United Kingdom2026-06-22
1018Australia2026-07-21
1019Spain2026-06-29
1020United Kingdom2026-07-02
1021Spain2026-06-30
1022India2026-07-12
1023Italy2026-06-27
1024France2026-06-24
1025India2026-07-03
1026Italy2026-07-09
1027United Kingdom2026-07-20
1028Australia2026-06-24
1029Russia2026-06-30
1030United Kingdom2026-07-03
1031Argentina2026-07-17
1032Canada2026-07-05
1033Brazil2026-06-28
1034Australia2026-07-02
1035United Kingdom2026-07-12
1036United Kingdom2026-07-21
1037Italy2026-06-23
1038India2026-07-19
1039Australia2026-07-03
1040Germany2026-07-17
1041United Kingdom2026-07-07
1042Italy2026-07-10
1043Spain2026-07-14
1044Germany2026-06-24
1045Spain2026-07-11
1046Russia2026-06-27
1047United Kingdom2026-06-25
1048Germany2026-07-02
1049Brazil2026-07-12

On-Demand Data

NameIdCountryDate
Smith G Stockham1000Japan2026-07-05
Darci J Perin1001Germany2026-07-05
Misaki Y Ostrosky1002Russia2026-06-29
Faith A Kolmetz1003Argentina2026-07-08
Clifford N Marrier1004Spain2026-06-25
Leon O Perin1005United Kingdom2026-07-14
Jefferson O Whobrey1006France2026-06-27
Chavez A Chui1007Canada2026-07-03
Johnson D Amigon1008Germany2026-07-14
Mayumi Q Figeroa1009Argentina2026-07-02
Aika Y Darakjy1010Russia2026-07-05
Leon W Bowley1011Brazil2026-07-10
Alejandro S Whobrey1012Brazil2026-06-29
Alejandro M Shinko1013Spain2026-07-05
Claire T Sergi1014Australia2026-07-03
Alejandro J Maclead1015Japan2026-07-04
Stacey E Royster1016Brazil2026-07-07
Smith H Nicka1017Australia2026-07-06
Leon V Rulapaugh1018Spain2026-07-01
Antonio I Schemmer1019Russia2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James K FigeroaUnited KingdomIoni Bowcher QUALIFIED
Francesco I FerenczArgentinaXuxue Feng NEW
Nicolas R CampainJapanAmy Elsner UNQUALIFIED
Kaitlin T MaletCanadaIoni Bowcher NEW
Leon I WhobreyIndiaAsiya Javayant QUALIFIED
Julie R MacleadCanadaAnna Fali RENEWAL
Adams X CampainBrazilStephen Shaw PROPOSAL
Deepesh Q RoysterFranceStephen Shaw NEW
Rodrigues P CaudyArgentinaBernardo Dominic UNQUALIFIED
Murillo I RulapaughFranceStephen Shaw RENEWAL
Aditya P BologniaItalyElwin Sharvill NEGOTIATION
Smith T ShinkoRussiaOnyama Limba UNQUALIFIED
Julie I FollerAustraliaXuxue Feng PROPOSAL
Francesco C FigeroaRussiaIoni Bowcher NEGOTIATION
Alejandro B RoysterGermanyAnna Fali RENEWAL
Darci X DarakjyRussiaOnyama Limba QUALIFIED
Johnson F InouyeAustraliaBernardo Dominic PROPOSAL
Julie K MaletGermanyIoni Bowcher UNQUALIFIED
Cody E CampainItalyAsiya Javayant RENEWAL
Faith L CaldareraJapanIvan Magalhaes QUALIFIED
Murillo M NickaRussiaAmy Elsner PROPOSAL
Julie E IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Munro C StensethGermanyIoni Bowcher NEW
Costa Z BriddickAustraliaElwin Sharvill NEW
Arvin V OldroydCanadaStephen Shaw QUALIFIED
Nicolas X MaletBrazilIoni Bowcher QUALIFIED
Morrow X AlbaresAustraliaAnna Fali UNQUALIFIED
Deepesh N TollnerSpainIoni Bowcher NEW
James F WhobreyIndiaElwin Sharvill UNQUALIFIED
Jefferson G CampainRussiaAnna Fali PROPOSAL
Jefferson K RulapaughSpainStephen Shaw PROPOSAL
Cody N MorascaFranceElwin Sharvill QUALIFIED
Silvio U TollnerSpainIvan Magalhaes RENEWAL
Kaitlin C NickaUnited KingdomAnna Fali UNQUALIFIED
Kaitlin W AlbaresBrazilAnna Fali UNQUALIFIED
Kadeem C GlickJapanIoni Bowcher QUALIFIED
David A VenereAustraliaElwin Sharvill RENEWAL
Emily F GillianJapanAmy Elsner RENEWAL
Aruna T MaletRussiaBernardo Dominic PROPOSAL
Isabel P DilliardCanadaOnyama Limba UNQUALIFIED

<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>