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
Costa Y DarakjyItalyStephen Shaw NEW
Ricardo C SlusarskiBrazilBernardo Dominic RENEWAL
Jeanfrancois W StensethRussiaAsiya Javayant NEGOTIATION
Ricardo U FlosiArgentinaXuxue Feng QUALIFIED
Arvin F GlickIndiaAmy Elsner RENEWAL
James N FerenczItalyAnna Fali NEW
Izzy J ChuiAustraliaAmy Elsner NEW
Stacey L VocelkaRussiaOnyama Limba RENEWAL
Antonio L GauchoIndiaAnna Fali RENEWAL
Octavia Y WieserFranceIvan Magalhaes UNQUALIFIED
Julie C MaletCanadaAmy Elsner QUALIFIED
Morrow I NickaArgentinaAnna Fali UNQUALIFIED
Kaitlin Y OstroskyRussiaStephen Shaw QUALIFIED
Ivar Z GillianArgentinaStephen Shaw RENEWAL
Munro F BriddickItalyAnna Fali NEW
Munro H KolmetzGermanyIoni Bowcher UNQUALIFIED
Julie R PerinAustraliaAsiya Javayant QUALIFIED
Antonio I GlickCanadaOnyama Limba NEGOTIATION
Ricardo L AlbaresRussiaOnyama Limba QUALIFIED
Ashley E DoeAustraliaStephen Shaw RENEWAL
Jefferson M MacleadGermanyIvan Magalhaes UNQUALIFIED
Adams H InouyeJapanXuxue Feng NEW
Aditya I ButtFranceStephen Shaw UNQUALIFIED
Rodrigues C MaletGermanyStephen Shaw NEGOTIATION
Alejandro L NickaGermanyAnna Fali NEGOTIATION
Arvin F RimAustraliaXuxue Feng QUALIFIED
Jones E SaylorsUnited KingdomIvan Magalhaes RENEWAL
Nicolas M BologniaFranceAnna Fali UNQUALIFIED
Munro U IturbideIndiaOnyama Limba QUALIFIED
Faith R BriddickArgentinaIvan Magalhaes NEGOTIATION
Morrow M TollnerIndiaElwin Sharvill RENEWAL
Costa O DoeBrazilOnyama Limba RENEWAL
Salvatore G SergiArgentinaOnyama Limba RENEWAL
Francesco X MarrierRussiaAmy Elsner QUALIFIED
Kadeem S MaletItalyXuxue Feng NEGOTIATION
Misaki B PaprockiSpainAmy Elsner QUALIFIED
David B WaycottArgentinaIoni Bowcher RENEWAL
Jeanfrancois Q ButtIndiaStephen Shaw NEGOTIATION
Munro F FerenczBrazilIoni Bowcher RENEWAL
Tony X StockhamItalyAsiya Javayant NEW
Clifford M InouyeJapanIvan Magalhaes UNQUALIFIED
Jefferson S FollerFranceXuxue Feng QUALIFIED
David P RulapaughBrazilAsiya Javayant PROPOSAL
Kaitlin D WhobreySpainIvan Magalhaes PROPOSAL
Faith C FlosiJapanXuxue Feng RENEWAL
Faith I PerinSpainIoni Bowcher UNQUALIFIED
Arvin E DilliardGermanyIvan Magalhaes NEW
Smith C NestleFranceAsiya Javayant RENEWAL
Sinclair W OstroskyArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois E RulapaughGermanyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha Y PerinItalyAmy Elsner RENEWAL
Darci R VenereBrazilAnna Fali PROPOSAL
Aruna U KuskoIndiaBernardo Dominic NEGOTIATION
Nicolas Y DilliardJapanIvan Magalhaes RENEWAL
Mayumi Q SaylorsItalyIvan Magalhaes NEW
Aika S MaletGermanyIvan Magalhaes QUALIFIED
Stacey L BriddickGermanyAnna Fali RENEWAL
Salvatore A WhobreyRussiaAsiya Javayant QUALIFIED
Aruna Q SchemmerRussiaStephen Shaw RENEWAL
Leja H BriddickGermanyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith U SaylorsFrance2026-08-18King, Christopher A Esq RENEWAL81Elwin Sharvill
1001Munro X AlbaresBrazil2026-08-02Commercial Press RENEWAL19Stephen Shaw
1002Emily L MacleadIndia2026-07-31Chapman, Ross E Esq RENEWAL63Bernardo Dominic
1003Sinclair B IturbideUnited Kingdom2026-08-04Chanay, Jeffrey A Esq NEGOTIATION19Stephen Shaw
1004Mujtaba W FigeroaBrazil2026-08-11Chanay, Jeffrey A Esq RENEWAL71Ivan Magalhaes
1005Mayumi W BriddickJapan2026-08-15Truhlar And Truhlar Attys NEW43Elwin Sharvill
1006Leja P OldroydSpain2026-08-14Truhlar And Truhlar Attys QUALIFIED23Ivan Magalhaes
1007Ricardo Z StockhamCanada2026-08-04King, Christopher A Esq PROPOSAL55Ioni Bowcher
1008Cody M SlusarskiJapan2026-08-12King, Christopher A Esq NEW79Bernardo Dominic
1009Arvin B OldroydFrance2026-07-27Chanay, Jeffrey A Esq QUALIFIED18Ivan Magalhaes
1010Maria P FigeroaBrazil2026-08-10Buckley Miller Wright UNQUALIFIED48Amy Elsner
1011Aruna B AlbaresArgentina2026-08-03Chapman, Ross E Esq NEGOTIATION57Anna Fali
1012Octavia S ButtArgentina2026-08-11Buckley Miller Wright UNQUALIFIED73Stephen Shaw
1013Ivar G DoeAustralia2026-07-25Dorl, James J Esq NEW76Ioni Bowcher
1014Adams T BriddickIndia2026-07-27Rousseaux, Michael Esq NEW47Elwin Sharvill
1015Cody G TollnerIndia2026-07-28Chapman, Ross E Esq NEW87Asiya Javayant
1016Jefferson T FerenczUnited Kingdom2026-07-29Benton, John B Jr UNQUALIFIED1Ivan Magalhaes
1017Maisha B BriddickIndia2026-08-14Buckley Miller Wright NEW88Anna Fali
1018Misaki O RimGermany2026-08-02King, Christopher A Esq RENEWAL16Amy Elsner
1019Costa W WaycottGermany2026-07-26Chanay, Jeffrey A Esq NEW67Xuxue Feng
1020Silvio R MaletFrance2026-08-01Chapman, Ross E Esq NEGOTIATION46Ivan Magalhaes
1021Ivar L NestleCanada2026-08-10Truhlar And Truhlar Attys RENEWAL59Ivan Magalhaes
1022Sinclair F RutaFrance2026-07-31Chapman, Ross E Esq QUALIFIED57Ivan Magalhaes
1023Greenwood X WieserIndia2026-08-05Chemel, James L Cpa PROPOSAL23Amy Elsner
1024Murillo M MarrierCanada2026-08-09Dorl, James J Esq QUALIFIED87Elwin Sharvill
1025Ivar P MaletFrance2026-08-09Dorl, James J Esq NEGOTIATION84Amy Elsner
1026Arvin X FollerFrance2026-07-29Benton, John B Jr UNQUALIFIED5Xuxue Feng
1027Jones Z BologniaJapan2026-07-28Feiner Bros QUALIFIED5Xuxue Feng
1028Salvatore N ShinkoRussia2026-08-09Rousseaux, Michael Esq UNQUALIFIED13Ioni Bowcher
1029Deepesh A KuskoIndia2026-08-18Chanay, Jeffrey A Esq PROPOSAL32Xuxue Feng
1030Faith M DarakjyAustralia2026-07-23Rousseaux, Michael Esq RENEWAL66Elwin Sharvill
1031David A VenereFrance2026-07-23Truhlar And Truhlar Attys RENEWAL93Elwin Sharvill
1032Emily Q WaycottArgentina2026-08-15Rousseaux, Michael Esq NEW81Bernardo Dominic
1033Clifford E AlbaresAustralia2026-08-15Rangoni Of Florence PROPOSAL57Amy Elsner
1034Aika O FigeroaAustralia2026-08-15Printing Dimensions NEW24Asiya Javayant
1035Nicolas D WieserBrazil2026-08-02King, Christopher A Esq UNQUALIFIED45Bernardo Dominic
1036Cody I OstroskySpain2026-08-05Rangoni Of Florence NEW92Ivan Magalhaes
1037Aika L KuskoCanada2026-08-08Feltz Printing Service QUALIFIED43Xuxue Feng
1038Aditya O ChuiRussia2026-08-19Benton, John B Jr NEW77Stephen Shaw
1039Costa H KuskoRussia2026-08-06Dorl, James J Esq RENEWAL70Ioni Bowcher
1040Francesco U PerinIndia2026-08-03Rangoni Of Florence UNQUALIFIED47Bernardo Dominic
1041Chavez F KuskoIndia2026-07-31Feiner Bros NEGOTIATION40Bernardo Dominic
1042Faith E RulapaughIndia2026-08-02Chanay, Jeffrey A Esq QUALIFIED79Stephen Shaw
1043Kadeem G FlosiItaly2026-08-17Feiner Bros RENEWAL86Ivan Magalhaes
1044Jefferson N DarakjyBrazil2026-08-18Feltz Printing Service NEW65Elwin Sharvill
1045Kaitlin W VocelkaSpain2026-08-08Chemel, James L Cpa NEW33Anna Fali
1046Costa G GlickJapan2026-07-25Feiner Bros QUALIFIED97Onyama Limba
1047Alejandro W KuskoUnited Kingdom2026-08-07Benton, John B Jr NEGOTIATION64Onyama Limba
1048Arvin J WaycottGermany2026-08-19Rangoni Of Florence NEGOTIATION39Anna Fali
1049Leon J InouyeRussia2026-07-31Feltz Printing Service NEGOTIATION58Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Isabel O MorascaArgentinaXuxue Feng QUALIFIED
Emily D RulapaughJapanIoni Bowcher NEW
Ricardo D MacleadArgentinaIvan Magalhaes RENEWAL
Darci K OldroydBrazilXuxue Feng UNQUALIFIED
Nicolas S OstroskyRussiaStephen Shaw RENEWAL
Clifford O GauchoRussiaOnyama Limba PROPOSAL
Arvin M RutaSpainAsiya Javayant NEGOTIATION
Morrow R WieserSpainIoni Bowcher UNQUALIFIED
Cody M WaycottAustraliaIvan Magalhaes PROPOSAL
Stacey J IturbideIndiaBernardo Dominic QUALIFIED
Francesco L VocelkaCanadaXuxue Feng RENEWAL
Antonio Q FigeroaSpainAsiya Javayant PROPOSAL
Faith X MacleadRussiaStephen Shaw RENEWAL
Kadeem R PaprockiUnited KingdomIoni Bowcher NEW
Aruna V WaycottBrazilOnyama Limba QUALIFIED
Alejandro K MarrierSpainElwin Sharvill RENEWAL
Deepesh P GillianGermanyIvan Magalhaes NEGOTIATION
Tony S IturbideRussiaStephen Shaw QUALIFIED
Nicolas K StensethItalyStephen Shaw NEGOTIATION
Alejandro J SlusarskiBrazilBernardo Dominic UNQUALIFIED
Ashley K InouyeJapanAmy Elsner RENEWAL
Jones C RimBrazilAsiya Javayant UNQUALIFIED
Jennifer F TollnerAustraliaOnyama Limba NEGOTIATION
Rodrigues H NickaJapanElwin Sharvill QUALIFIED
Ricardo A RutaJapanAmy Elsner NEGOTIATION
Darci Q PaprockiAustraliaIvan Magalhaes NEW
Maria X RutaArgentinaElwin Sharvill RENEWAL
Darci B InouyeFranceOnyama Limba RENEWAL
Leja R VenereAustraliaIvan Magalhaes UNQUALIFIED
Mayumi O CaudyRussiaBernardo Dominic QUALIFIED
Greenwood V SchemmerIndiaXuxue Feng NEGOTIATION
Chavez X ButtGermanyStephen Shaw NEW
Aika H RutaGermanyAsiya Javayant PROPOSAL
Francesco G CampainIndiaAmy Elsner QUALIFIED
Darci P InouyeUnited KingdomStephen Shaw UNQUALIFIED
Izzy A MacleadFranceAmy Elsner NEGOTIATION
Sinclair V BologniaRussiaAnna Fali RENEWAL
Ashley I AlbaresBrazilAnna Fali QUALIFIED
Leon Q CampainCanadaXuxue Feng UNQUALIFIED
Jefferson G CaldareraBrazilXuxue Feng RENEWAL
Aika K DilliardBrazilXuxue Feng NEW
Darci V DilliardBrazilAmy Elsner NEW
Munro D AmigonIndiaXuxue Feng NEW
Morrow D BowleySpainIoni Bowcher RENEWAL
Mayumi Q WaycottSpainAnna Fali PROPOSAL
Morrow Q FlosiItalyAsiya Javayant NEW
Kadeem M PerinGermanyIvan Magalhaes RENEWAL
Deepesh O KolmetzUnited KingdomAsiya Javayant QUALIFIED
Kaitlin C ButtItalyAsiya Javayant PROPOSAL
Misaki J PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Mayumi X Ostrosky
Nicolas X Venere
Clifford V Albares
Leja R Rulapaugh
Izzy L Marrier
Wickens R Foller
Arvin K Wieser
Smith I Oldroyd
Wickens M Whobrey
Leon A Bowley
Rodrigues Z Doe
Murillo G Bolognia
Rodrigues S Gaucho
Aditya O Caudy
James Y Vocelka
Leon K Chui
Costa R Amigon
Sinclair L Poquette
Mayumi A Glick
Deepesh W Rim
Ashley S Venere
Misaki F Caudy
Izzy G Wieser
Alejandro G Marrier
Stacey V Butt
Antonio U Oldroyd
Claire H Malet
Maria A Gaucho
Ricardo N Tollner
Mujtaba D Bolognia
Jennifer X Bolognia
Darci D Gillian
Jones S Doe
Morrow T Malet
Aika D Foller
Jennifer J Shinko
Rodrigues Y Bolognia
Murillo Z Inouye
Cody L Figeroa
Stacey M Briddick
Murillo T Amigon
Ashley N Kolmetz
Aditya M Gillian
Morrow M Waycott
Deepesh T Stockham
Octavia O Tollner
Ricardo B Malet
Ricardo P Bowley
Ashley S Dilliard
Leja L Darakjy
IdCountryDate
1000Russia2026-08-14
1001Japan2026-08-11
1002India2026-07-30
1003France2026-08-02
1004Canada2026-08-12
1005Italy2026-07-27
1006Germany2026-08-05
1007France2026-08-16
1008Brazil2026-08-20
1009India2026-08-16
1010Italy2026-08-19
1011Italy2026-07-31
1012Japan2026-07-24
1013Australia2026-07-22
1014Russia2026-07-29
1015Germany2026-07-27
1016Japan2026-08-17
1017Argentina2026-07-27
1018Brazil2026-07-29
1019Australia2026-07-28
1020Argentina2026-08-08
1021United Kingdom2026-07-29
1022India2026-08-10
1023United Kingdom2026-08-10
1024Argentina2026-08-09
1025Spain2026-08-11
1026Australia2026-08-12
1027Argentina2026-08-05
1028Australia2026-08-07
1029Russia2026-08-12
1030Argentina2026-07-24
1031Argentina2026-07-24
1032Argentina2026-07-29
1033United Kingdom2026-08-13
1034Canada2026-07-27
1035United Kingdom2026-08-13
1036United Kingdom2026-08-04
1037Brazil2026-07-22
1038Canada2026-08-09
1039Germany2026-08-17
1040Australia2026-08-03
1041Germany2026-07-24
1042France2026-08-17
1043United Kingdom2026-08-08
1044France2026-07-25
1045Germany2026-07-22
1046Canada2026-07-28
1047Germany2026-07-30
1048India2026-07-27
1049Australia2026-07-25

