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 E MorascaArgentinaIoni Bowcher UNQUALIFIED
Izzy C MorascaUnited KingdomXuxue Feng QUALIFIED
Aika X KuskoJapanStephen Shaw PROPOSAL
Aditya M SlusarskiRussiaBernardo Dominic QUALIFIED
Chavez A VocelkaRussiaBernardo Dominic PROPOSAL
Leja H PerinBrazilXuxue Feng RENEWAL
Stacey G RoysterCanadaElwin Sharvill NEGOTIATION
Deepesh H SchemmerGermanyIoni Bowcher PROPOSAL
Jeanfrancois Y MarrierAustraliaOnyama Limba NEW
Clifford W GauchoFranceAnna Fali NEGOTIATION
Silvio H RulapaughGermanyIoni Bowcher NEGOTIATION
Stacey H SergiRussiaAmy Elsner NEGOTIATION
Murillo Z FlosiArgentinaAnna Fali RENEWAL
Rodrigues A ButtJapanAnna Fali RENEWAL
Mayumi Y DarakjyJapanAmy Elsner NEW
Juan F InouyeJapanIoni Bowcher UNQUALIFIED
Murillo E CaudyBrazilAmy Elsner QUALIFIED
Aruna W VenereUnited KingdomElwin Sharvill QUALIFIED
Claire K MacleadFranceBernardo Dominic NEGOTIATION
David A WhobreyCanadaIvan Magalhaes NEW
Aika R GlickBrazilIvan Magalhaes UNQUALIFIED
Jones Q WhobreyBrazilAsiya Javayant QUALIFIED
Antonio F SlusarskiItalyAsiya Javayant QUALIFIED
Faith G ShinkoIndiaIvan Magalhaes UNQUALIFIED
Deepesh Y PoquetteItalyIoni Bowcher PROPOSAL
Izzy S BowleyArgentinaAnna Fali PROPOSAL
Francesco O CampainAustraliaOnyama Limba QUALIFIED
Salvatore F PoquetteCanadaBernardo Dominic RENEWAL
Alejandro T WhobreySpainAnna Fali QUALIFIED
Misaki D WieserGermanyElwin Sharvill NEGOTIATION
Leja C KuskoJapanAnna Fali UNQUALIFIED
Greenwood A BologniaItalyOnyama Limba QUALIFIED
Silvio I DilliardJapanBernardo Dominic NEW
Maria Y NickaArgentinaIvan Magalhaes UNQUALIFIED
Izzy Y CampainIndiaIoni Bowcher QUALIFIED
Murillo H RulapaughArgentinaStephen Shaw RENEWAL
Emily N WaycottArgentinaBernardo Dominic UNQUALIFIED
Emily B KolmetzCanadaStephen Shaw NEW
Sinclair Y IturbideUnited KingdomIoni Bowcher NEGOTIATION
Emily U RoysterSpainOnyama Limba NEGOTIATION
Murillo X AlbaresBrazilIvan Magalhaes RENEWAL
Sinclair Z ChuiFranceXuxue Feng NEGOTIATION
Aditya R WaycottAustraliaOnyama Limba NEW
Tony I SchemmerCanadaStephen Shaw NEGOTIATION
Leon W FollerSpainIvan Magalhaes NEW
Tony L MacleadAustraliaAsiya Javayant NEW
Ivar F SaylorsItalyAnna Fali UNQUALIFIED
Aruna Y DilliardArgentinaIvan Magalhaes UNQUALIFIED
Jefferson Y OldroydSpainAsiya Javayant RENEWAL
Clifford L FollerRussiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio R CaudyGermanyBernardo Dominic NEGOTIATION
Mujtaba M FigeroaAustraliaIoni Bowcher NEGOTIATION
Nicolas W OldroydSpainAnna Fali NEGOTIATION
Ricardo N BriddickUnited KingdomAnna Fali UNQUALIFIED
Emily N ButtSpainAnna Fali RENEWAL
Faith O CampainBrazilAmy Elsner RENEWAL
Morrow F MaletAustraliaStephen Shaw RENEWAL
Smith B OstroskyCanadaIvan Magalhaes NEW
Ivar R RulapaughRussiaAsiya Javayant RENEWAL
Octavia R CampainFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo V KuskoIndia2026-08-25Buckley Miller Wright RENEWAL27Bernardo Dominic
1001Leon Y GarufiRussia2026-08-23King, Christopher A Esq QUALIFIED82Elwin Sharvill
1002Adams U IturbideItaly2026-08-17Chanay, Jeffrey A Esq NEW96Xuxue Feng
1003Isabel M MacleadRussia2026-09-01Chemel, James L Cpa NEW33Asiya Javayant
1004Sinclair I FlosiJapan2026-08-09King, Christopher A Esq RENEWAL33Amy Elsner
1005Kaitlin Z BowleyItaly2026-08-14King, Christopher A Esq UNQUALIFIED20Amy Elsner
1006Silvio S FigeroaBrazil2026-08-14Commercial Press UNQUALIFIED44Stephen Shaw
1007Claire P WaycottAustralia2026-08-17Morlong Associates PROPOSAL69Onyama Limba
1008Salvatore U ButtFrance2026-08-23Feiner Bros UNQUALIFIED45Bernardo Dominic
1009Wickens F PoquetteIndia2026-08-23Morlong Associates PROPOSAL38Amy Elsner
1010Nicolas B SaylorsFrance2026-08-27Chapman, Ross E Esq NEW64Elwin Sharvill
1011Aditya O MarrierFrance2026-08-06Chemel, James L Cpa NEGOTIATION92Ioni Bowcher
1012Leja M CaudyIndia2026-08-30Feltz Printing Service NEW97Onyama Limba
1013Mayumi G WaycottAustralia2026-08-06Dorl, James J Esq NEGOTIATION74Amy Elsner
1014Izzy W PoquetteIndia2026-08-12Chemel, James L Cpa NEGOTIATION3Ivan Magalhaes
1015Kadeem D StockhamJapan2026-08-19Morlong Associates RENEWAL3Amy Elsner
1016Munro D IturbideBrazil2026-08-14Feltz Printing Service RENEWAL21Ivan Magalhaes
1017Chavez F MorascaAustralia2026-08-19Rangoni Of Florence QUALIFIED57Asiya Javayant
1018Jefferson X WieserUnited Kingdom2026-08-27Buckley Miller Wright NEGOTIATION1Bernardo Dominic
1019Stacey Q ShinkoAustralia2026-08-31Printing Dimensions UNQUALIFIED4Ioni Bowcher
1020Maria R CaudyAustralia2026-08-27Benton, John B Jr UNQUALIFIED85Onyama Limba
1021Costa Z SlusarskiUnited Kingdom2026-08-31Buckley Miller Wright UNQUALIFIED76Anna Fali
1022Sinclair D BriddickBrazil2026-08-05Feiner Bros PROPOSAL56Amy Elsner
1023Izzy G MorascaUnited Kingdom2026-08-24King, Christopher A Esq NEW6Bernardo Dominic
1024Ivar N DoeRussia2026-08-29Chapman, Ross E Esq QUALIFIED63Elwin Sharvill
1025Morrow B PerinGermany2026-08-14Feltz Printing Service PROPOSAL7Onyama Limba
1026Leja T MarrierSpain2026-08-13Truhlar And Truhlar Attys QUALIFIED31Asiya Javayant
1027Clifford P MaletUnited Kingdom2026-08-27Rousseaux, Michael Esq PROPOSAL16Bernardo Dominic
1028David Y FollerArgentina2026-09-01Chemel, James L Cpa RENEWAL47Stephen Shaw
1029Rodrigues I ShinkoGermany2026-08-07Morlong Associates RENEWAL55Amy Elsner
1030Arvin H AlbaresIndia2026-08-03Rangoni Of Florence UNQUALIFIED78Asiya Javayant
1031Misaki O NickaFrance2026-08-16Buckley Miller Wright NEW57Stephen Shaw
1032Francesco G BowleyBrazil2026-08-24Morlong Associates QUALIFIED39Anna Fali
1033Adams S GillianRussia2026-08-03Feiner Bros NEGOTIATION55Elwin Sharvill
1034Cody V BriddickArgentina2026-08-13Chemel, James L Cpa NEGOTIATION12Stephen Shaw
1035Emily A MacleadSpain2026-08-25King, Christopher A Esq NEW49Bernardo Dominic
1036Aika H MorascaBrazil2026-08-30Chemel, James L Cpa UNQUALIFIED94Elwin Sharvill
1037Stacey M MorascaIndia2026-08-23Printing Dimensions RENEWAL72Asiya Javayant
1038Stacey J BologniaFrance2026-08-30Chanay, Jeffrey A Esq UNQUALIFIED43Ioni Bowcher
1039Chavez D FollerFrance2026-08-23Morlong Associates PROPOSAL69Stephen Shaw
1040Morrow D MaletCanada2026-08-16Rousseaux, Michael Esq NEW59Asiya Javayant
1041Chavez W ButtRussia2026-08-25Chapman, Ross E Esq NEGOTIATION35Onyama Limba
1042Leon U GauchoSpain2026-09-01Morlong Associates UNQUALIFIED0Elwin Sharvill
1043Aruna H MaletAustralia2026-08-04Dorl, James J Esq NEGOTIATION51Xuxue Feng
1044Juan H FerenczCanada2026-08-22Feiner Bros NEW88Stephen Shaw
1045Leon R FigeroaRussia2026-08-20Dorl, James J Esq RENEWAL93Asiya Javayant
1046Izzy M AlbaresFrance2026-08-28Truhlar And Truhlar Attys RENEWAL62Ioni Bowcher
1047Clifford P SergiCanada2026-08-09Truhlar And Truhlar Attys UNQUALIFIED50Asiya Javayant
1048Cody L PerinArgentina2026-08-28Printing Dimensions QUALIFIED71Ivan Magalhaes
1049Ashley S CaldareraCanada2026-08-19Commercial Press QUALIFIED83Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel B OldroydAustraliaAnna Fali RENEWAL
Deepesh T DoeRussiaIoni Bowcher UNQUALIFIED
Costa A SchemmerArgentinaOnyama Limba NEW
Emily H GauchoJapanAmy Elsner RENEWAL
Aditya R GauchoIndiaBernardo Dominic PROPOSAL
Alejandro F TollnerIndiaAsiya Javayant UNQUALIFIED
Jennifer V WaycottArgentinaBernardo Dominic UNQUALIFIED
Kadeem S CaudyIndiaStephen Shaw NEW
Ivar J OstroskyItalyStephen Shaw RENEWAL
Faith X TollnerGermanyStephen Shaw UNQUALIFIED
Nicolas V WieserAustraliaIoni Bowcher NEW
Faith B MorascaGermanyAnna Fali NEGOTIATION
Maisha R PaprockiArgentinaAsiya Javayant NEGOTIATION
Smith V WaycottAustraliaAmy Elsner PROPOSAL
Mujtaba D MarrierBrazilXuxue Feng NEGOTIATION
James G MacleadJapanAmy Elsner UNQUALIFIED
Claire R PerinGermanyIvan Magalhaes NEW
Ricardo V MorascaSpainElwin Sharvill PROPOSAL
Adams M ChuiIndiaAnna Fali RENEWAL
Nicolas F PerinGermanyStephen Shaw QUALIFIED
Tony Q ButtRussiaAmy Elsner NEGOTIATION
Leon L WaycottUnited KingdomIoni Bowcher PROPOSAL
Silvio P GillianCanadaIoni Bowcher RENEWAL
Maisha E GillianJapanIoni Bowcher PROPOSAL
Alejandro T WieserGermanyXuxue Feng RENEWAL
Kaitlin J RimItalyOnyama Limba NEGOTIATION
Octavia Q SchemmerRussiaXuxue Feng RENEWAL
Sinclair Q InouyeArgentinaOnyama Limba UNQUALIFIED
Isabel E BriddickBrazilIoni Bowcher RENEWAL
Octavia L FollerSpainAnna Fali PROPOSAL
David T KolmetzSpainOnyama Limba NEGOTIATION
Aruna T AmigonBrazilElwin Sharvill NEW
Johnson Q AmigonItalyAmy Elsner NEW
Maisha F IturbideFranceElwin Sharvill QUALIFIED
Leja V BriddickCanadaStephen Shaw RENEWAL
Smith R CaudyGermanyXuxue Feng UNQUALIFIED
Mayumi R AmigonItalyOnyama Limba UNQUALIFIED
Antonio E IturbideSpainIoni Bowcher NEW
Jennifer K GarufiCanadaElwin Sharvill RENEWAL
Arvin X RutaArgentinaIvan Magalhaes NEGOTIATION
Adams J ShinkoFranceAmy Elsner QUALIFIED
Nicolas T StockhamRussiaAnna Fali UNQUALIFIED
Octavia V GlickItalyAnna Fali PROPOSAL
Maria O VenereJapanAnna Fali RENEWAL
Maisha J InouyeBrazilAsiya Javayant NEGOTIATION
Alejandro G ChuiArgentinaBernardo Dominic PROPOSAL
Morrow H MarrierFranceAnna Fali QUALIFIED
Rodrigues Z CaudyCanadaBernardo Dominic RENEWAL
Leja A DarakjySpainElwin Sharvill NEW
Misaki E MarrierGermanyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Octavia L Marrier
Smith F Kusko
Faith W Stockham
Johnson W Garufi
James B Figeroa
Ricardo Z Caudy
Leon K Figeroa
Clifford L Glick
Johnson N Doe
Kaitlin I Rulapaugh
Costa E Morasca
Salvatore N Butt
Tony O Marrier
Jones A Figeroa
Aditya H Stockham
Izzy A Amigon
Johnson E Tollner
Alejandro X Vocelka
Deepesh H Albares
Julie Z Saylors
Misaki J Ruta
Deepesh I Oldroyd
Greenwood G Caldarera
Ricardo Y Sergi
Octavia I Nestle
Costa E Poquette
Nicolas M Perin
Jones X Vocelka
Jefferson H Poquette
Murillo K Marrier
Julie H Briddick
Silvio C Royster
Maria L Caldarera
Morrow X Briddick
Leja L Gaucho
Clifford O Bolognia
Tony J Nestle
Antonio G Rulapaugh
Juan L Caudy
Faith T Oldroyd
Jennifer Y Kolmetz
Ivar Z Inouye
Jeanfrancois E Morasca
Darci W Shinko
Antonio S Rulapaugh
Aditya Y Campain
Leon I Paprocki
Deepesh L Nestle
Darci W Nicka
Aika V Flosi
IdCountryDate
1000Germany2026-08-23
1001India2026-08-16
1002Argentina2026-08-23
1003Russia2026-08-24
1004United Kingdom2026-08-05
1005India2026-08-04
1006Australia2026-08-19
1007Brazil2026-08-26
1008Australia2026-08-20
1009Spain2026-08-16
1010Italy2026-08-11
1011France2026-08-08
1012Australia2026-08-22
1013Brazil2026-08-30
1014Spain2026-08-04
1015United Kingdom2026-08-28
1016Russia2026-08-14
1017India2026-08-12
1018Italy2026-08-13
1019Canada2026-09-01
1020Russia2026-08-03
1021Japan2026-08-23
1022India2026-08-17
1023France2026-08-29
1024Argentina2026-08-22
1025Russia2026-08-29
1026India2026-08-10
1027Russia2026-08-21
1028France2026-08-12
1029India2026-08-29
1030Japan2026-08-03
1031United Kingdom2026-08-14
1032United Kingdom2026-08-16
1033Brazil2026-08-31
1034France2026-08-29
1035Germany2026-08-23
1036India2026-08-29
1037Italy2026-08-22
1038Japan2026-08-18
1039France2026-08-09
1040Australia2026-08-27
1041Spain2026-08-24
1042Spain2026-08-05
1043Spain2026-08-04
1044France2026-08-08
1045Japan2026-08-29
1046Brazil2026-08-21
1047India2026-08-04
1048Brazil2026-08-11
1049India2026-08-19

