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
Antonio J NestleIndiaStephen Shaw NEGOTIATION
Aika K VocelkaUnited KingdomOnyama Limba PROPOSAL
Mayumi Q GarufiGermanyIvan Magalhaes UNQUALIFIED
Mayumi Q PerinSpainStephen Shaw PROPOSAL
Wickens R RulapaughArgentinaIvan Magalhaes QUALIFIED
Kaitlin B FlosiGermanyAnna Fali RENEWAL
Clifford C OldroydCanadaAmy Elsner PROPOSAL
James I RutaIndiaAmy Elsner NEGOTIATION
Leon J PerinGermanyIvan Magalhaes QUALIFIED
Ashley C GauchoFranceAmy Elsner PROPOSAL
Munro C AlbaresGermanyAnna Fali NEGOTIATION
Francesco V GauchoRussiaIvan Magalhaes QUALIFIED
Mayumi M CaldareraJapanXuxue Feng UNQUALIFIED
Mayumi R SergiFranceAnna Fali NEGOTIATION
Maisha K MarrierCanadaIoni Bowcher PROPOSAL
Silvio P StensethCanadaIvan Magalhaes QUALIFIED
Ivar A VocelkaIndiaBernardo Dominic RENEWAL
Mujtaba S PaprockiAustraliaBernardo Dominic NEGOTIATION
Greenwood P BologniaArgentinaBernardo Dominic NEW
Tony W FlosiJapanElwin Sharvill QUALIFIED
Jeanfrancois T NickaRussiaAmy Elsner NEGOTIATION
Francesco M BriddickJapanBernardo Dominic NEW
Ivar W DarakjySpainAnna Fali NEGOTIATION
Sinclair A DarakjyFranceIoni Bowcher RENEWAL
Isabel K MorascaJapanOnyama Limba PROPOSAL
Maria T RulapaughBrazilAnna Fali NEW
Aditya N WieserAustraliaOnyama Limba RENEWAL
Maisha P TollnerSpainElwin Sharvill NEW
Antonio V RutaCanadaOnyama Limba PROPOSAL
Jefferson Z MorascaUnited KingdomOnyama Limba QUALIFIED
Ashley L VocelkaCanadaStephen Shaw QUALIFIED
Salvatore I AlbaresAustraliaIvan Magalhaes NEW
Faith P StensethBrazilAmy Elsner NEGOTIATION
Stacey Q GillianJapanOnyama Limba PROPOSAL
Leja V WieserIndiaAsiya Javayant PROPOSAL
Antonio F NestleGermanyXuxue Feng RENEWAL
Murillo Q KolmetzGermanyOnyama Limba QUALIFIED
Francesco Y DoeItalyAnna Fali NEW
Greenwood X KuskoItalyElwin Sharvill NEGOTIATION
Aika M KuskoRussiaXuxue Feng UNQUALIFIED
Johnson M FlosiIndiaOnyama Limba NEGOTIATION
Aika B FollerIndiaBernardo Dominic NEGOTIATION
David S KuskoFranceIvan Magalhaes UNQUALIFIED
Isabel R WaycottJapanAmy Elsner RENEWAL
Octavia S SergiBrazilElwin Sharvill QUALIFIED
Emily H MaletIndiaOnyama Limba RENEWAL
Mujtaba U MarrierRussiaBernardo Dominic UNQUALIFIED
Clifford O SaylorsAustraliaIvan Magalhaes PROPOSAL
David Q BriddickBrazilIoni Bowcher QUALIFIED
Maria R MarrierArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar S GauchoSpainAmy Elsner RENEWAL
Cody Z TollnerJapanAsiya Javayant PROPOSAL
Aditya U DarakjyBrazilElwin Sharvill QUALIFIED
Antonio V RoysterBrazilXuxue Feng UNQUALIFIED
Smith A MacleadIndiaXuxue Feng QUALIFIED
Tony W RulapaughJapanElwin Sharvill NEGOTIATION
Juan F ShinkoSpainElwin Sharvill UNQUALIFIED
Leja F OldroydFranceAmy Elsner NEGOTIATION
James H RoysterSpainIoni Bowcher PROPOSAL
Greenwood A FollerIndiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair O GlickUnited Kingdom2026-07-20Chanay, Jeffrey A Esq UNQUALIFIED59Anna Fali
1001Rodrigues E StensethRussia2026-08-03Rangoni Of Florence PROPOSAL92Stephen Shaw
1002Greenwood U MaletIndia2026-07-18Morlong Associates NEGOTIATION16Ioni Bowcher
1003Salvatore N WhobreyArgentina2026-07-28Chemel, James L Cpa UNQUALIFIED87Asiya Javayant
1004Ricardo K PerinArgentina2026-07-29Feltz Printing Service PROPOSAL53Anna Fali
1005Claire L InouyeGermany2026-07-19Commercial Press UNQUALIFIED50Ioni Bowcher
1006Adams F FollerFrance2026-07-31Commercial Press UNQUALIFIED81Amy Elsner
1007Isabel M CaldareraCanada2026-07-20Feltz Printing Service PROPOSAL75Ioni Bowcher
1008Aika Y ChuiBrazil2026-08-03Morlong Associates NEW12Bernardo Dominic
1009Aruna D RoysterArgentina2026-07-11Chemel, James L Cpa PROPOSAL11Ioni Bowcher
1010Chavez X OldroydSpain2026-07-21Benton, John B Jr UNQUALIFIED63Anna Fali
1011Ashley Z IturbideUnited Kingdom2026-07-14Dorl, James J Esq QUALIFIED7Ivan Magalhaes
1012Ashley R VenereGermany2026-08-06Chapman, Ross E Esq NEGOTIATION57Amy Elsner
1013Arvin S PoquetteBrazil2026-07-23Benton, John B Jr UNQUALIFIED7Ioni Bowcher
1014Isabel D OldroydBrazil2026-07-23Chapman, Ross E Esq NEW0Stephen Shaw
1015Stacey V AmigonUnited Kingdom2026-08-01Benton, John B Jr PROPOSAL9Ivan Magalhaes
1016Smith K PaprockiArgentina2026-07-19Rousseaux, Michael Esq PROPOSAL50Asiya Javayant
1017Faith J StockhamBrazil2026-07-20Rousseaux, Michael Esq QUALIFIED2Anna Fali
1018Deepesh A MaletRussia2026-08-04Chapman, Ross E Esq QUALIFIED30Anna Fali
1019Clifford L StockhamJapan2026-08-06Morlong Associates UNQUALIFIED26Stephen Shaw
1020Alejandro Y SchemmerFrance2026-07-24Buckley Miller Wright NEGOTIATION99Asiya Javayant
1021Cody I NickaSpain2026-07-19Chanay, Jeffrey A Esq RENEWAL77Xuxue Feng
1022Octavia M StockhamItaly2026-08-08Truhlar And Truhlar Attys NEW87Amy Elsner
1023Jeanfrancois R NestleItaly2026-07-21Truhlar And Truhlar Attys NEGOTIATION86Ioni Bowcher
1024Ashley E ShinkoFrance2026-08-02Chemel, James L Cpa NEW66Amy Elsner
1025Claire E StockhamItaly2026-07-31Buckley Miller Wright RENEWAL92Anna Fali
1026Claire K MaletUnited Kingdom2026-07-11Rangoni Of Florence QUALIFIED23Ioni Bowcher
1027Costa S PerinFrance2026-08-02Dorl, James J Esq PROPOSAL80Amy Elsner
1028James H SergiIndia2026-07-30Morlong Associates UNQUALIFIED37Ivan Magalhaes
1029Julie K FollerItaly2026-08-04Buckley Miller Wright QUALIFIED33Bernardo Dominic
1030Darci D GillianArgentina2026-07-13Dorl, James J Esq NEW73Stephen Shaw
1031Salvatore T DoeAustralia2026-07-10Dorl, James J Esq PROPOSAL67Ivan Magalhaes
1032Isabel N IturbideAustralia2026-07-11Dorl, James J Esq NEW88Onyama Limba
1033Darci P GlickIndia2026-07-23Chanay, Jeffrey A Esq NEW67Onyama Limba
1034Kadeem I CampainArgentina2026-07-27Chapman, Ross E Esq RENEWAL38Bernardo Dominic
1035Deepesh R InouyeRussia2026-07-25King, Christopher A Esq NEW9Ivan Magalhaes
1036Alejandro Z CaudyIndia2026-07-18Chanay, Jeffrey A Esq NEW72Ivan Magalhaes
1037David W StockhamAustralia2026-07-24Printing Dimensions RENEWAL89Ioni Bowcher
1038Silvio H SergiCanada2026-07-19Truhlar And Truhlar Attys NEGOTIATION69Elwin Sharvill
1039Silvio M AlbaresSpain2026-07-22Truhlar And Truhlar Attys QUALIFIED36Stephen Shaw
1040Izzy R CampainUnited Kingdom2026-07-18Feltz Printing Service QUALIFIED20Bernardo Dominic
1041Ricardo P StensethCanada2026-08-06Dorl, James J Esq UNQUALIFIED54Bernardo Dominic
1042Jefferson I PerinCanada2026-07-23Dorl, James J Esq NEGOTIATION54Asiya Javayant
1043Alejandro S SaylorsFrance2026-07-15Commercial Press QUALIFIED58Onyama Limba
1044Izzy V MaletCanada2026-07-15Rangoni Of Florence RENEWAL78Stephen Shaw
1045Mujtaba D SchemmerUnited Kingdom2026-07-27Chapman, Ross E Esq PROPOSAL22Ioni Bowcher
1046Aditya Y RutaBrazil2026-07-30Rousseaux, Michael Esq RENEWAL68Elwin Sharvill
1047Ashley P ShinkoAustralia2026-07-21Chemel, James L Cpa PROPOSAL63Asiya Javayant
1048Jefferson I MorascaFrance2026-07-18Chapman, Ross E Esq NEGOTIATION8Ivan Magalhaes
1049Clifford R FlosiSpain2026-07-31Truhlar And Truhlar Attys PROPOSAL59Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Smith T BowleyIndiaAsiya Javayant RENEWAL
Maria R StockhamAustraliaBernardo Dominic RENEWAL
Wickens I GarufiCanadaAnna Fali QUALIFIED
Jefferson T AlbaresIndiaBernardo Dominic QUALIFIED
Jennifer S KolmetzSpainAnna Fali NEW
Maisha V SchemmerUnited KingdomOnyama Limba NEGOTIATION
Stacey K SergiItalyXuxue Feng NEGOTIATION
Johnson F PaprockiArgentinaElwin Sharvill QUALIFIED
Francesco P CaudyAustraliaAmy Elsner NEW
Alejandro B SergiArgentinaIvan Magalhaes PROPOSAL
Adams Y MaletIndiaIoni Bowcher RENEWAL
Cody S AlbaresAustraliaXuxue Feng RENEWAL
Leja L StensethBrazilAsiya Javayant NEW
Arvin H VenereFranceStephen Shaw PROPOSAL
Jefferson D PoquetteUnited KingdomBernardo Dominic RENEWAL
Darci U PerinSpainXuxue Feng NEW
David L GillianJapanOnyama Limba UNQUALIFIED
Faith O GauchoBrazilIoni Bowcher NEW
Isabel N OldroydArgentinaElwin Sharvill PROPOSAL
Cody B DoeAustraliaAsiya Javayant PROPOSAL
Octavia A FigeroaRussiaIvan Magalhaes NEW
Mayumi Q PerinUnited KingdomIoni Bowcher QUALIFIED
Aika V GlickFranceBernardo Dominic NEW
Maria T BowleyIndiaIvan Magalhaes RENEWAL
Wickens O MarrierAustraliaOnyama Limba NEGOTIATION
Ivar C PerinItalyOnyama Limba QUALIFIED
Arvin H NickaRussiaStephen Shaw RENEWAL
Ivar R NickaItalyBernardo Dominic PROPOSAL
Alejandro G GlickBrazilIvan Magalhaes PROPOSAL
Faith H CampainArgentinaAnna Fali QUALIFIED
Isabel L SergiBrazilAnna Fali UNQUALIFIED
Clifford Y CaldareraBrazilElwin Sharvill RENEWAL
Wickens H OstroskyGermanyXuxue Feng RENEWAL
Cody T VocelkaFranceBernardo Dominic NEGOTIATION
Clifford X MacleadArgentinaElwin Sharvill QUALIFIED
Mayumi Z InouyeRussiaAsiya Javayant PROPOSAL
Jefferson V BriddickGermanyAsiya Javayant RENEWAL
Ricardo S InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Isabel B WaycottJapanXuxue Feng UNQUALIFIED
Chavez L SlusarskiUnited KingdomStephen Shaw QUALIFIED
Jones V SchemmerArgentinaAnna Fali UNQUALIFIED
Octavia C GauchoArgentinaBernardo Dominic UNQUALIFIED
Cody F SaylorsIndiaAmy Elsner NEW
Aruna I VenereItalyAmy Elsner NEGOTIATION
Wickens L FlosiCanadaXuxue Feng RENEWAL
Octavia P GillianCanadaStephen Shaw QUALIFIED
Alejandro R PerinIndiaStephen Shaw UNQUALIFIED
Tony Q StockhamArgentinaBernardo Dominic QUALIFIED
Mujtaba F PerinArgentinaOnyama Limba NEW
Izzy L InouyeSpainStephen Shaw UNQUALIFIED
Frozen Columns
Name
Greenwood T Chui
Octavia H Flosi
David W Marrier
Aruna O Poquette
Ashley W Iturbide
James E Amigon
Alejandro D Stockham
Kadeem W Garufi
Maisha L Marrier
Jefferson G Poquette
Maisha M Malet
Juan B Rim
Maria V Marrier
Salvatore D Kolmetz
Johnson W Nestle
Costa X Oldroyd
Greenwood W Stenseth
Ricardo Y Campain
Greenwood K Gillian
Maria I Shinko
Jones Y Amigon
Sinclair W Wieser
Aruna B Dilliard
Nicolas O Iturbide
Mujtaba N Chui
Maria P Sergi
Greenwood U Malet
Darci I Maclead
Clifford I Figeroa
Claire I Briddick
Antonio G Poquette
Johnson V Waycott
Octavia M Kusko
Kadeem O Garufi
Ashley L Foller
Maria M Tollner
Alejandro Y Ferencz
Faith C Nestle
Cody M Garufi
Deepesh T Slusarski
Sinclair D Poquette
Costa L Perin
David J Amigon
Julie J Briddick
Stacey T Darakjy
Ricardo X Rulapaugh
Cody T Iturbide
Silvio W Foller
Tony G Rulapaugh
Ricardo V Campain
IdCountryDate
1000India2026-08-08
1001Argentina2026-08-04
1002Russia2026-07-22
1003India2026-07-24
1004Argentina2026-08-02
1005Germany2026-07-24
1006India2026-07-20
1007India2026-07-26
1008Russia2026-08-02
1009Russia2026-07-27
1010Brazil2026-08-01
1011Germany2026-07-16
1012Italy2026-08-02
1013France2026-07-25
1014Brazil2026-07-16
1015Brazil2026-07-12
1016Japan2026-07-11
1017France2026-07-20
1018Germany2026-08-01
1019Germany2026-07-30
1020Germany2026-07-22
1021Italy2026-07-27
1022United Kingdom2026-07-10
1023Italy2026-07-27
1024India2026-08-07
1025Canada2026-07-13
1026Germany2026-08-06
1027India2026-07-26
1028Germany2026-08-07
1029Russia2026-08-01
1030Russia2026-07-15
1031France2026-07-20
1032Argentina2026-07-30
1033Australia2026-07-22
1034Germany2026-08-07
1035France2026-08-02
1036Russia2026-07-26
1037Japan2026-07-23
1038Italy2026-07-21
1039Japan2026-07-19
1040Japan2026-07-31
1041France2026-07-31
1042United Kingdom2026-07-20
1043Brazil2026-08-04
1044India2026-07-26
1045India2026-07-19
1046Brazil2026-07-12
1047Brazil2026-08-07
1048India2026-08-01
1049Australia2026-07-31