On-Demand Data

NameIdCountryDate
Aditya I Waycott1000Brazil2026-08-09
Aditya N Nestle1001Spain2026-08-17
Alejandro P Paprocki1002United Kingdom2026-07-24
Mayumi J Iturbide1003France2026-08-15
Chavez U Amigon1004Japan2026-07-25
Ricardo E Venere1005India2026-08-04
Mayumi Y Kolmetz1006India2026-08-01
Alejandro K Dilliard1007India2026-07-23
Darci G Slusarski1008Spain2026-08-11
Jeanfrancois C Gillian1009France2026-08-10
Ivar K Chui1010France2026-08-16
Ricardo K Figeroa1011Spain2026-08-13
David Z Rulapaugh1012Brazil2026-08-07
Sinclair K Slusarski1013Canada2026-07-23
Mayumi C Tollner1014Canada2026-08-12
Misaki I Caudy1015Germany2026-08-02
Murillo I Caudy1016Spain2026-08-07
Tony D Malet1017United Kingdom2026-07-27
Murillo G Perin1018Germany2026-08-15
Leja O Briddick1019Japan2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley H OstroskyFranceAnna Fali RENEWAL
Adams F DoeJapanOnyama Limba NEW
Ricardo P VenereRussiaIvan Magalhaes PROPOSAL
Sinclair C NickaCanadaBernardo Dominic UNQUALIFIED
Maisha C WieserSpainIvan Magalhaes NEW
Morrow A FollerArgentinaStephen Shaw RENEWAL
Tony Y FerenczSpainOnyama Limba NEW
Sinclair U DarakjyJapanAnna Fali PROPOSAL
Claire E WaycottUnited KingdomAnna Fali PROPOSAL
Jefferson D RutaArgentinaAmy Elsner NEGOTIATION
Izzy A ButtItalyAsiya Javayant NEW
Rodrigues S DilliardRussiaBernardo Dominic PROPOSAL
Salvatore S NickaItalyElwin Sharvill QUALIFIED
Adams P ChuiJapanIvan Magalhaes NEW
Jennifer X PerinIndiaIoni Bowcher NEW
Maisha P RulapaughArgentinaOnyama Limba PROPOSAL
Johnson A SaylorsArgentinaXuxue Feng PROPOSAL
Mayumi J AlbaresGermanyAsiya Javayant QUALIFIED
Maria S VenereUnited KingdomOnyama Limba NEW
Octavia O IturbideRussiaOnyama Limba PROPOSAL
Murillo H NickaArgentinaElwin Sharvill PROPOSAL
Tony K FerenczItalyAmy Elsner NEGOTIATION
Mayumi O SlusarskiArgentinaElwin Sharvill NEGOTIATION
Faith X BowleyIndiaXuxue Feng UNQUALIFIED
Juan U CampainGermanyOnyama Limba RENEWAL
Emily K PaprockiJapanBernardo Dominic NEW
Claire X VocelkaAustraliaIoni Bowcher QUALIFIED
Julie D NickaBrazilOnyama Limba QUALIFIED
Chavez H ShinkoSpainIvan Magalhaes RENEWAL
Maisha Q FigeroaFranceAsiya Javayant NEW
Sinclair U StockhamItalyAmy Elsner RENEWAL
Salvatore R RulapaughRussiaIvan Magalhaes RENEWAL
Jeanfrancois G CampainRussiaXuxue Feng QUALIFIED
Jefferson O NestleArgentinaBernardo Dominic RENEWAL
Deepesh A StockhamSpainBernardo Dominic PROPOSAL
Mayumi D SchemmerAustraliaOnyama Limba PROPOSAL
Kaitlin T BowleyAustraliaStephen Shaw UNQUALIFIED
Mayumi I ButtRussiaElwin Sharvill NEW
Mayumi Q TollnerIndiaAmy Elsner NEW
Deepesh G WaycottJapanAmy Elsner 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>