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
Maria L GauchoItalyAnna Fali NEW
Jones B BriddickAustraliaIoni Bowcher PROPOSAL
Mujtaba B PaprockiRussiaAsiya Javayant PROPOSAL
Morrow R GillianFranceXuxue Feng NEGOTIATION
Juan C DoeSpainAmy Elsner NEGOTIATION
Murillo Y RulapaughCanadaAnna Fali NEGOTIATION
Arvin B WhobreyArgentinaStephen Shaw NEW
Claire O RimArgentinaBernardo Dominic UNQUALIFIED
Ricardo J RoysterSpainXuxue Feng RENEWAL
Antonio N NickaIndiaStephen Shaw UNQUALIFIED
Salvatore L AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Morrow F StensethJapanAnna Fali NEGOTIATION
Faith D MorascaBrazilIvan Magalhaes NEW
Cody F FigeroaJapanOnyama Limba UNQUALIFIED
Julie U GauchoIndiaIoni Bowcher NEW
Maisha L FollerIndiaElwin Sharvill RENEWAL
Chavez M SergiAustraliaIvan Magalhaes RENEWAL
Clifford J FigeroaBrazilAmy Elsner RENEWAL
Jones X GarufiRussiaElwin Sharvill PROPOSAL
Isabel U CaldareraArgentinaAnna Fali QUALIFIED
Ricardo Z BriddickFranceIoni Bowcher RENEWAL
Jones K GlickSpainElwin Sharvill RENEWAL
Jefferson S DarakjyCanadaIoni Bowcher QUALIFIED
Izzy U MaletArgentinaAmy Elsner QUALIFIED
Faith R ShinkoCanadaBernardo Dominic NEGOTIATION
Clifford I ShinkoRussiaStephen Shaw RENEWAL
Jeanfrancois W BriddickFranceStephen Shaw RENEWAL
Morrow V MarrierCanadaElwin Sharvill UNQUALIFIED
Chavez U KuskoBrazilXuxue Feng PROPOSAL
Ivar P WieserGermanyXuxue Feng QUALIFIED
Maisha Y InouyeJapanXuxue Feng RENEWAL
Salvatore I FlosiCanadaStephen Shaw NEW
Smith A StensethRussiaOnyama Limba QUALIFIED
Francesco D MaletGermanyStephen Shaw UNQUALIFIED
Aditya S RimIndiaAsiya Javayant NEW
Murillo W RutaFranceAsiya Javayant RENEWAL
Cody I RoysterJapanIoni Bowcher RENEWAL
Antonio X SergiFranceBernardo Dominic PROPOSAL
James D RoysterGermanyBernardo Dominic RENEWAL
Aditya K CaldareraArgentinaOnyama Limba PROPOSAL
Mujtaba P AlbaresBrazilAmy Elsner UNQUALIFIED
Aditya N CaldareraItalyOnyama Limba NEGOTIATION
Kadeem V RulapaughAustraliaIoni Bowcher UNQUALIFIED
Mayumi H WhobreyBrazilAnna Fali NEW
Alejandro W MarrierItalyAsiya Javayant UNQUALIFIED
Kaitlin E GillianRussiaElwin Sharvill NEW
Emily M MacleadAustraliaOnyama Limba PROPOSAL
Stacey U StensethUnited KingdomElwin Sharvill QUALIFIED
Cody U MorascaSpainAnna Fali RENEWAL
Sinclair F GauchoArgentinaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood U PaprockiJapanOnyama Limba NEGOTIATION
Jennifer I FlosiArgentinaBernardo Dominic NEW
Cody A SlusarskiItalyStephen Shaw NEW
Francesco V SaylorsCanadaAmy Elsner NEW
Jones S DoeSpainIoni Bowcher NEGOTIATION
James G TollnerBrazilAsiya Javayant QUALIFIED
Ivar C OstroskyRussiaIvan Magalhaes RENEWAL
Clifford U GlickItalyElwin Sharvill UNQUALIFIED
Aditya S SchemmerBrazilAnna Fali UNQUALIFIED
Rodrigues N AlbaresJapanAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Q VenereGermany2025-04-22Printing Dimensions NEW83Ioni Bowcher
1001Munro U MarrierItaly2025-05-03Morlong Associates RENEWAL53Stephen Shaw
1002Kadeem E ShinkoBrazil2025-04-20Benton, John B Jr RENEWAL84Anna Fali
1003Costa R StockhamArgentina2025-04-27Dorl, James J Esq PROPOSAL29Onyama Limba
1004Claire S SchemmerJapan2025-05-10Feltz Printing Service NEGOTIATION7Xuxue Feng
1005Mujtaba J GauchoFrance2025-04-30Dorl, James J Esq RENEWAL33Onyama Limba
1006Adams L VocelkaSpain2025-04-30Commercial Press PROPOSAL17Onyama Limba
1007Greenwood O RutaIndia2025-05-10Rangoni Of Florence NEW92Bernardo Dominic
1008Francesco W NickaArgentina2025-04-29Dorl, James J Esq NEGOTIATION8Asiya Javayant
1009Munro G OstroskyFrance2025-05-01Chanay, Jeffrey A Esq NEW83Xuxue Feng
1010Morrow F MaletItaly2025-04-11King, Christopher A Esq NEGOTIATION72Amy Elsner
1011Stacey V SlusarskiArgentina2025-04-15Chapman, Ross E Esq RENEWAL97Bernardo Dominic
1012Smith R DilliardIndia2025-04-19Buckley Miller Wright RENEWAL32Elwin Sharvill
1013Arvin K PoquetteBrazil2025-04-15Printing Dimensions QUALIFIED37Bernardo Dominic
1014Leja P KolmetzJapan2025-04-30Chapman, Ross E Esq NEW89Onyama Limba
1015Costa W MorascaIndia2025-04-28King, Christopher A Esq RENEWAL55Stephen Shaw
1016Ivar E OstroskyUnited Kingdom2025-04-25Rousseaux, Michael Esq PROPOSAL89Stephen Shaw
1017Juan Z BologniaSpain2025-05-05Truhlar And Truhlar Attys UNQUALIFIED72Ivan Magalhaes
1018Maisha H DoeIndia2025-05-10Printing Dimensions NEGOTIATION32Anna Fali
1019Greenwood M SergiAustralia2025-04-17Chanay, Jeffrey A Esq NEGOTIATION20Elwin Sharvill
1020Tony S MacleadItaly2025-04-16Morlong Associates NEW78Ivan Magalhaes
1021Darci G MarrierJapan2025-05-09Commercial Press QUALIFIED59Ivan Magalhaes
1022Leon O KolmetzJapan2025-05-09Truhlar And Truhlar Attys NEGOTIATION7Elwin Sharvill
1023Tony Y SergiItaly2025-04-14Chapman, Ross E Esq NEGOTIATION8Onyama Limba
1024Alejandro R GlickFrance2025-04-12Rangoni Of Florence NEGOTIATION25Bernardo Dominic
1025Maisha D WaycottAustralia2025-04-14Feiner Bros UNQUALIFIED20Amy Elsner
1026Alejandro C DilliardCanada2025-04-20Chemel, James L Cpa UNQUALIFIED37Anna Fali
1027Smith Q GlickGermany2025-04-15Rangoni Of Florence PROPOSAL80Amy Elsner
1028Smith E MaletSpain2025-05-03Feltz Printing Service QUALIFIED12Xuxue Feng
1029Morrow N BriddickArgentina2025-04-15Rangoni Of Florence NEW63Elwin Sharvill
1030Tony G RulapaughGermany2025-04-29Buckley Miller Wright UNQUALIFIED51Ioni Bowcher
1031Morrow W GillianRussia2025-04-17Printing Dimensions NEGOTIATION34Asiya Javayant
1032Jeanfrancois O CaldareraSpain2025-04-12Chapman, Ross E Esq PROPOSAL21Asiya Javayant
1033Octavia M AlbaresUnited Kingdom2025-05-09Rangoni Of Florence UNQUALIFIED12Amy Elsner
1034Jones Q VenereRussia2025-05-10Rousseaux, Michael Esq UNQUALIFIED65Asiya Javayant
1035Morrow H AmigonCanada2025-05-07Morlong Associates RENEWAL82Bernardo Dominic
1036Nicolas H MaletFrance2025-04-26Rangoni Of Florence NEGOTIATION45Elwin Sharvill
1037Francesco W PoquetteCanada2025-05-09Truhlar And Truhlar Attys RENEWAL70Asiya Javayant
1038Darci G VenereArgentina2025-04-19Dorl, James J Esq NEW21Stephen Shaw
1039Alejandro X RutaRussia2025-04-20Chapman, Ross E Esq NEGOTIATION22Stephen Shaw
1040Alejandro V AlbaresBrazil2025-04-15Chapman, Ross E Esq RENEWAL46Asiya Javayant
1041Smith V SchemmerCanada2025-05-05Feltz Printing Service PROPOSAL42Onyama Limba
1042Claire C OstroskyGermany2025-04-11Chemel, James L Cpa QUALIFIED78Xuxue Feng
1043Maria N GauchoSpain2025-04-30Chemel, James L Cpa NEW92Bernardo Dominic
1044Wickens U StensethAustralia2025-05-07Truhlar And Truhlar Attys PROPOSAL49Anna Fali
1045Sinclair K InouyeIndia2025-04-14Feiner Bros NEW25Onyama Limba
1046Francesco J GauchoRussia2025-05-10King, Christopher A Esq QUALIFIED10Stephen Shaw
1047Clifford O SaylorsAustralia2025-04-18Commercial Press QUALIFIED44Amy Elsner
1048Ricardo C VocelkaUnited Kingdom2025-04-23Rousseaux, Michael Esq QUALIFIED34Elwin Sharvill
1049Nicolas B AmigonGermany2025-04-23Chapman, Ross E Esq QUALIFIED20Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Murillo A ChuiGermanyAnna Fali NEGOTIATION
Aika N FigeroaIndiaAmy Elsner QUALIFIED
Maisha O SaylorsAustraliaAnna Fali RENEWAL
Isabel X NickaCanadaBernardo Dominic UNQUALIFIED
Aditya U SergiUnited KingdomBernardo Dominic PROPOSAL
Izzy T OstroskyCanadaOnyama Limba PROPOSAL
Johnson A WieserIndiaBernardo Dominic RENEWAL
Salvatore U OldroydItalyAsiya Javayant NEW
Salvatore E SchemmerAustraliaIvan Magalhaes QUALIFIED
Julie D WaycottItalyIoni Bowcher UNQUALIFIED
Mayumi M BowleyItalyIvan Magalhaes RENEWAL
Maisha O BowleyArgentinaElwin Sharvill QUALIFIED
Mujtaba T SergiFranceIoni Bowcher UNQUALIFIED
Leja Q GarufiGermanyAsiya Javayant NEGOTIATION
Johnson D OstroskyFranceOnyama Limba NEGOTIATION
Emily Y AmigonJapanBernardo Dominic RENEWAL
James P CaldareraArgentinaBernardo Dominic NEW
Wickens B SergiAustraliaBernardo Dominic QUALIFIED
Alejandro I RimArgentinaIoni Bowcher PROPOSAL
Emily R VocelkaArgentinaXuxue Feng NEGOTIATION
Izzy L GillianJapanStephen Shaw RENEWAL
Chavez S SergiFranceBernardo Dominic NEGOTIATION
Wickens I SaylorsSpainIoni Bowcher NEW
Leon D RutaSpainAmy Elsner PROPOSAL
Sinclair Z OldroydBrazilBernardo Dominic PROPOSAL
Chavez W BowleyItalyAnna Fali QUALIFIED
David K AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Murillo B WieserUnited KingdomOnyama Limba NEGOTIATION
Chavez K WaycottBrazilXuxue Feng NEGOTIATION
Mayumi N SchemmerItalyStephen Shaw UNQUALIFIED
Juan T MaletCanadaIvan Magalhaes NEW
Munro E RulapaughJapanStephen Shaw RENEWAL
Juan J BologniaSpainStephen Shaw NEW
Smith T MaletIndiaElwin Sharvill NEW
Smith H FollerCanadaBernardo Dominic RENEWAL
Stacey L DarakjyGermanyXuxue Feng NEGOTIATION
Cody D FlosiItalyIvan Magalhaes NEW
David C BowleyGermanyIvan Magalhaes NEGOTIATION
Jones Q MorascaGermanyIvan Magalhaes QUALIFIED
Sinclair F PerinItalyOnyama Limba QUALIFIED
Costa U ButtItalyIoni Bowcher NEW
Ivar F MaletFranceAnna Fali NEGOTIATION
Francesco X GarufiGermanyXuxue Feng UNQUALIFIED
Salvatore K CaldareraRussiaAmy Elsner PROPOSAL
James F VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi V DilliardRussiaIvan Magalhaes QUALIFIED
Ivar K DarakjyBrazilOnyama Limba UNQUALIFIED
Aika S ShinkoFranceAmy Elsner UNQUALIFIED
Jones C SchemmerItalyXuxue Feng PROPOSAL
Alejandro M AmigonAustraliaXuxue Feng RENEWAL
Frozen Columns
Name
Jefferson E Morasca
Ricardo T Bolognia
James T Malet
Juan E Flosi
Salvatore D Stockham
Aika G Iturbide
Ashley Y Poquette
Francesco F Briddick
Rodrigues M Morasca
Misaki P Paprocki
Jefferson G Kusko
Johnson O Chui
Rodrigues M Whobrey
Arvin P Venere
Stacey I Bolognia
Stacey A Ruta
Antonio S Chui
David J Ferencz
Kaitlin O Saylors
Emily O Saylors
James M Nestle
Smith F Foller
Smith E Darakjy
Francesco F Sergi
Johnson P Glick
Aruna V Campain
Kadeem C Oldroyd
Misaki X Figeroa
Adams D Perin
Kaitlin B Inouye
Rodrigues X Vocelka
Jones M Foller
Kaitlin J Dilliard
Munro W Rulapaugh
Sinclair B Ruta
Munro V Caudy
James J Marrier
Silvio D Morasca
Alejandro G Darakjy
Octavia Z Stockham
Faith K Rim
Deepesh V Gaucho
Johnson C Tollner
Jeanfrancois V Gaucho
Emily R Schemmer
Maria V Inouye
Misaki O Garufi
Faith Z Rim
Arvin O Maclead
Darci C Flosi
IdCountryDate
1000Germany2025-04-26
1001United Kingdom2025-04-26
1002Brazil2025-04-26
1003Germany2025-05-06
1004United Kingdom2025-04-16
1005Japan2025-04-29
1006India2025-05-02
1007France2025-04-24
1008France2025-04-29
1009Australia2025-04-15
1010Russia2025-05-04
1011Canada2025-05-04
1012Spain2025-04-21
1013Germany2025-04-23
1014Germany2025-04-25
1015India2025-04-11
1016Russia2025-04-29
1017Brazil2025-04-29
1018Canada2025-04-30
1019Canada2025-04-11
1020Canada2025-05-09
1021United Kingdom2025-04-25
1022Spain2025-04-26
1023United Kingdom2025-04-21
1024Italy2025-05-06
1025Japan2025-04-29
1026Japan2025-04-19
1027Argentina2025-04-30
1028Brazil2025-04-12
1029Russia2025-04-17
1030Japan2025-04-24
1031Brazil2025-04-13
1032United Kingdom2025-04-12
1033Brazil2025-05-08
1034Russia2025-04-14
1035Italy2025-04-23
1036Australia2025-04-22
1037Italy2025-05-06
1038Russia2025-05-02
1039United Kingdom2025-05-07
1040Germany2025-04-17
1041France2025-05-05
1042Spain2025-05-10
1043Canada2025-04-26
1044India2025-05-09
1045Canada2025-05-09
1046Australia2025-05-09
1047Italy2025-05-02
1048France2025-04-22
1049France2025-04-18

