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
James K MaletBrazilAsiya Javayant PROPOSAL
Jeanfrancois N IturbideItalyAnna Fali PROPOSAL
Maisha O ShinkoBrazilAsiya Javayant RENEWAL
Jeanfrancois E VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Claire D GarufiSpainAsiya Javayant NEW
Adams Q KuskoIndiaAsiya Javayant UNQUALIFIED
Chavez Z CaldareraBrazilXuxue Feng PROPOSAL
Aditya B GauchoJapanElwin Sharvill NEW
Wickens I RutaBrazilIvan Magalhaes QUALIFIED
Jeanfrancois A AlbaresFranceIoni Bowcher PROPOSAL
Leon B OstroskyCanadaOnyama Limba NEW
Maria U DilliardCanadaBernardo Dominic NEW
Leon C IturbideArgentinaIoni Bowcher PROPOSAL
Ashley Y NestleItalyBernardo Dominic UNQUALIFIED
Maisha O FollerBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois K FerenczFranceStephen Shaw NEW
Aditya P MacleadBrazilOnyama Limba RENEWAL
Misaki M AmigonBrazilElwin Sharvill PROPOSAL
Stacey F GlickUnited KingdomAmy Elsner PROPOSAL
Mayumi A TollnerCanadaAsiya Javayant RENEWAL
Morrow F NickaAustraliaAmy Elsner QUALIFIED
Isabel U DilliardAustraliaXuxue Feng RENEWAL
Stacey L RutaBrazilAmy Elsner NEW
Kaitlin X MorascaIndiaOnyama Limba NEGOTIATION
Jefferson B GillianSpainElwin Sharvill PROPOSAL
Antonio T SchemmerCanadaAmy Elsner QUALIFIED
Chavez L RimJapanBernardo Dominic RENEWAL
Leon U OldroydUnited KingdomOnyama Limba RENEWAL
Kaitlin X GarufiBrazilIvan Magalhaes NEGOTIATION
Munro O TollnerBrazilXuxue Feng NEW
Smith F BriddickFranceXuxue Feng NEGOTIATION
Wickens T MaletGermanyIvan Magalhaes UNQUALIFIED
Wickens T RimCanadaBernardo Dominic RENEWAL
Misaki I MorascaIndiaStephen Shaw UNQUALIFIED
Murillo X IturbideItalyAsiya Javayant RENEWAL
Johnson H CaldareraItalyAmy Elsner QUALIFIED
Arvin J ButtUnited KingdomIoni Bowcher QUALIFIED
Maria T CaldareraItalyAsiya Javayant NEGOTIATION
Emily M RulapaughItalyIvan Magalhaes NEW
Arvin H StockhamGermanyXuxue Feng PROPOSAL
Kaitlin G CaudyRussiaAsiya Javayant NEGOTIATION
Chavez Q FigeroaItalyIoni Bowcher UNQUALIFIED
Smith F GlickSpainAmy Elsner QUALIFIED
Maria M OstroskyGermanyBernardo Dominic RENEWAL
Juan V CaudyAustraliaStephen Shaw PROPOSAL
Smith N MaletArgentinaIvan Magalhaes NEW
Tony S ChuiBrazilIvan Magalhaes QUALIFIED
Clifford C NestleGermanyIvan Magalhaes NEGOTIATION
Tony E PerinGermanyIoni Bowcher PROPOSAL
Francesco X DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio D StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Adams I VocelkaIndiaAnna Fali NEGOTIATION
Clifford Y BriddickArgentinaStephen Shaw NEW
Chavez G ButtBrazilStephen Shaw NEW
Murillo S NickaBrazilBernardo Dominic RENEWAL
Salvatore F TollnerJapanElwin Sharvill RENEWAL
Leja U SchemmerSpainAnna Fali QUALIFIED
Greenwood D KolmetzUnited KingdomElwin Sharvill PROPOSAL
Salvatore K SaylorsUnited KingdomAmy Elsner NEW
Ivar S MaletItalyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo E KolmetzCanada2024-06-20Printing Dimensions RENEWAL53Asiya Javayant
1001Leon O IturbideArgentina2024-06-21Rangoni Of Florence UNQUALIFIED12Amy Elsner
1002Costa M VocelkaSpain2024-06-17Truhlar And Truhlar Attys UNQUALIFIED54Amy Elsner
1003Maisha X BowleyUnited Kingdom2024-06-06Printing Dimensions QUALIFIED61Anna Fali
1004Jeanfrancois L MaletCanada2024-05-31Buckley Miller Wright QUALIFIED80Xuxue Feng
1005Misaki H VenereJapan2024-05-31Chapman, Ross E Esq QUALIFIED20Amy Elsner
1006Aditya K SergiUnited Kingdom2024-06-07Printing Dimensions NEGOTIATION38Ivan Magalhaes
1007Deepesh O RoysterFrance2024-06-22Rousseaux, Michael Esq NEGOTIATION92Anna Fali
1008Smith L SergiCanada2024-05-27Rousseaux, Michael Esq NEGOTIATION87Stephen Shaw
1009Leon I GlickIndia2024-05-26Rangoni Of Florence RENEWAL43Bernardo Dominic
1010Octavia G GlickBrazil2024-06-06Printing Dimensions NEGOTIATION54Amy Elsner
1011Murillo B NickaArgentina2024-05-28Chapman, Ross E Esq RENEWAL57Stephen Shaw
1012Rodrigues C BologniaIndia2024-06-17Truhlar And Truhlar Attys QUALIFIED89Bernardo Dominic
1013Maria Q SaylorsUnited Kingdom2024-06-03Rousseaux, Michael Esq RENEWAL14Asiya Javayant
1014Costa Y MaletSpain2024-06-19Commercial Press RENEWAL50Asiya Javayant
1015Tony P StockhamArgentina2024-06-09Commercial Press NEW60Xuxue Feng
1016Munro R FigeroaIndia2024-06-09Benton, John B Jr NEGOTIATION11Bernardo Dominic
1017Wickens F IturbideUnited Kingdom2024-06-08Printing Dimensions NEW37Elwin Sharvill
1018Morrow D FlosiUnited Kingdom2024-06-18Truhlar And Truhlar Attys PROPOSAL26Ivan Magalhaes
1019Mayumi T GauchoCanada2024-06-16Feiner Bros PROPOSAL45Xuxue Feng
1020Salvatore J GillianFrance2024-06-19Rangoni Of Florence PROPOSAL87Elwin Sharvill
1021Francesco V WieserItaly2024-06-22Benton, John B Jr QUALIFIED34Anna Fali
1022Alejandro Q AlbaresGermany2024-06-10Chapman, Ross E Esq QUALIFIED12Asiya Javayant
1023Munro Z GlickJapan2024-06-12Dorl, James J Esq NEGOTIATION52Onyama Limba
1024Antonio E TollnerItaly2024-06-05Morlong Associates RENEWAL21Elwin Sharvill
1025Francesco U PaprockiFrance2024-06-19Dorl, James J Esq PROPOSAL50Amy Elsner
1026Juan W ChuiArgentina2024-06-13Dorl, James J Esq QUALIFIED59Elwin Sharvill
1027Aika P GarufiSpain2024-06-05King, Christopher A Esq PROPOSAL45Elwin Sharvill
1028Claire F GauchoIndia2024-06-22Morlong Associates RENEWAL67Onyama Limba
1029Jeanfrancois F FollerGermany2024-06-03Dorl, James J Esq RENEWAL31Xuxue Feng
1030Claire R TollnerCanada2024-06-08Benton, John B Jr UNQUALIFIED33Asiya Javayant
1031Leon N AlbaresUnited Kingdom2024-05-25Feiner Bros NEGOTIATION24Ioni Bowcher
1032Murillo M KuskoIndia2024-05-25Morlong Associates NEW41Bernardo Dominic
1033Kaitlin D MorascaRussia2024-06-06Dorl, James J Esq QUALIFIED6Amy Elsner
1034Munro Z DoeAustralia2024-05-27Chapman, Ross E Esq UNQUALIFIED53Stephen Shaw
1035Smith F MaletFrance2024-06-18Chanay, Jeffrey A Esq PROPOSAL18Xuxue Feng
1036James I StockhamIndia2024-06-18Dorl, James J Esq PROPOSAL66Amy Elsner
1037Ivar K CaldareraFrance2024-06-07Feiner Bros NEW68Amy Elsner
1038Leja E NickaBrazil2024-06-17Dorl, James J Esq NEW24Stephen Shaw
1039Francesco W BriddickRussia2024-06-02Chanay, Jeffrey A Esq QUALIFIED78Amy Elsner
1040Morrow R DilliardAustralia2024-06-09Morlong Associates PROPOSAL36Onyama Limba
1041Emily E OstroskyIndia2024-06-16Chapman, Ross E Esq RENEWAL15Anna Fali
1042Leon I OldroydUnited Kingdom2024-06-22Truhlar And Truhlar Attys NEGOTIATION85Bernardo Dominic
1043Julie G KolmetzSpain2024-05-30Rangoni Of Florence NEW48Ioni Bowcher
1044Munro S GillianCanada2024-06-10Chapman, Ross E Esq QUALIFIED46Asiya Javayant
1045Faith O MarrierIndia2024-06-05Rousseaux, Michael Esq RENEWAL85Ioni Bowcher
1046Silvio K FerenczUnited Kingdom2024-05-24Buckley Miller Wright NEW33Elwin Sharvill
1047Aruna J KuskoFrance2024-06-18Commercial Press UNQUALIFIED67Asiya Javayant
1048Arvin J WieserBrazil2024-06-22King, Christopher A Esq QUALIFIED33Ioni Bowcher
1049Munro Z MaletJapan2024-06-06Buckley Miller Wright NEGOTIATION83Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez C GlickFranceOnyama Limba PROPOSAL
Chavez I SlusarskiAustraliaStephen Shaw NEW
Leja Z GarufiRussiaXuxue Feng QUALIFIED
Adams Q CaudyJapanAnna Fali NEW
Nicolas Z MorascaCanadaIoni Bowcher NEGOTIATION
Alejandro L ChuiRussiaAsiya Javayant QUALIFIED
Maisha H GarufiIndiaOnyama Limba NEGOTIATION
Juan T RoysterGermanyIvan Magalhaes NEGOTIATION
Costa X MorascaRussiaAmy Elsner NEGOTIATION
Alejandro X CampainItalyElwin Sharvill PROPOSAL
Alejandro R NickaBrazilOnyama Limba NEW
Faith P OstroskyFranceXuxue Feng NEGOTIATION
Leja A InouyeGermanyElwin Sharvill NEW
Emily Z PaprockiRussiaOnyama Limba RENEWAL
Izzy H DilliardGermanyIvan Magalhaes RENEWAL
Izzy D CampainFranceXuxue Feng UNQUALIFIED
Aditya K FollerFranceBernardo Dominic NEGOTIATION
Maisha B MaletItalyAnna Fali UNQUALIFIED
Jennifer U KolmetzItalyIvan Magalhaes RENEWAL
Morrow Z DilliardArgentinaBernardo Dominic RENEWAL
Nicolas G BowleyCanadaIoni Bowcher NEGOTIATION
Leon L FerenczArgentinaElwin Sharvill PROPOSAL
Salvatore A MaletBrazilAsiya Javayant PROPOSAL
Deepesh Z CaldareraAustraliaStephen Shaw QUALIFIED
Izzy K WhobreyItalyAnna Fali UNQUALIFIED
Munro W PoquetteCanadaIoni Bowcher RENEWAL
Octavia E NickaCanadaStephen Shaw NEW
Ricardo M GauchoSpainAsiya Javayant NEW
Aditya Y MaletGermanyBernardo Dominic PROPOSAL
Jennifer V StockhamBrazilAsiya Javayant PROPOSAL
Maria M GillianIndiaBernardo Dominic PROPOSAL
Claire A OldroydRussiaIoni Bowcher NEW
Mujtaba I OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Arvin I InouyeIndiaIoni Bowcher QUALIFIED
Arvin N GillianCanadaElwin Sharvill NEGOTIATION
Emily P SergiUnited KingdomIoni Bowcher NEW
Maisha S NestleCanadaStephen Shaw PROPOSAL
Cody X CaudySpainXuxue Feng QUALIFIED
Misaki R MaletBrazilStephen Shaw NEW
Arvin U MaletBrazilIvan Magalhaes PROPOSAL
Claire R IturbideArgentinaStephen Shaw UNQUALIFIED
Kadeem X DarakjyBrazilAnna Fali NEGOTIATION
Kadeem Q KolmetzAustraliaOnyama Limba NEW
Aditya L MorascaItalyElwin Sharvill NEGOTIATION
Maria X WaycottAustraliaIvan Magalhaes NEW
Misaki X OldroydAustraliaBernardo Dominic PROPOSAL
Morrow W MaletRussiaIvan Magalhaes QUALIFIED
Chavez Q GillianIndiaBernardo Dominic NEGOTIATION
Maisha I AmigonArgentinaAmy Elsner UNQUALIFIED
Aditya V SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Octavia B Venere
Isabel E Ruta
Aruna M Wieser
Rodrigues V Paprocki
Maria L Bolognia
Isabel Z Perin
Tony M Maclead
David D Stenseth
Wickens W Butt
Smith G Albares
Nicolas T Flosi
Maria V Figeroa
Maria X Ruta
Isabel H Bowley
Nicolas P Briddick
Maria N Saylors
Silvio X Rulapaugh
Juan D Albares
Chavez B Nicka
Nicolas S Bolognia
Silvio Z Rim
Jefferson O Doe
Jeanfrancois G Rulapaugh
Costa N Briddick
Isabel S Nestle
Costa E Caudy
Clifford Y Vocelka
Maria T Glick
Aruna P Amigon
Salvatore V Albares
Francesco A Poquette
Mayumi G Caudy
Jones L Inouye
Mujtaba A Sergi
Jeanfrancois L Whobrey
David W Stenseth
Octavia J Stenseth
Smith J Malet
Aditya J Garufi
Johnson A Doe
Maria V Waycott
Ashley V Perin
Clifford R Venere
Claire Q Darakjy
Mujtaba H Butt
Salvatore K Iturbide
Maisha R Iturbide
Nicolas B Maclead
Aditya C Doe
Claire U Kusko
IdCountryDate
1000Brazil2024-06-04
1001Australia2024-06-22
1002Japan2024-06-14
1003France2024-06-13
1004Canada2024-06-03
1005India2024-06-19
1006France2024-06-18
1007Brazil2024-06-08
1008Brazil2024-06-10
1009Spain2024-06-06
1010Argentina2024-05-27
1011Japan2024-06-13
1012United Kingdom2024-05-24
1013United Kingdom2024-06-08
1014United Kingdom2024-05-25
1015Italy2024-05-31
1016Brazil2024-06-06
1017Spain2024-06-02
1018Brazil2024-06-04
1019Argentina2024-05-28
1020France2024-06-03
1021Argentina2024-05-30
1022Germany2024-06-09
1023Germany2024-06-21
1024Brazil2024-05-25
1025Australia2024-06-15
1026Australia2024-06-08
1027Russia2024-06-03
1028Australia2024-06-10
1029Italy2024-05-24
1030Japan2024-06-18
1031France2024-06-19
1032Spain2024-06-07
1033Spain2024-06-10
1034Australia2024-06-09
1035Australia2024-06-09
1036Australia2024-05-29
1037Argentina2024-05-27
1038France2024-06-08
1039Russia2024-06-13
1040Brazil2024-06-06
1041Japan2024-05-25
1042Russia2024-05-29
1043United Kingdom2024-06-03
1044Italy2024-05-28
1045Canada2024-06-08
1046Italy2024-06-10
1047Brazil2024-06-06
1048Brazil2024-06-10
1049Russia2024-06-14