On-Demand Data

NameIdCountryDate
Salvatore X Kusko1000France2026-08-14
Aika A Caldarera1001Germany2026-09-01
Ivar V Shinko1002Russia2026-08-28
Darci W Bolognia1003Russia2026-08-15
Munro M Dilliard1004Canada2026-08-26
Wickens P Rulapaugh1005India2026-08-10
Faith S Caudy1006Spain2026-08-13
Kaitlin P Saylors1007France2026-08-25
Jones C Figeroa1008France2026-08-30
Mayumi N Gillian1009Canada2026-08-31
Leja Q Rulapaugh1010Germany2026-08-24
Chavez Q Stockham1011Japan2026-08-12
Smith Q Royster1012United Kingdom2026-08-26
Chavez Y Chui1013Brazil2026-08-30
Costa U Maclead1014United Kingdom2026-08-22
Johnson X Perin1015United Kingdom2026-08-18
Stacey M Poquette1016Germany2026-08-21
Deepesh M Tollner1017Italy2026-08-26
Sinclair R Malet1018India2026-08-05
Jefferson C Caldarera1019Italy2026-08-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo A WhobreyArgentinaAmy Elsner NEGOTIATION
Ivar Q IturbideJapanStephen Shaw UNQUALIFIED
Isabel T FerenczSpainElwin Sharvill NEGOTIATION
Emily F MacleadSpainAnna Fali RENEWAL
Aika O GarufiJapanIoni Bowcher PROPOSAL
Salvatore H OstroskyItalyIvan Magalhaes UNQUALIFIED
Sinclair Q MaletSpainAmy Elsner QUALIFIED
Jefferson D MaletSpainBernardo Dominic NEGOTIATION
Stacey P ButtBrazilIoni Bowcher PROPOSAL
David E ChuiFranceElwin Sharvill QUALIFIED
Claire N StensethSpainBernardo Dominic RENEWAL
Smith J TollnerFranceAnna Fali RENEWAL
Mujtaba K IturbideArgentinaBernardo Dominic NEGOTIATION
Tony D PaprockiBrazilElwin Sharvill QUALIFIED
Murillo L ButtGermanyElwin Sharvill PROPOSAL
Wickens E DarakjyItalyAsiya Javayant QUALIFIED
Juan N MarrierSpainIoni Bowcher NEGOTIATION
Clifford M BologniaRussiaElwin Sharvill QUALIFIED
Francesco S FlosiItalyXuxue Feng QUALIFIED
Claire A ButtItalyIoni Bowcher NEW
Izzy K GlickCanadaAmy Elsner NEW
Ashley F VenereSpainOnyama Limba QUALIFIED
Nicolas U ButtAustraliaIoni Bowcher NEGOTIATION
Kadeem G RulapaughIndiaAsiya Javayant UNQUALIFIED
Aika K ButtUnited KingdomIoni Bowcher NEW
Antonio Y DilliardArgentinaElwin Sharvill QUALIFIED
Jefferson W WieserUnited KingdomElwin Sharvill QUALIFIED
Mayumi I RoysterAustraliaBernardo Dominic RENEWAL
Smith U StensethSpainAsiya Javayant PROPOSAL
Alejandro F WaycottCanadaStephen Shaw NEGOTIATION
Deepesh R MorascaItalyIvan Magalhaes QUALIFIED
Jones O TollnerGermanyElwin Sharvill NEW
Stacey K ButtIndiaBernardo Dominic PROPOSAL
Kadeem F NickaSpainXuxue Feng QUALIFIED
David R OstroskyRussiaIvan Magalhaes QUALIFIED
Antonio X FlosiCanadaXuxue Feng UNQUALIFIED
Jennifer V KolmetzCanadaIvan Magalhaes RENEWAL
Greenwood T TollnerCanadaIoni Bowcher UNQUALIFIED
Antonio I RutaSpainAsiya Javayant RENEWAL
Juan P WaycottJapanStephen Shaw 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>