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
Ivar A SchemmerAustraliaBernardo Dominic UNQUALIFIED
Leon E SaylorsBrazilOnyama Limba NEW
Leon R MorascaCanadaAnna Fali PROPOSAL
Octavia E FigeroaCanadaElwin Sharvill NEW
Stacey W BologniaJapanXuxue Feng PROPOSAL
James B BologniaAustraliaXuxue Feng QUALIFIED
Greenwood C DoeJapanAnna Fali NEGOTIATION
Chavez J VenereArgentinaIoni Bowcher UNQUALIFIED
Antonio S TollnerRussiaStephen Shaw PROPOSAL
Murillo G MaletBrazilElwin Sharvill RENEWAL
Aika R CaudyBrazilIvan Magalhaes QUALIFIED
Smith X PoquetteItalyXuxue Feng RENEWAL
Salvatore I ChuiItalyElwin Sharvill RENEWAL
Leon Q BologniaCanadaAmy Elsner RENEWAL
Deepesh W RoysterBrazilXuxue Feng NEW
Alejandro J NickaGermanyOnyama Limba NEGOTIATION
Rodrigues D OldroydRussiaXuxue Feng RENEWAL
David Q GillianArgentinaStephen Shaw PROPOSAL
Izzy J GauchoGermanyXuxue Feng NEW
Claire W ShinkoRussiaAmy Elsner NEW
Faith K WieserGermanyAmy Elsner UNQUALIFIED
David X WieserArgentinaAnna Fali NEW
Maria N RoysterBrazilBernardo Dominic NEGOTIATION
David B RulapaughItalyOnyama Limba PROPOSAL
Mujtaba P CampainAustraliaBernardo Dominic UNQUALIFIED
Wickens I VenereFranceAsiya Javayant NEGOTIATION
Aruna D SchemmerArgentinaXuxue Feng NEW
David D WhobreyBrazilStephen Shaw PROPOSAL
Kadeem E PoquetteGermanyIvan Magalhaes NEGOTIATION
Murillo R GlickSpainAmy Elsner UNQUALIFIED
Munro W VocelkaIndiaXuxue Feng UNQUALIFIED
Rodrigues S ChuiCanadaXuxue Feng NEGOTIATION
Greenwood P NickaIndiaStephen Shaw NEW
Antonio X KolmetzGermanyAsiya Javayant NEGOTIATION
Tony M PoquetteCanadaAmy Elsner NEGOTIATION
Juan L PoquetteBrazilIvan Magalhaes UNQUALIFIED
Jefferson E GauchoItalyElwin Sharvill NEW
Maria S OstroskyCanadaIvan Magalhaes UNQUALIFIED
Wickens M OstroskyIndiaAsiya Javayant RENEWAL
Isabel G PerinFranceBernardo Dominic NEW
Alejandro L MorascaArgentinaXuxue Feng NEW
Stacey O NestleBrazilAmy Elsner UNQUALIFIED
Clifford R MacleadAustraliaAsiya Javayant PROPOSAL
Alejandro Y ShinkoAustraliaIoni Bowcher NEW
Alejandro O AmigonJapanAsiya Javayant NEW
Maria C FerenczArgentinaAnna Fali UNQUALIFIED
Johnson U SchemmerArgentinaIvan Magalhaes QUALIFIED
Aika G RutaBrazilIoni Bowcher UNQUALIFIED
Leon Z OldroydCanadaXuxue Feng NEW
Tony H OstroskyFranceStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson A TollnerAustraliaAmy Elsner UNQUALIFIED
David F NickaUnited KingdomAsiya Javayant QUALIFIED
Alejandro W KuskoGermanyAmy Elsner NEW
Smith H RulapaughArgentinaOnyama Limba QUALIFIED
Salvatore I IturbideGermanyIoni Bowcher NEW
Jeanfrancois D ChuiCanadaOnyama Limba RENEWAL
Adams N CaudySpainAnna Fali RENEWAL
Mayumi E CampainUnited KingdomIoni Bowcher UNQUALIFIED
Wickens K BowleyIndiaAnna Fali UNQUALIFIED
David D WaycottSpainIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer C CaudyUnited Kingdom2026-07-26Morlong Associates QUALIFIED1Elwin Sharvill
1001Jeanfrancois Z FerenczUnited Kingdom2026-08-13Morlong Associates RENEWAL59Anna Fali
1002Alejandro Q MaletCanada2026-07-27Chemel, James L Cpa UNQUALIFIED58Onyama Limba
1003Leja F GillianSpain2026-08-07Benton, John B Jr NEGOTIATION78Anna Fali
1004Wickens J MarrierRussia2026-08-05Feltz Printing Service NEGOTIATION24Asiya Javayant
1005Aika W FlosiIndia2026-08-17Chemel, James L Cpa PROPOSAL49Bernardo Dominic
1006Arvin A PoquetteArgentina2026-08-11Benton, John B Jr NEW77Ivan Magalhaes
1007Tony N RimBrazil2026-08-19Rousseaux, Michael Esq PROPOSAL83Stephen Shaw
1008Jefferson M GlickRussia2026-08-03Feiner Bros RENEWAL27Amy Elsner
1009Tony T CaudyUnited Kingdom2026-08-06Dorl, James J Esq NEGOTIATION97Onyama Limba
1010David A PoquetteRussia2026-08-16Rangoni Of Florence QUALIFIED44Stephen Shaw
1011Kaitlin Z GarufiSpain2026-08-12Chemel, James L Cpa NEW98Anna Fali
1012Chavez F GillianUnited Kingdom2026-08-11Feltz Printing Service UNQUALIFIED82Elwin Sharvill
1013Morrow X CaldareraUnited Kingdom2026-08-15Dorl, James J Esq NEGOTIATION84Stephen Shaw
1014Leja O WhobreySpain2026-08-23Buckley Miller Wright NEW40Asiya Javayant
1015Alejandro R BowleyIndia2026-08-06Morlong Associates PROPOSAL57Amy Elsner
1016Aika I DarakjyCanada2026-08-07King, Christopher A Esq RENEWAL4Amy Elsner
1017Ashley P ChuiUnited Kingdom2026-08-09Rangoni Of Florence UNQUALIFIED28Bernardo Dominic
1018Ricardo K OldroydFrance2026-08-13Commercial Press RENEWAL0Amy Elsner
1019Kaitlin Q VocelkaJapan2026-08-22Buckley Miller Wright QUALIFIED31Ioni Bowcher
1020Chavez W VocelkaAustralia2026-08-05King, Christopher A Esq NEW37Elwin Sharvill
1021Jefferson O WieserSpain2026-08-08Printing Dimensions NEGOTIATION66Elwin Sharvill
1022Francesco E RulapaughJapan2026-07-30Buckley Miller Wright QUALIFIED25Ioni Bowcher
1023Greenwood V CaldareraAustralia2026-08-03Truhlar And Truhlar Attys PROPOSAL62Amy Elsner
1024Morrow X CampainBrazil2026-08-09Dorl, James J Esq UNQUALIFIED64Xuxue Feng
1025Ricardo Y AmigonBrazil2026-08-19Chanay, Jeffrey A Esq NEGOTIATION7Asiya Javayant
1026Alejandro S BriddickJapan2026-08-20Commercial Press UNQUALIFIED38Elwin Sharvill
1027Jennifer W SlusarskiBrazil2026-08-17Feltz Printing Service RENEWAL23Anna Fali
1028Ashley N FlosiItaly2026-08-01Feltz Printing Service PROPOSAL18Asiya Javayant
1029Leja P MorascaUnited Kingdom2026-07-26Feltz Printing Service NEW21Ivan Magalhaes
1030Salvatore F DoeAustralia2026-07-25King, Christopher A Esq QUALIFIED90Asiya Javayant
1031Aditya G RimIndia2026-07-26Feiner Bros NEGOTIATION2Xuxue Feng
1032Izzy G FigeroaBrazil2026-08-16Buckley Miller Wright NEGOTIATION16Stephen Shaw
1033Jones D VocelkaBrazil2026-08-16Dorl, James J Esq RENEWAL43Elwin Sharvill
1034Maria F AmigonGermany2026-07-25Feiner Bros RENEWAL2Ivan Magalhaes
1035Izzy K CampainRussia2026-08-16Rangoni Of Florence NEGOTIATION78Stephen Shaw
1036David V OldroydSpain2026-08-12Dorl, James J Esq NEGOTIATION84Bernardo Dominic
1037Izzy P WhobreyBrazil2026-08-15King, Christopher A Esq QUALIFIED32Stephen Shaw
1038Salvatore E SchemmerGermany2026-08-17Rangoni Of Florence QUALIFIED87Xuxue Feng
1039Johnson U KuskoArgentina2026-08-20Dorl, James J Esq QUALIFIED44Xuxue Feng
1040Clifford U WhobreyAustralia2026-07-31Morlong Associates UNQUALIFIED52Asiya Javayant
1041James I FerenczGermany2026-08-11Truhlar And Truhlar Attys PROPOSAL88Bernardo Dominic
1042David D StensethCanada2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED95Elwin Sharvill
1043Octavia V GarufiRussia2026-07-30Chapman, Ross E Esq NEGOTIATION8Asiya Javayant
1044Claire D MaletFrance2026-07-30Truhlar And Truhlar Attys NEW34Xuxue Feng
1045Ashley W BriddickUnited Kingdom2026-08-17Benton, John B Jr NEW18Bernardo Dominic
1046David B AmigonUnited Kingdom2026-07-28Feltz Printing Service PROPOSAL46Onyama Limba
1047Maria A VenereGermany2026-08-10Printing Dimensions UNQUALIFIED36Elwin Sharvill
1048Jeanfrancois B VenereJapan2026-08-07Rousseaux, Michael Esq UNQUALIFIED58Onyama Limba
1049James H AmigonItaly2026-08-14Buckley Miller Wright NEW85Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Clifford U ShinkoItalyAsiya Javayant UNQUALIFIED
Johnson J WhobreyBrazilOnyama Limba QUALIFIED
Cody C BowleyIndiaElwin Sharvill QUALIFIED
Rodrigues Y KolmetzArgentinaAmy Elsner UNQUALIFIED
Kadeem U KuskoIndiaStephen Shaw PROPOSAL
Tony V WhobreyIndiaBernardo Dominic QUALIFIED
Ivar N WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Nicolas P ButtArgentinaAsiya Javayant QUALIFIED
Francesco V NickaArgentinaAnna Fali PROPOSAL
Mujtaba S ButtArgentinaIoni Bowcher QUALIFIED
David Q VocelkaGermanyIoni Bowcher NEW
Munro F MaletSpainStephen Shaw PROPOSAL
Silvio L BologniaUnited KingdomXuxue Feng QUALIFIED
Stacey X ChuiJapanStephen Shaw NEW
Maria T GarufiJapanIvan Magalhaes PROPOSAL
Chavez E MorascaRussiaIvan Magalhaes NEW
Murillo U RimJapanBernardo Dominic RENEWAL
Ashley H GlickItalyIvan Magalhaes NEW
David Z CampainFranceAmy Elsner UNQUALIFIED
Morrow G DarakjyBrazilAmy Elsner UNQUALIFIED
Salvatore T RulapaughSpainStephen Shaw RENEWAL
Leja X AmigonUnited KingdomXuxue Feng RENEWAL
Francesco M DarakjyFranceXuxue Feng QUALIFIED
Isabel I MaletFranceAmy Elsner QUALIFIED
Octavia E CaldareraFranceAnna Fali PROPOSAL
Faith L RutaFranceBernardo Dominic NEW
Maria M RulapaughJapanBernardo Dominic PROPOSAL
Kaitlin R NickaUnited KingdomAsiya Javayant NEW
Jefferson B TollnerRussiaBernardo Dominic PROPOSAL
Tony L BowleyFranceAmy Elsner NEW
Cody F NestleArgentinaIvan Magalhaes PROPOSAL
Jefferson F StensethItalyAnna Fali RENEWAL
Silvio L VenereCanadaAsiya Javayant NEGOTIATION
Sinclair M DarakjyJapanIoni Bowcher QUALIFIED
Ashley T OstroskyBrazilAsiya Javayant UNQUALIFIED
Kadeem J CaudyJapanAnna Fali UNQUALIFIED
Deepesh E SergiRussiaAsiya Javayant PROPOSAL
Costa V SaylorsItalyAmy Elsner QUALIFIED
Morrow L BriddickGermanyIoni Bowcher UNQUALIFIED
Misaki P BologniaBrazilIvan Magalhaes RENEWAL
Darci A RoysterRussiaAmy Elsner NEGOTIATION
Aruna F PaprockiFranceIvan Magalhaes NEW
Cody H RulapaughBrazilAsiya Javayant RENEWAL
Aditya X OstroskyJapanElwin Sharvill QUALIFIED
Maisha H RoysterArgentinaAmy Elsner UNQUALIFIED
Tony B StockhamIndiaIvan Magalhaes QUALIFIED
Emily G GauchoCanadaIvan Magalhaes QUALIFIED
Julie T GarufiCanadaStephen Shaw NEW
Isabel G BologniaUnited KingdomBernardo Dominic NEGOTIATION
Rodrigues Z IturbideUnited KingdomElwin Sharvill NEGOTIATION
Frozen Columns
Name
Emily S Rulapaugh
Leja J Flosi
Maisha Y Rim
Leon H Ostrosky
Francesco W Stenseth
Johnson U Kusko
Wickens E Stockham
Wickens P Ostrosky
Adams Y Caldarera
Chavez L Bowley
Johnson X Saylors
Deepesh P Albares
Kaitlin L Glick
Antonio M Oldroyd
Adams L Schemmer
Faith J Ostrosky
Darci S Morasca
Ivar X Tollner
Maria S Morasca
Tony P Bowley
Costa V Whobrey
Isabel M Morasca
Nicolas M Bowley
Morrow X Gillian
Darci M Morasca
Aruna R Paprocki
Deepesh M Albares
Kaitlin R Shinko
James Y Slusarski
Misaki O Briddick
Johnson Q Morasca
Arvin E Vocelka
Jeanfrancois K Ferencz
Wickens V Caudy
Chavez D Glick
Wickens H Waycott
Francesco O Gillian
Maisha D Iturbide
Arvin A Slusarski
Deepesh B Garufi
Jeanfrancois M Saylors
Maria S Albares
Kaitlin S Bolognia
Maisha X Dilliard
Wickens H Gaucho
Smith M Doe
Aika I Venere
Johnson I Briddick
Salvatore L Rulapaugh
Aditya W Rim
IdCountryDate
1000Russia2026-08-23
1001Argentina2026-08-03
1002United Kingdom2026-08-12
1003France2026-08-09
1004Australia2026-08-19
1005Argentina2026-08-17
1006United Kingdom2026-08-16
1007Argentina2026-08-18
1008Russia2026-08-19
1009Japan2026-08-20
1010Australia2026-08-16
1011India2026-08-02
1012Australia2026-08-22
1013Italy2026-07-28
1014India2026-08-14
1015France2026-08-06
1016Argentina2026-08-02
1017India2026-08-21
1018India2026-08-07
1019Argentina2026-08-21
1020Germany2026-08-06
1021Argentina2026-07-25
1022United Kingdom2026-08-18
1023Brazil2026-08-12
1024Argentina2026-08-14
1025United Kingdom2026-08-03
1026Russia2026-07-25
1027Brazil2026-08-11
1028Japan2026-08-17
1029Canada2026-08-07
1030Russia2026-08-13
1031Brazil2026-08-10
1032Russia2026-08-04
1033India2026-08-21
1034Russia2026-08-02
1035Germany2026-08-15
1036Spain2026-08-02
1037Italy2026-08-12
1038Australia2026-08-18
1039Japan2026-07-28
1040Brazil2026-08-02
1041Brazil2026-07-29
1042Japan2026-08-09
1043Brazil2026-08-17
1044Germany2026-08-11
1045Spain2026-07-28
1046France2026-08-12
1047Canada2026-08-10
1048Germany2026-08-21
1049Germany2026-08-23

