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
Misaki K PoquetteRussiaStephen Shaw NEGOTIATION
Mujtaba R ButtIndiaElwin Sharvill PROPOSAL
Stacey C SchemmerJapanAnna Fali RENEWAL
Kadeem H RoysterArgentinaAmy Elsner PROPOSAL
Jeanfrancois K WaycottIndiaXuxue Feng RENEWAL
Darci E DoeArgentinaXuxue Feng UNQUALIFIED
Maria W InouyeIndiaAmy Elsner NEGOTIATION
Julie U MorascaUnited KingdomStephen Shaw PROPOSAL
Leon K NestleBrazilIvan Magalhaes QUALIFIED
Jennifer G OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh Y FigeroaGermanyIvan Magalhaes UNQUALIFIED
Adams V SlusarskiUnited KingdomStephen Shaw QUALIFIED
Jones Y FigeroaIndiaXuxue Feng PROPOSAL
James N RulapaughUnited KingdomStephen Shaw PROPOSAL
Arvin R MorascaArgentinaOnyama Limba QUALIFIED
Darci O FigeroaAustraliaBernardo Dominic QUALIFIED
Mujtaba R ShinkoUnited KingdomXuxue Feng QUALIFIED
Tony B BowleyBrazilElwin Sharvill UNQUALIFIED
Aditya S StensethItalyIoni Bowcher RENEWAL
Johnson P MorascaBrazilBernardo Dominic NEGOTIATION
Jefferson G BowleyArgentinaStephen Shaw QUALIFIED
Isabel A VenereJapanIvan Magalhaes NEW
Maisha S RoysterSpainXuxue Feng NEW
James T RoysterFranceIvan Magalhaes NEW
Aditya X WaycottSpainIvan Magalhaes NEW
David L GillianAustraliaBernardo Dominic UNQUALIFIED
Chavez V PerinArgentinaOnyama Limba NEGOTIATION
Arvin Y PaprockiGermanyOnyama Limba QUALIFIED
Cody C GauchoJapanIvan Magalhaes PROPOSAL
Misaki R MorascaGermanyAmy Elsner RENEWAL
Juan K SaylorsArgentinaIoni Bowcher NEGOTIATION
Kaitlin S WieserGermanyIoni Bowcher QUALIFIED
Greenwood Q ShinkoIndiaAmy Elsner QUALIFIED
Aruna Q SlusarskiJapanXuxue Feng UNQUALIFIED
Izzy A MaletAustraliaOnyama Limba NEGOTIATION
Antonio H StockhamArgentinaElwin Sharvill QUALIFIED
Kadeem G OstroskyFranceAmy Elsner NEW
Aika S PerinJapanAsiya Javayant PROPOSAL
Adams M PaprockiCanadaOnyama Limba UNQUALIFIED
Isabel Q KuskoGermanyStephen Shaw PROPOSAL
Salvatore E DarakjyBrazilElwin Sharvill QUALIFIED
Leja S RutaGermanyXuxue Feng NEW
Maisha O ChuiGermanyIoni Bowcher UNQUALIFIED
Jefferson T BologniaItalyAmy Elsner PROPOSAL
Jeanfrancois P FerenczCanadaStephen Shaw NEW
Darci J WaycottIndiaBernardo Dominic RENEWAL
Rodrigues A CampainGermanyAsiya Javayant PROPOSAL
Morrow L MaletItalyStephen Shaw NEW
Claire K WaycottArgentinaXuxue Feng QUALIFIED
Salvatore J PerinCanadaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Stacey D DilliardCanadaBernardo Dominic UNQUALIFIED
Ashley D WaycottFranceBernardo Dominic NEW
Juan T PoquetteIndiaIoni Bowcher PROPOSAL
Misaki C PerinJapanStephen Shaw NEW
Wickens X WaycottSpainAsiya Javayant RENEWAL
Leja R BowleyRussiaBernardo Dominic PROPOSAL
Johnson I AmigonJapanAnna Fali NEW
Francesco X BriddickGermanyXuxue Feng PROPOSAL
Francesco K RoysterIndiaAsiya Javayant NEW
Maisha W BologniaJapanElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James D KuskoJapan2025-06-02Dorl, James J Esq RENEWAL46Bernardo Dominic
1001Maisha W WieserAustralia2025-05-30Benton, John B Jr UNQUALIFIED64Ioni Bowcher
1002Ivar M NickaJapan2025-06-08Chanay, Jeffrey A Esq PROPOSAL72Amy Elsner
1003Izzy I DilliardBrazil2025-05-21Feltz Printing Service UNQUALIFIED1Amy Elsner
1004Alejandro Z SlusarskiCanada2025-06-09King, Christopher A Esq UNQUALIFIED44Xuxue Feng
1005Ashley T BowleyCanada2025-06-03Chanay, Jeffrey A Esq RENEWAL24Xuxue Feng
1006Chavez L OldroydAustralia2025-05-29Feiner Bros NEGOTIATION45Asiya Javayant
1007Kadeem E AlbaresSpain2025-05-22Feltz Printing Service NEGOTIATION83Bernardo Dominic
1008James N NickaJapan2025-06-05Chemel, James L Cpa QUALIFIED10Bernardo Dominic
1009Chavez H RimIndia2025-05-29King, Christopher A Esq UNQUALIFIED74Onyama Limba
1010Ricardo N RutaItaly2025-05-21Dorl, James J Esq NEGOTIATION59Ivan Magalhaes
1011Juan Q MaletRussia2025-06-05Chanay, Jeffrey A Esq PROPOSAL18Stephen Shaw
1012Juan E ShinkoItaly2025-05-30Printing Dimensions QUALIFIED59Elwin Sharvill
1013James B WhobreyFrance2025-05-30Chanay, Jeffrey A Esq PROPOSAL86Anna Fali
1014Murillo P InouyeItaly2025-05-19Truhlar And Truhlar Attys QUALIFIED47Amy Elsner
1015Maisha Y ChuiIndia2025-06-05Truhlar And Truhlar Attys NEW51Onyama Limba
1016Aika W InouyeIndia2025-06-02Commercial Press QUALIFIED12Ivan Magalhaes
1017Leja Y BologniaJapan2025-05-18Printing Dimensions UNQUALIFIED34Ivan Magalhaes
1018Kadeem G BologniaUnited Kingdom2025-05-24Chemel, James L Cpa NEGOTIATION52Amy Elsner
1019Emily P PerinUnited Kingdom2025-05-19Commercial Press NEW33Ioni Bowcher
1020Alejandro Z BowleyBrazil2025-06-09Feltz Printing Service QUALIFIED86Amy Elsner
1021Izzy F KuskoCanada2025-06-01Chanay, Jeffrey A Esq RENEWAL89Amy Elsner
1022Mayumi P SchemmerJapan2025-06-06Feltz Printing Service PROPOSAL12Anna Fali
1023Julie L GauchoUnited Kingdom2025-06-11Truhlar And Truhlar Attys QUALIFIED33Xuxue Feng
1024Mayumi Z OstroskyAustralia2025-05-30King, Christopher A Esq UNQUALIFIED32Stephen Shaw
1025Ricardo J RimGermany2025-05-31Dorl, James J Esq UNQUALIFIED75Anna Fali
1026Mayumi Z PaprockiIndia2025-06-02Morlong Associates UNQUALIFIED11Stephen Shaw
1027Octavia Z TollnerSpain2025-05-19Dorl, James J Esq NEGOTIATION5Asiya Javayant
1028Alejandro L VocelkaSpain2025-06-11Truhlar And Truhlar Attys PROPOSAL7Stephen Shaw
1029Leon T ChuiUnited Kingdom2025-05-23Printing Dimensions QUALIFIED56Anna Fali
1030Antonio Q PoquetteItaly2025-06-10Truhlar And Truhlar Attys RENEWAL66Elwin Sharvill
1031Deepesh S SaylorsFrance2025-05-27Benton, John B Jr PROPOSAL47Elwin Sharvill
1032Antonio C SergiRussia2025-05-20Benton, John B Jr PROPOSAL1Amy Elsner
1033Mayumi O GillianUnited Kingdom2025-06-07Truhlar And Truhlar Attys QUALIFIED88Asiya Javayant
1034Deepesh H BowleySpain2025-05-26Feltz Printing Service NEW36Anna Fali
1035Ivar T MarrierRussia2025-06-01Commercial Press NEW65Amy Elsner
1036David H TollnerAustralia2025-06-12King, Christopher A Esq UNQUALIFIED32Ioni Bowcher
1037Aruna E NestleCanada2025-06-14Feiner Bros QUALIFIED32Asiya Javayant
1038Stacey S CampainJapan2025-05-19Buckley Miller Wright UNQUALIFIED68Ioni Bowcher
1039Rodrigues N MarrierAustralia2025-05-18Dorl, James J Esq UNQUALIFIED35Onyama Limba
1040Ricardo Q BologniaUnited Kingdom2025-05-18Chemel, James L Cpa PROPOSAL1Xuxue Feng
1041Aruna P ShinkoSpain2025-06-16Chapman, Ross E Esq NEW36Ivan Magalhaes
1042Maria C CampainGermany2025-06-10Chemel, James L Cpa RENEWAL10Onyama Limba
1043Adams A PaprockiIndia2025-06-08Rousseaux, Michael Esq PROPOSAL79Bernardo Dominic
1044Aruna S GarufiCanada2025-06-11Chemel, James L Cpa RENEWAL92Ioni Bowcher
1045Tony U MorascaJapan2025-06-04Rousseaux, Michael Esq UNQUALIFIED78Xuxue Feng
1046Ricardo I RimItaly2025-05-31Commercial Press RENEWAL51Onyama Limba
1047Nicolas Q BowleyAustralia2025-06-15Morlong Associates UNQUALIFIED50Ivan Magalhaes
1048Clifford X CaldareraJapan2025-05-19Truhlar And Truhlar Attys NEGOTIATION37Anna Fali
1049Rodrigues M RulapaughArgentina2025-05-23Chanay, Jeffrey A Esq PROPOSAL35Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan E TollnerArgentinaOnyama Limba PROPOSAL
Sinclair X OstroskyItalyAsiya Javayant PROPOSAL
Aditya W MacleadUnited KingdomStephen Shaw NEGOTIATION
Sinclair L IturbideUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues W MacleadItalyBernardo Dominic RENEWAL
Cody D KuskoArgentinaAmy Elsner NEW
Juan X KolmetzJapanBernardo Dominic RENEWAL
Smith N BowleyRussiaAmy Elsner NEGOTIATION
Sinclair B ButtJapanAmy Elsner PROPOSAL
Deepesh H TollnerAustraliaAsiya Javayant NEGOTIATION
Ivar M ShinkoRussiaIoni Bowcher UNQUALIFIED
Murillo Z VocelkaFranceAnna Fali QUALIFIED
Jennifer V BriddickBrazilXuxue Feng NEW
Sinclair D RimJapanBernardo Dominic RENEWAL
Francesco J BowleyFranceOnyama Limba UNQUALIFIED
Chavez Q OstroskyFranceAmy Elsner UNQUALIFIED
Francesco Q WaycottIndiaIoni Bowcher QUALIFIED
Leon E WieserFranceAnna Fali RENEWAL
Rodrigues H SergiItalyIoni Bowcher UNQUALIFIED
Leon K SergiAustraliaIvan Magalhaes QUALIFIED
Murillo V ChuiRussiaXuxue Feng NEW
Francesco K MarrierFranceXuxue Feng NEGOTIATION
Faith R RulapaughJapanStephen Shaw PROPOSAL
Sinclair J FigeroaItalyOnyama Limba NEGOTIATION
Maisha C FollerArgentinaAnna Fali PROPOSAL
Clifford J PoquetteJapanElwin Sharvill NEW
Aika U OldroydGermanyAmy Elsner RENEWAL
Morrow R GauchoJapanIoni Bowcher RENEWAL
Aditya Z BowleyIndiaAnna Fali NEGOTIATION
Aika V OstroskyAustraliaXuxue Feng QUALIFIED
Morrow K KolmetzBrazilOnyama Limba UNQUALIFIED
Julie B FollerRussiaOnyama Limba QUALIFIED
Antonio V GillianRussiaIvan Magalhaes UNQUALIFIED
Mayumi Y GlickAustraliaXuxue Feng NEGOTIATION
Clifford J NickaCanadaAnna Fali UNQUALIFIED
Jennifer K SergiUnited KingdomBernardo Dominic PROPOSAL
Antonio V RutaCanadaXuxue Feng RENEWAL
Ricardo Z CampainBrazilIvan Magalhaes RENEWAL
Nicolas Y PerinUnited KingdomAsiya Javayant NEW
James Z StensethIndiaAmy Elsner NEGOTIATION
Emily E FerenczSpainAmy Elsner QUALIFIED
David H PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez Z PaprockiCanadaElwin Sharvill NEGOTIATION
Juan L NestleRussiaIoni Bowcher PROPOSAL
David B SergiSpainElwin Sharvill UNQUALIFIED
Maria Z OstroskyGermanyXuxue Feng UNQUALIFIED
Jennifer J KolmetzItalyAnna Fali UNQUALIFIED
Costa A ButtBrazilAnna Fali NEW
Maria Y SaylorsSpainXuxue Feng NEW
Arvin F SchemmerAustraliaIoni Bowcher PROPOSAL
Frozen Columns
Name
Misaki G Maclead
Ricardo W Flosi
Clifford B Doe
Smith S Doe
Murillo M Royster
Aruna K Bolognia
Kadeem V Stockham
Kaitlin O Glick
Alejandro F Bolognia
Leja O Morasca
Jennifer I Doe
Aditya V Ruta
Adams J Morasca
Mujtaba C Royster
Aditya C Bowley
Rodrigues L Caudy
Nicolas P Iturbide
Aditya A Sergi
Juan M Royster
Aika M Briddick
Rodrigues F Marrier
Izzy I Glick
Jefferson R Malet
Francesco W Malet
Stacey S Shinko
Greenwood D Sergi
Jennifer J Sergi
Jennifer O Ferencz
Jefferson Z Whobrey
Stacey V Tollner
Tony E Nicka
Aika I Caudy
Darci R Inouye
Salvatore Y Wieser
Morrow F Caudy
Ricardo X Waycott
Darci R Darakjy
Aika B Dilliard
Arvin P Perin
Emily E Perin
Cody I Foller
Adams I Waycott
Francesco C Foller
Silvio K Ferencz
Kadeem P Foller
Aruna P Butt
Leja V Malet
Aika D Figeroa
Leja J Garufi
Claire T Albares
IdCountryDate
1000United Kingdom2025-06-09
1001Italy2025-06-06
1002France2025-06-01
1003Italy2025-05-21
1004Japan2025-05-21
1005Canada2025-06-05
1006Argentina2025-06-04
1007Spain2025-05-22
1008India2025-05-29
1009Russia2025-05-21
1010Brazil2025-05-31
1011Canada2025-05-25
1012Germany2025-06-02
1013Spain2025-06-13
1014France2025-06-04
1015Japan2025-05-29
1016Australia2025-06-06
1017Germany2025-06-02
1018Canada2025-05-23
1019Germany2025-06-01
1020Spain2025-06-03
1021Argentina2025-06-05
1022France2025-05-20
1023Argentina2025-05-18
1024Italy2025-05-23
1025Russia2025-05-25
1026Spain2025-06-06
1027Australia2025-05-28
1028France2025-06-04
1029Spain2025-06-10
1030Japan2025-06-09
1031Germany2025-05-25
1032Australia2025-06-10
1033Canada2025-06-13
1034India2025-06-01
1035Japan2025-05-29
1036France2025-06-11
1037Germany2025-06-12
1038Italy2025-06-03
1039India2025-05-18
1040Argentina2025-06-14
1041Russia2025-06-06
1042Argentina2025-06-12
1043Germany2025-05-31
1044Spain2025-06-07
1045United Kingdom2025-05-27
1046Brazil2025-06-01
1047Russia2025-05-18
1048Germany2025-06-15
1049Canada2025-06-03

