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
David F VocelkaArgentinaElwin Sharvill NEGOTIATION
Morrow X MaletRussiaAnna Fali RENEWAL
Adams F GillianCanadaStephen Shaw NEGOTIATION
Mujtaba Q BriddickGermanyBernardo Dominic NEW
Aika C SergiSpainAnna Fali PROPOSAL
Octavia N CaudyGermanyIoni Bowcher PROPOSAL
Ricardo T KuskoCanadaStephen Shaw NEGOTIATION
Alejandro T NickaArgentinaStephen Shaw NEW
Arvin T MacleadItalyIvan Magalhaes PROPOSAL
Jennifer I VenereRussiaBernardo Dominic NEGOTIATION
Smith K AmigonFranceXuxue Feng QUALIFIED
Emily R StockhamGermanyIoni Bowcher PROPOSAL
Murillo L BriddickArgentinaIvan Magalhaes RENEWAL
Arvin O SaylorsArgentinaOnyama Limba NEW
Kadeem H ButtIndiaElwin Sharvill PROPOSAL
Sinclair M RutaJapanAnna Fali NEW
Antonio B WieserArgentinaElwin Sharvill QUALIFIED
Greenwood F WaycottFranceAnna Fali QUALIFIED
Mayumi K NestleIndiaIoni Bowcher QUALIFIED
Clifford B ShinkoJapanXuxue Feng NEGOTIATION
Mayumi X IturbideBrazilIvan Magalhaes UNQUALIFIED
Jefferson R CaudySpainElwin Sharvill QUALIFIED
Johnson H AlbaresAustraliaAmy Elsner QUALIFIED
Johnson Z WieserItalyAsiya Javayant RENEWAL
Greenwood T SchemmerIndiaOnyama Limba NEGOTIATION
Jones T ShinkoSpainIoni Bowcher PROPOSAL
Aruna X SlusarskiSpainAsiya Javayant NEGOTIATION
Jefferson X AlbaresArgentinaStephen Shaw PROPOSAL
Chavez G StockhamAustraliaStephen Shaw UNQUALIFIED
David M DoeRussiaIoni Bowcher RENEWAL
Wickens T SergiItalyElwin Sharvill NEGOTIATION
Juan Q OstroskyGermanyAmy Elsner RENEWAL
Nicolas R MorascaJapanStephen Shaw NEGOTIATION
Greenwood N PaprockiItalyBernardo Dominic QUALIFIED
Greenwood P CaldareraGermanyAsiya Javayant PROPOSAL
Tony N OstroskyCanadaOnyama Limba NEGOTIATION
Cody F FollerArgentinaOnyama Limba NEGOTIATION
Cody V ChuiGermanyElwin Sharvill UNQUALIFIED
Chavez O KolmetzBrazilIvan Magalhaes NEW
Clifford P ButtIndiaBernardo Dominic PROPOSAL
Murillo W BologniaGermanyBernardo Dominic NEGOTIATION
Arvin X SergiArgentinaStephen Shaw RENEWAL
Ashley T GillianItalyElwin Sharvill QUALIFIED
Octavia J NestleFranceAnna Fali RENEWAL
Juan C IturbideItalyIoni Bowcher UNQUALIFIED
Ivar P ChuiJapanAmy Elsner RENEWAL
Antonio E SergiJapanOnyama Limba NEGOTIATION
Jeanfrancois T DarakjyUnited KingdomIoni Bowcher PROPOSAL
Jefferson T CaldareraJapanStephen Shaw RENEWAL
Francesco O MacleadArgentinaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki P StockhamBrazilAsiya Javayant QUALIFIED
Greenwood D BowleyArgentinaBernardo Dominic NEW
Alejandro F SergiGermanyAmy Elsner NEGOTIATION
Silvio I InouyeCanadaOnyama Limba UNQUALIFIED
Morrow R KuskoBrazilElwin Sharvill RENEWAL
Adams I BowleyFranceStephen Shaw PROPOSAL
James E RoysterIndiaBernardo Dominic NEGOTIATION
Faith J NestleItalyBernardo Dominic RENEWAL
Kaitlin U OstroskyAustraliaOnyama Limba QUALIFIED
David O FlosiIndiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood I PaprockiCanada2025-06-10Benton, John B Jr QUALIFIED7Elwin Sharvill
1001Kaitlin G PoquetteGermany2025-06-01Rousseaux, Michael Esq NEGOTIATION40Stephen Shaw
1002Isabel K BologniaArgentina2025-06-14Dorl, James J Esq QUALIFIED12Elwin Sharvill
1003Kadeem V SchemmerItaly2025-06-03Buckley Miller Wright RENEWAL65Amy Elsner
1004Emily V WhobreySpain2025-06-13Printing Dimensions UNQUALIFIED94Bernardo Dominic
1005Julie I GillianFrance2025-06-03Feltz Printing Service NEGOTIATION66Xuxue Feng
1006Faith J GauchoAustralia2025-06-07Rangoni Of Florence NEW14Ioni Bowcher
1007Alejandro O FerenczCanada2025-06-13Rangoni Of Florence UNQUALIFIED93Xuxue Feng
1008Maria G OldroydRussia2025-06-11Chemel, James L Cpa PROPOSAL20Asiya Javayant
1009Adams D AmigonBrazil2025-05-21Benton, John B Jr QUALIFIED32Xuxue Feng
1010David E OstroskyUnited Kingdom2025-06-05Commercial Press PROPOSAL97Asiya Javayant
1011Maria S WaycottGermany2025-05-23Chanay, Jeffrey A Esq NEGOTIATION58Bernardo Dominic
1012Murillo N TollnerCanada2025-05-26Rousseaux, Michael Esq PROPOSAL36Stephen Shaw
1013Johnson L InouyeGermany2025-06-06Chanay, Jeffrey A Esq NEGOTIATION43Ivan Magalhaes
1014Cody S SlusarskiJapan2025-05-18Feiner Bros RENEWAL31Amy Elsner
1015Arvin O InouyeJapan2025-05-26Chemel, James L Cpa UNQUALIFIED43Onyama Limba
1016Munro H MaletItaly2025-05-20Chanay, Jeffrey A Esq QUALIFIED24Amy Elsner
1017Emily D GlickBrazil2025-05-31Chanay, Jeffrey A Esq QUALIFIED15Xuxue Feng
1018Smith D NestleAustralia2025-05-18Morlong Associates NEW79Asiya Javayant
1019Jennifer I KuskoRussia2025-06-13Feltz Printing Service NEW48Anna Fali
1020Johnson H DilliardItaly2025-05-20Chapman, Ross E Esq NEGOTIATION11Stephen Shaw
1021Francesco O GauchoFrance2025-05-23Morlong Associates RENEWAL40Stephen Shaw
1022Kaitlin Y ButtRussia2025-05-16Commercial Press RENEWAL82Stephen Shaw
1023Costa K ShinkoIndia2025-05-31Chemel, James L Cpa NEGOTIATION70Bernardo Dominic
1024Munro A GauchoRussia2025-05-30King, Christopher A Esq QUALIFIED58Amy Elsner
1025Antonio I DarakjyBrazil2025-05-28Rousseaux, Michael Esq QUALIFIED89Asiya Javayant
1026Maria Z StensethUnited Kingdom2025-06-07Dorl, James J Esq NEW66Ioni Bowcher
1027Silvio I GlickAustralia2025-05-25Chemel, James L Cpa QUALIFIED34Amy Elsner
1028Smith C VenereArgentina2025-05-22Buckley Miller Wright NEW86Asiya Javayant
1029Jennifer S OstroskyAustralia2025-05-18Rousseaux, Michael Esq NEGOTIATION99Stephen Shaw
1030Kadeem Z WaycottSpain2025-06-03Chapman, Ross E Esq QUALIFIED96Bernardo Dominic
1031Izzy I NestleBrazil2025-05-29Dorl, James J Esq NEGOTIATION83Xuxue Feng
1032Julie U ButtJapan2025-05-18Chapman, Ross E Esq UNQUALIFIED22Ivan Magalhaes
1033Emily Q KolmetzJapan2025-05-29Rangoni Of Florence NEW82Xuxue Feng
1034Wickens V MarrierRussia2025-06-06Benton, John B Jr UNQUALIFIED79Xuxue Feng
1035Leon P DoeCanada2025-05-20Benton, John B Jr QUALIFIED1Asiya Javayant
1036Ashley T DilliardCanada2025-06-12Commercial Press PROPOSAL66Amy Elsner
1037Wickens M SchemmerAustralia2025-05-16Rousseaux, Michael Esq PROPOSAL49Ivan Magalhaes
1038David H CaldareraGermany2025-06-08Commercial Press PROPOSAL14Onyama Limba
1039Sinclair O CaldareraIndia2025-06-02Commercial Press PROPOSAL20Stephen Shaw
1040Smith Y PerinJapan2025-05-23Feiner Bros QUALIFIED68Onyama Limba
1041Jennifer C AmigonRussia2025-05-25Feltz Printing Service RENEWAL81Onyama Limba
1042Juan A DoeArgentina2025-05-25Printing Dimensions NEGOTIATION44Elwin Sharvill
1043Juan N BologniaIndia2025-05-31Benton, John B Jr PROPOSAL48Ivan Magalhaes
1044Francesco N FlosiItaly2025-05-27Morlong Associates RENEWAL43Ivan Magalhaes
1045Clifford C AlbaresFrance2025-05-29Morlong Associates RENEWAL12Xuxue Feng
1046Rodrigues U WaycottArgentina2025-06-14Chapman, Ross E Esq QUALIFIED27Anna Fali
1047Emily G CaldareraJapan2025-06-12Dorl, James J Esq NEGOTIATION67Ivan Magalhaes
1048Nicolas N AmigonUnited Kingdom2025-06-02Printing Dimensions RENEWAL6Ivan Magalhaes
1049Costa S PaprockiJapan2025-06-08Chapman, Ross E Esq RENEWAL98Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ashley H PaprockiJapanAnna Fali PROPOSAL
Ashley V RutaFranceIvan Magalhaes QUALIFIED
Jeanfrancois U GarufiFranceAnna Fali NEW
Deepesh L AlbaresGermanyStephen Shaw QUALIFIED
Aditya E CampainBrazilAsiya Javayant NEGOTIATION
Ricardo O RulapaughJapanIoni Bowcher UNQUALIFIED
Maisha Q MaletJapanBernardo Dominic UNQUALIFIED
Sinclair E DilliardArgentinaAnna Fali QUALIFIED
Johnson N SchemmerGermanyElwin Sharvill NEGOTIATION
Greenwood Y RutaIndiaBernardo Dominic NEW
Mujtaba D MaletJapanIoni Bowcher PROPOSAL
Darci Q ChuiJapanOnyama Limba NEGOTIATION
Mujtaba D FollerFranceStephen Shaw NEW
Murillo J RulapaughArgentinaElwin Sharvill QUALIFIED
Johnson G StockhamBrazilIvan Magalhaes UNQUALIFIED
Jennifer B CampainItalyIvan Magalhaes NEW
Costa E PerinGermanyXuxue Feng PROPOSAL
Johnson G DarakjyIndiaElwin Sharvill UNQUALIFIED
Greenwood N CaldareraJapanAsiya Javayant NEW
Deepesh I FerenczItalyXuxue Feng PROPOSAL
Jennifer B WaycottGermanyXuxue Feng NEGOTIATION
Costa E PaprockiAustraliaAmy Elsner NEGOTIATION
Ashley R FigeroaSpainIoni Bowcher NEGOTIATION
Aika Q DoeAustraliaAsiya Javayant NEW
Jennifer Q GauchoUnited KingdomAmy Elsner RENEWAL
Octavia M MarrierJapanAsiya Javayant NEGOTIATION
Morrow T RutaAustraliaAsiya Javayant NEGOTIATION
Aika N ShinkoArgentinaXuxue Feng NEW
Juan G BriddickAustraliaAmy Elsner QUALIFIED
Claire P GlickSpainStephen Shaw QUALIFIED
David G KolmetzBrazilElwin Sharvill RENEWAL
Leja P FlosiItalyAsiya Javayant NEGOTIATION
Octavia U AmigonJapanAmy Elsner RENEWAL
Johnson K FerenczRussiaBernardo Dominic NEGOTIATION
Deepesh G WieserGermanyStephen Shaw QUALIFIED
Morrow O GauchoSpainOnyama Limba PROPOSAL
Greenwood H DilliardJapanAnna Fali UNQUALIFIED
James I SergiCanadaStephen Shaw RENEWAL
Wickens O AlbaresGermanyAsiya Javayant QUALIFIED
Jefferson P FollerCanadaAnna Fali QUALIFIED
Maisha Y MacleadSpainStephen Shaw PROPOSAL
Rodrigues T BologniaRussiaAnna Fali NEW
Costa N WieserRussiaElwin Sharvill UNQUALIFIED
Mujtaba A ShinkoUnited KingdomOnyama Limba NEW
Smith R StockhamSpainIvan Magalhaes NEW
Ashley L TollnerFranceAnna Fali PROPOSAL
Clifford U GlickRussiaIvan Magalhaes UNQUALIFIED
Sinclair G DarakjyRussiaBernardo Dominic QUALIFIED
Stacey U VenereBrazilAmy Elsner UNQUALIFIED
Smith P AlbaresCanadaStephen Shaw NEW
Frozen Columns
Name
Wickens T Bolognia
David Q Chui
Clifford N Darakjy
Alejandro G Ostrosky
Ricardo F Figeroa
Ivar B Maclead
Chavez R Marrier
Izzy S Oldroyd
Silvio I Wieser
Cody V Poquette
Nicolas W Perin
Isabel I Slusarski
Darci S Gaucho
David V Malet
David T Venere
Stacey B Kolmetz
Greenwood R Kolmetz
Alejandro L Ostrosky
Ricardo M Shinko
Murillo X Caldarera
Morrow C Amigon
Leja I Ruta
Jones D Schemmer
Munro U Albares
Salvatore V Schemmer
Adams Y Shinko
Rodrigues G Bowley
Antonio E Bolognia
Nicolas T Butt
Leon Z Perin
Leja X Garufi
Aika X Chui
Adams F Flosi
Costa F Butt
Silvio T Chui
Faith T Malet
David T Whobrey
Antonio Q Doe
Deepesh G Tollner
Emily R Bolognia
Adams G Rulapaugh
Arvin H Darakjy
Izzy O Wieser
Mayumi C Inouye
Salvatore H Malet
Smith V Venere
Mayumi Y Kolmetz
Aika S Maclead
Isabel S Rulapaugh
Francesco B Rulapaugh
IdCountryDate
1000Argentina2025-05-17
1001United Kingdom2025-06-13
1002India2025-06-04
1003Argentina2025-06-10
1004Spain2025-06-08
1005India2025-05-23
1006Canada2025-05-22
1007Russia2025-06-04
1008Germany2025-06-11
1009India2025-05-23
1010Germany2025-05-30
1011Argentina2025-06-07
1012Germany2025-05-25
1013Canada2025-05-31
1014Japan2025-05-24
1015United Kingdom2025-06-13
1016Australia2025-06-02
1017Australia2025-06-12
1018Canada2025-06-12
1019United Kingdom2025-05-24
1020Italy2025-06-09
1021Japan2025-06-10
1022Argentina2025-05-24
1023Argentina2025-05-21
1024Japan2025-05-21
1025France2025-06-12
1026Spain2025-05-17
1027Italy2025-05-28
1028United Kingdom2025-05-23
1029Germany2025-06-11
1030Russia2025-05-24
1031Australia2025-05-27
1032Italy2025-05-30
1033Spain2025-05-28
1034Italy2025-06-12
1035Russia2025-06-02
1036France2025-05-20
1037Canada2025-06-02
1038United Kingdom2025-05-19
1039Japan2025-05-20
1040Australia2025-05-25
1041France2025-06-03
1042Germany2025-06-02
1043Canada2025-06-07
1044Spain2025-06-13
1045Argentina2025-05-25
1046India2025-05-19
1047Canada2025-05-26
1048Germany2025-05-25
1049Russia2025-06-01