On-Demand Data

NameIdCountryDate
Emily Y Ruta1000Germany2024-05-27
Aika H Tollner1001United Kingdom2024-06-06
Francesco Q Marrier1002Japan2024-06-03
Ricardo R Doe1003Spain2024-06-20
Aditya Y Bowley1004United Kingdom2024-06-20
Greenwood U Oldroyd1005Spain2024-05-31
Isabel C Stenseth1006Germany2024-06-19
Silvio I Ruta1007India2024-06-01
Alejandro I Iturbide1008France2024-05-28
Cody Y Rulapaugh1009Germany2024-06-06
Tony D Kolmetz1010Canada2024-06-04
Darci B Rulapaugh1011Canada2024-06-10
Leja I Nestle1012Australia2024-06-16
Adams R Wieser1013United Kingdom2024-06-22
Chavez N Perin1014United Kingdom2024-05-24
Arvin K Stockham1015France2024-06-16
Ashley I Venere1016Spain2024-06-08
Morrow Q Kusko1017France2024-06-22
Jennifer Y Nicka1018United Kingdom2024-06-17
Izzy F Gillian1019Brazil2024-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith I OldroydCanadaXuxue Feng NEW
Morrow Y KuskoCanadaBernardo Dominic NEGOTIATION
Stacey N BriddickJapanAmy Elsner PROPOSAL
Mujtaba E AmigonArgentinaAnna Fali NEGOTIATION
Francesco U NickaCanadaAmy Elsner QUALIFIED
Ashley X DoeArgentinaBernardo Dominic NEGOTIATION
Izzy U AmigonSpainElwin Sharvill NEW
Jeanfrancois O BowleyFranceIvan Magalhaes PROPOSAL
Salvatore J NestleFranceAmy Elsner UNQUALIFIED
Rodrigues S FigeroaSpainElwin Sharvill QUALIFIED
Darci S IturbideArgentinaAnna Fali RENEWAL
Chavez J RulapaughArgentinaAnna Fali QUALIFIED
Isabel Y PoquetteJapanAsiya Javayant UNQUALIFIED
Mayumi A FollerIndiaIvan Magalhaes QUALIFIED
Adams D CaldareraUnited KingdomXuxue Feng RENEWAL
Misaki L KolmetzSpainAsiya Javayant QUALIFIED
Cody Z AlbaresItalyAnna Fali NEW
Clifford U GauchoCanadaBernardo Dominic PROPOSAL
Octavia T ShinkoSpainOnyama Limba NEGOTIATION
Clifford O GauchoArgentinaIvan Magalhaes QUALIFIED
James Q SlusarskiCanadaIoni Bowcher QUALIFIED
Stacey D WhobreyJapanOnyama Limba UNQUALIFIED
Kaitlin S IturbideBrazilStephen Shaw RENEWAL
Kaitlin L PaprockiRussiaAmy Elsner PROPOSAL
Antonio X OldroydIndiaAmy Elsner NEGOTIATION
Munro Z StockhamFranceAnna Fali PROPOSAL
Wickens H DilliardAustraliaIoni Bowcher QUALIFIED
Jones K FollerRussiaXuxue Feng RENEWAL
Juan M GillianIndiaBernardo Dominic NEW
Misaki A TollnerIndiaIoni Bowcher NEW
Costa J NickaSpainBernardo Dominic PROPOSAL
Greenwood S ShinkoItalyAmy Elsner NEGOTIATION
Julie L OldroydArgentinaOnyama Limba UNQUALIFIED
Kadeem F ButtCanadaAmy Elsner QUALIFIED
Ashley V SlusarskiSpainAmy Elsner UNQUALIFIED
Rodrigues Q BriddickIndiaIoni Bowcher RENEWAL
Cody A DoeGermanyAsiya Javayant RENEWAL
Leon G FollerUnited KingdomAnna Fali NEGOTIATION
Aruna Z RulapaughAustraliaOnyama Limba QUALIFIED
Jennifer C MorascaRussiaElwin Sharvill 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>