On-Demand Data

NameIdCountryDate
Cody D Bolognia1000Canada2026-07-23
Isabel T Tollner1001Canada2026-07-10
Emily U Saylors1002Germany2026-07-29
James V Briddick1003United Kingdom2026-08-02
Mayumi H Wieser1004Spain2026-08-05
Juan K Perin1005India2026-08-05
Clifford N Schemmer1006Spain2026-07-28
Cody S Shinko1007France2026-07-19
Antonio Z Oldroyd1008Russia2026-07-12
Ivar P Nicka1009France2026-07-20
Greenwood C Briddick1010Canada2026-07-23
Nicolas J Kolmetz1011Italy2026-08-04
Salvatore J Sergi1012Russia2026-08-07
Jennifer P Poquette1013Australia2026-08-04
Claire I Albares1014Italy2026-07-21
Sinclair Z Shinko1015Germany2026-07-21
Clifford K Doe1016United Kingdom2026-07-26
Jennifer L Vocelka1017Japan2026-08-02
Johnson P Stenseth1018Russia2026-07-30
Kaitlin A Schemmer1019Australia2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria E ChuiIndiaBernardo Dominic UNQUALIFIED
Kadeem T IturbideJapanElwin Sharvill QUALIFIED
Darci I FlosiJapanStephen Shaw NEGOTIATION
Costa U SergiFranceIoni Bowcher QUALIFIED
Wickens R CaudyRussiaIoni Bowcher NEGOTIATION
Morrow H AmigonArgentinaElwin Sharvill PROPOSAL
Wickens Z WhobreySpainXuxue Feng QUALIFIED
Leja N RoysterFranceAnna Fali NEGOTIATION
Leja S IturbideArgentinaIoni Bowcher PROPOSAL
James N CampainBrazilIvan Magalhaes NEGOTIATION
Munro P InouyeAustraliaAsiya Javayant NEGOTIATION
Misaki A WaycottItalyAnna Fali PROPOSAL
Tony B TollnerJapanIoni Bowcher PROPOSAL
Rodrigues T DoeArgentinaAmy Elsner PROPOSAL
Aruna N WhobreyGermanyIoni Bowcher RENEWAL
Cody R BriddickJapanElwin Sharvill QUALIFIED
Izzy Z RoysterUnited KingdomAnna Fali UNQUALIFIED
Chavez U ShinkoUnited KingdomAsiya Javayant QUALIFIED
Maria R SchemmerJapanAsiya Javayant RENEWAL
Salvatore R RutaJapanElwin Sharvill UNQUALIFIED
Johnson G MorascaAustraliaIoni Bowcher RENEWAL
Darci R DoeItalyElwin Sharvill NEGOTIATION
Claire X AlbaresJapanStephen Shaw UNQUALIFIED
Kaitlin O MaletSpainElwin Sharvill QUALIFIED
Greenwood S FollerFranceIvan Magalhaes RENEWAL
Costa W SlusarskiBrazilXuxue Feng NEW
Mujtaba W StockhamItalyOnyama Limba NEW
Stacey I KuskoSpainStephen Shaw RENEWAL
Leja R OstroskyRussiaXuxue Feng PROPOSAL
Clifford B GauchoArgentinaBernardo Dominic NEGOTIATION
Ricardo U ShinkoItalyBernardo Dominic QUALIFIED
Jefferson R InouyeBrazilOnyama Limba PROPOSAL
Antonio M KolmetzBrazilIvan Magalhaes NEW
Antonio I VocelkaFranceIoni Bowcher QUALIFIED
Claire M SlusarskiCanadaAsiya Javayant NEGOTIATION
Alejandro F DilliardRussiaIoni Bowcher NEGOTIATION
Smith X FigeroaUnited KingdomXuxue Feng NEGOTIATION
Darci Z StockhamJapanIvan Magalhaes NEW
Aditya K KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Darci B CampainFranceAsiya Javayant PROPOSAL

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