On-Demand Data

NameIdCountryDate
Adams X Albares1000India2025-06-13
Adams V Kusko1001Germany2025-05-18
Silvio H Waycott1002France2025-05-24
Mayumi F Nestle1003Russia2025-06-13
Costa D Ostrosky1004Japan2025-06-07
Sinclair M Malet1005Japan2025-06-02
Ricardo F Malet1006Japan2025-05-19
Munro E Albares1007United Kingdom2025-05-31
Jefferson A Morasca1008Germany2025-05-29
Faith D Royster1009Canada2025-06-04
Isabel K Amigon1010Italy2025-05-19
Jeanfrancois C Malet1011Russia2025-06-11
Juan Q Amigon1012Italy2025-06-11
Deepesh S Albares1013Argentina2025-06-08
Smith S Saylors1014Spain2025-05-25
Tony A Stockham1015Canada2025-06-08
Maisha C Whobrey1016Italy2025-06-10
Arvin U Nestle1017Australia2025-06-09
Murillo X Bowley1018Russia2025-05-30
Arvin B Ostrosky1019Spain2025-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie G SaylorsJapanXuxue Feng QUALIFIED
Clifford V PoquetteItalyAmy Elsner UNQUALIFIED
Aruna N BologniaGermanyXuxue Feng NEW
Jefferson P KuskoJapanElwin Sharvill QUALIFIED
Aika F NestleItalyAnna Fali PROPOSAL
Johnson B MacleadSpainIoni Bowcher UNQUALIFIED
Izzy W SlusarskiAustraliaStephen Shaw UNQUALIFIED
Smith J SergiJapanXuxue Feng UNQUALIFIED
Chavez Y CaldareraArgentinaAnna Fali UNQUALIFIED
Mujtaba D StockhamIndiaStephen Shaw NEW
Maria Z InouyeUnited KingdomOnyama Limba NEGOTIATION
Jennifer A ShinkoAustraliaIvan Magalhaes PROPOSAL
Ricardo C PaprockiArgentinaOnyama Limba NEGOTIATION
Emily W MaletFranceXuxue Feng NEGOTIATION
Deepesh V CaudyUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin H BologniaIndiaIoni Bowcher QUALIFIED
Maisha C MorascaRussiaIoni Bowcher PROPOSAL
Cody F PaprockiAustraliaIoni Bowcher NEGOTIATION
Chavez M SchemmerArgentinaIvan Magalhaes PROPOSAL
Francesco S TollnerAustraliaIvan Magalhaes PROPOSAL
Murillo Q NickaCanadaAsiya Javayant QUALIFIED
Aika Z RimUnited KingdomIvan Magalhaes PROPOSAL
Leon C MacleadCanadaStephen Shaw NEW
Morrow N PerinSpainIoni Bowcher RENEWAL
Jennifer X FerenczJapanBernardo Dominic NEW
Leon Y BologniaGermanyElwin Sharvill NEGOTIATION
Alejandro F CaldareraAustraliaAsiya Javayant RENEWAL
Isabel R PoquetteJapanAmy Elsner UNQUALIFIED
Ricardo N RimUnited KingdomElwin Sharvill NEW
Darci K NickaRussiaIoni Bowcher QUALIFIED
Misaki C KuskoCanadaXuxue Feng PROPOSAL
Jefferson Q BologniaBrazilXuxue Feng PROPOSAL
Adams X AlbaresItalyElwin Sharvill UNQUALIFIED
Misaki R RoysterGermanyXuxue Feng NEW
Aruna Q SchemmerIndiaAnna Fali RENEWAL
Ricardo R BologniaArgentinaOnyama Limba UNQUALIFIED
Kadeem O MaletUnited KingdomAmy Elsner QUALIFIED
Maisha W IturbideIndiaIvan Magalhaes QUALIFIED
Aditya B DoeFranceAnna Fali RENEWAL
Francesco S OstroskyCanadaBernardo Dominic NEW

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