On-Demand Data

NameIdCountryDate
Morrow R Bolognia1000Argentina2025-04-17
Munro K Malet1001Russia2025-05-02
Francesco B Wieser1002India2025-04-13
Jones A Oldroyd1003Spain2025-04-30
Mayumi T Ruta1004France2025-04-28
Murillo R Gaucho1005Italy2025-05-08
Aika Q Schemmer1006India2025-05-01
Morrow K Royster1007Spain2025-04-20
Ivar R Vocelka1008Germany2025-05-10
Nicolas S Nestle1009Canada2025-05-02
Greenwood J Iturbide1010Germany2025-04-18
Darci C Gillian1011United Kingdom2025-05-06
Mujtaba G Flosi1012United Kingdom2025-05-08
Octavia D Albares1013Russia2025-04-29
Leon S Nestle1014Australia2025-04-22
Adams L Ostrosky1015Canada2025-05-10
Kaitlin B Oldroyd1016Argentina2025-04-26
Smith L Iturbide1017Russia2025-04-11
Sinclair N Slusarski1018Italy2025-04-13
Deepesh A Stenseth1019Germany2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo T VenereArgentinaBernardo Dominic QUALIFIED
Mayumi U MorascaFranceOnyama Limba QUALIFIED
Smith V VenereArgentinaAnna Fali UNQUALIFIED
Morrow F SaylorsJapanIvan Magalhaes UNQUALIFIED
Octavia F OstroskyJapanBernardo Dominic QUALIFIED
Juan P AmigonRussiaXuxue Feng NEGOTIATION
Mayumi D MarrierArgentinaIoni Bowcher NEW
Morrow H PaprockiFranceIoni Bowcher QUALIFIED
Cody O VocelkaUnited KingdomAnna Fali RENEWAL
Julie B FlosiJapanAsiya Javayant NEGOTIATION
Ivar Q RoysterGermanyAmy Elsner RENEWAL
Maria H GauchoFranceBernardo Dominic UNQUALIFIED
Ricardo D WieserArgentinaXuxue Feng PROPOSAL
Munro I WieserBrazilAnna Fali RENEWAL
Chavez P PaprockiIndiaIoni Bowcher NEGOTIATION
Jennifer W MarrierArgentinaXuxue Feng QUALIFIED
Ashley A BowleyFranceBernardo Dominic PROPOSAL
Emily U ShinkoSpainIoni Bowcher PROPOSAL
Darci U FigeroaJapanAmy Elsner RENEWAL
Cody Y StensethRussiaAmy Elsner QUALIFIED
Aditya P BologniaItalyAnna Fali NEGOTIATION
Jennifer P DilliardFranceOnyama Limba RENEWAL
Emily M BologniaSpainOnyama Limba NEGOTIATION
Aika W WieserSpainBernardo Dominic RENEWAL
Cody Q PaprockiGermanyStephen Shaw PROPOSAL
Juan I RoysterUnited KingdomIvan Magalhaes RENEWAL
Wickens F StensethGermanyAnna Fali RENEWAL
Ashley Y RoysterSpainOnyama Limba NEW
Wickens C GillianArgentinaBernardo Dominic NEW
David D AmigonJapanAmy Elsner UNQUALIFIED
Darci K FerenczIndiaIvan Magalhaes UNQUALIFIED
Aruna H NickaSpainStephen Shaw NEW
Faith L RulapaughArgentinaAnna Fali QUALIFIED
David P KolmetzAustraliaStephen Shaw UNQUALIFIED
Darci D GlickGermanyAnna Fali UNQUALIFIED
Claire P SaylorsItalyAsiya Javayant QUALIFIED
Johnson W FollerArgentinaStephen Shaw QUALIFIED
Greenwood Q TollnerItalyIvan Magalhaes RENEWAL
Jones V CampainBrazilElwin Sharvill PROPOSAL
Chavez P CaudyArgentinaAmy 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>