On-Demand Data

NameIdCountryDate
Ricardo Y Gillian1000Brazil2025-05-25
Jeanfrancois Z Vocelka1001Brazil2025-05-18
Aika X Venere1002France2025-05-29
Leon Q Foller1003Canada2025-06-10
Octavia I Malet1004Russia2025-06-16
Tony C Ferencz1005India2025-06-05
Arvin D Slusarski1006United Kingdom2025-06-15
Maisha V Malet1007Germany2025-05-24
Deepesh B Vocelka1008Italy2025-06-06
Smith F Bowley1009Spain2025-05-26
Alejandro L Paprocki1010Japan2025-05-28
Kaitlin C Malet1011Spain2025-06-16
Maisha S Schemmer1012Argentina2025-06-09
Greenwood U Flosi1013Brazil2025-05-25
Kaitlin R Doe1014India2025-05-25
Juan O Oldroyd1015Canada2025-05-18
Darci J Chui1016Spain2025-06-12
Silvio A Ostrosky1017Argentina2025-05-31
Adams H Albares1018Japan2025-05-30
Kadeem K Ferencz1019Brazil2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow I ChuiRussiaXuxue Feng NEW
Maria C MacleadFranceIvan Magalhaes NEW
Octavia N CaudyUnited KingdomBernardo Dominic PROPOSAL
Rodrigues W RimFranceStephen Shaw UNQUALIFIED
Nicolas D FollerCanadaAmy Elsner RENEWAL
Julie U GarufiFranceIoni Bowcher RENEWAL
Deepesh A AmigonBrazilAsiya Javayant NEW
Nicolas E GarufiGermanyXuxue Feng NEGOTIATION
Maisha J SlusarskiJapanXuxue Feng NEGOTIATION
Mujtaba E FigeroaFranceAnna Fali NEW
Johnson C CaudyItalyStephen Shaw NEGOTIATION
Darci M MaletAustraliaIvan Magalhaes UNQUALIFIED
Tony N GlickUnited KingdomAsiya Javayant NEGOTIATION
Emily W OstroskyCanadaIoni Bowcher NEW
Mayumi E TollnerSpainBernardo Dominic QUALIFIED
Sinclair N FigeroaAustraliaIvan Magalhaes RENEWAL
Clifford T MacleadSpainStephen Shaw QUALIFIED
Adams J KolmetzArgentinaIvan Magalhaes RENEWAL
Jennifer C OldroydGermanyAnna Fali UNQUALIFIED
Stacey O TollnerRussiaBernardo Dominic UNQUALIFIED
Isabel C AlbaresJapanElwin Sharvill QUALIFIED
Juan R PaprockiFranceStephen Shaw RENEWAL
Murillo H NestleRussiaIvan Magalhaes QUALIFIED
Stacey J MaletRussiaIvan Magalhaes QUALIFIED
Chavez A DoeRussiaIvan Magalhaes RENEWAL
Ivar H DarakjyBrazilElwin Sharvill RENEWAL
Francesco N ShinkoAustraliaStephen Shaw NEGOTIATION
Maisha E ShinkoAustraliaAnna Fali NEW
Johnson T MacleadJapanAmy Elsner RENEWAL
Kaitlin N VocelkaGermanyElwin Sharvill PROPOSAL
Jones X VenereArgentinaAnna Fali QUALIFIED
Francesco H CaudyArgentinaBernardo Dominic RENEWAL
Salvatore E InouyeBrazilXuxue Feng UNQUALIFIED
Leja S TollnerItalyIvan Magalhaes RENEWAL
Jennifer X NickaSpainIvan Magalhaes NEGOTIATION
Ashley K StockhamIndiaAsiya Javayant PROPOSAL
Izzy W FlosiAustraliaXuxue Feng QUALIFIED
Aditya Z ShinkoItalyXuxue Feng RENEWAL
Costa N GillianUnited KingdomStephen Shaw NEGOTIATION
Silvio G GarufiArgentinaIoni Bowcher 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>