On-Demand Data

NameIdCountryDate
Aruna M Perin1000Russia2026-08-17
Ivar D Kolmetz1001Australia2026-08-23
Juan B Albares1002Spain2026-08-09
Jeanfrancois N Doe1003Brazil2026-08-10
Octavia J Vocelka1004Argentina2026-08-15
Mayumi M Foller1005France2026-07-27
Mujtaba X Poquette1006United Kingdom2026-08-21
Rodrigues K Kolmetz1007India2026-08-17
Mayumi O Sergi1008Spain2026-07-25
Isabel X Perin1009Italy2026-08-07
Isabel P Stenseth1010Spain2026-08-04
Silvio K Dilliard1011Canada2026-08-04
Jefferson O Garufi1012Russia2026-08-13
Jefferson M Rim1013Australia2026-08-04
Jefferson S Morasca1014Canada2026-08-15
Arvin F Briddick1015Germany2026-07-26
Costa F Venere1016United Kingdom2026-08-08
Cody E Sergi1017Spain2026-08-15
Octavia G Waycott1018India2026-08-02
Leja C Garufi1019Argentina2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria Z VenereGermanyAsiya Javayant NEGOTIATION
Clifford M IturbideAustraliaBernardo Dominic UNQUALIFIED
Mujtaba D ShinkoBrazilAmy Elsner QUALIFIED
Darci J CaldareraIndiaElwin Sharvill PROPOSAL
Faith Q TollnerUnited KingdomAmy Elsner UNQUALIFIED
Juan Q RutaSpainBernardo Dominic RENEWAL
Kadeem N FigeroaSpainXuxue Feng NEGOTIATION
Morrow F GauchoArgentinaStephen Shaw RENEWAL
Murillo E WaycottGermanyAsiya Javayant NEW
Faith H GarufiArgentinaOnyama Limba UNQUALIFIED
Rodrigues L RutaSpainBernardo Dominic PROPOSAL
Rodrigues Y KolmetzFranceElwin Sharvill NEW
Sinclair T FollerRussiaAsiya Javayant RENEWAL
Rodrigues D OldroydFranceStephen Shaw NEW
Johnson C StockhamCanadaAnna Fali PROPOSAL
Aditya X PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Izzy D ShinkoUnited KingdomBernardo Dominic NEGOTIATION
Ashley E DilliardGermanyXuxue Feng NEGOTIATION
Ivar G CaldareraIndiaBernardo Dominic RENEWAL
Aruna Q MarrierSpainIoni Bowcher NEGOTIATION
Alejandro S FigeroaBrazilBernardo Dominic UNQUALIFIED
Jefferson E ButtJapanStephen Shaw RENEWAL
Arvin T WhobreyUnited KingdomIoni Bowcher QUALIFIED
Salvatore V FollerSpainAmy Elsner QUALIFIED
Ricardo I MaletJapanOnyama Limba QUALIFIED
Ricardo H MacleadJapanAnna Fali RENEWAL
Salvatore X TollnerUnited KingdomIoni Bowcher NEW
Maisha C DilliardCanadaAsiya Javayant QUALIFIED
Ashley V DoeRussiaElwin Sharvill PROPOSAL
Ivar H CaudyArgentinaAsiya Javayant QUALIFIED
Adams U FollerGermanyIoni Bowcher QUALIFIED
Leja X MarrierCanadaIvan Magalhaes NEW
Misaki X AlbaresBrazilAsiya Javayant NEW
Julie T GarufiUnited KingdomAsiya Javayant NEW
Jones I TollnerRussiaElwin Sharvill NEGOTIATION
Ricardo I WaycottAustraliaStephen Shaw QUALIFIED
James D NestleItalyIvan Magalhaes RENEWAL
Maisha D DilliardCanadaElwin Sharvill QUALIFIED
Mayumi A TollnerUnited KingdomIoni Bowcher QUALIFIED
Francesco Z MaletUnited KingdomElwin Sharvill QUALIFIED

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