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
Juan P NickaSpainAmy Elsner RENEWAL
Aruna I WaycottUnited KingdomIvan Magalhaes PROPOSAL
Isabel M SergiSpainElwin Sharvill NEW
Aditya P MorascaBrazilOnyama Limba NEGOTIATION
Silvio C MacleadSpainAsiya Javayant RENEWAL
David L IturbideFranceAmy Elsner UNQUALIFIED
Emily S SlusarskiSpainStephen Shaw NEW
Nicolas G OldroydFranceXuxue Feng RENEWAL
Nicolas U CampainSpainAsiya Javayant NEGOTIATION
Mayumi Z GarufiBrazilAsiya Javayant NEGOTIATION
Wickens M ShinkoRussiaAmy Elsner PROPOSAL
Juan V GarufiUnited KingdomElwin Sharvill PROPOSAL
Rodrigues Y OldroydUnited KingdomIvan Magalhaes QUALIFIED
Arvin V ButtFranceBernardo Dominic RENEWAL
Kaitlin E MaletArgentinaOnyama Limba RENEWAL
Izzy Q BowleyFranceStephen Shaw RENEWAL
Johnson X IturbideCanadaXuxue Feng QUALIFIED
Smith B DoeBrazilElwin Sharvill NEGOTIATION
Nicolas X VocelkaFranceIoni Bowcher UNQUALIFIED
Mayumi H MacleadBrazilIoni Bowcher RENEWAL
James S BriddickAustraliaBernardo Dominic NEW
Jones V OldroydJapanAnna Fali QUALIFIED
Alejandro Y PoquetteSpainOnyama Limba NEGOTIATION
Tony E ShinkoGermanyStephen Shaw QUALIFIED
Mayumi O FigeroaArgentinaIoni Bowcher NEW
Smith K MorascaBrazilAmy Elsner RENEWAL
Adams H GarufiArgentinaElwin Sharvill PROPOSAL
Juan E ChuiIndiaIoni Bowcher NEGOTIATION
Silvio B CaudyFranceStephen Shaw NEGOTIATION
Stacey U GillianIndiaAmy Elsner NEW
Kadeem J DarakjyItalyOnyama Limba RENEWAL
Isabel Z WhobreyBrazilStephen Shaw NEW
Jeanfrancois G WhobreyUnited KingdomAsiya Javayant PROPOSAL
Francesco M BriddickCanadaXuxue Feng NEW
Kadeem Q FerenczSpainAnna Fali QUALIFIED
Faith U AlbaresRussiaAmy Elsner UNQUALIFIED
Octavia R GauchoUnited KingdomElwin Sharvill QUALIFIED
Cody Z CaudyArgentinaStephen Shaw UNQUALIFIED
Sinclair R SaylorsAustraliaElwin Sharvill RENEWAL
Wickens G BowleyAustraliaAmy Elsner UNQUALIFIED
Aditya D SchemmerCanadaElwin Sharvill QUALIFIED
Adams W GlickRussiaIvan Magalhaes RENEWAL
Maria W NestleAustraliaBernardo Dominic UNQUALIFIED
Julie C CaldareraCanadaBernardo Dominic QUALIFIED
Izzy I InouyeGermanyBernardo Dominic RENEWAL
Adams A GillianGermanyOnyama Limba NEGOTIATION
Mujtaba H RoysterJapanXuxue Feng RENEWAL
Ashley G GillianCanadaAsiya Javayant NEW
Morrow A BologniaFranceIoni Bowcher PROPOSAL
Emily X BowleyItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha Z NickaIndiaStephen Shaw NEW
Cody E RoysterRussiaXuxue Feng QUALIFIED
James H InouyeArgentinaOnyama Limba NEW
Murillo E AmigonUnited KingdomIoni Bowcher RENEWAL
Morrow B SaylorsArgentinaIoni Bowcher RENEWAL
Nicolas Y MaletJapanXuxue Feng PROPOSAL
Nicolas X MaletGermanyAnna Fali UNQUALIFIED
Julie W FerenczRussiaIoni Bowcher NEGOTIATION
Mujtaba R ShinkoArgentinaStephen Shaw NEGOTIATION
Munro X FerenczArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika B MarrierUnited Kingdom2026-08-03Dorl, James J Esq NEGOTIATION18Bernardo Dominic
1001Adams G DoeFrance2026-08-21Feiner Bros QUALIFIED22Stephen Shaw
1002Aika R TollnerFrance2026-08-08King, Christopher A Esq RENEWAL5Ioni Bowcher
1003Kaitlin J PaprockiIndia2026-08-19Rousseaux, Michael Esq NEW67Xuxue Feng
1004Morrow P MorascaItaly2026-08-03Commercial Press UNQUALIFIED89Stephen Shaw
1005Jeanfrancois A MaletBrazil2026-07-28Commercial Press RENEWAL0Ivan Magalhaes
1006Antonio X SlusarskiUnited Kingdom2026-08-07Rousseaux, Michael Esq RENEWAL34Amy Elsner
1007David F FlosiAustralia2026-08-12Printing Dimensions PROPOSAL32Amy Elsner
1008Aika K InouyeUnited Kingdom2026-08-18Chanay, Jeffrey A Esq NEGOTIATION47Anna Fali
1009Claire D FollerRussia2026-08-15Rangoni Of Florence RENEWAL87Ioni Bowcher
1010Rodrigues H CaudyCanada2026-07-28Chanay, Jeffrey A Esq QUALIFIED59Anna Fali
1011Chavez R MaletSpain2026-08-03Rangoni Of Florence RENEWAL16Ivan Magalhaes
1012Wickens R BologniaIndia2026-07-30Rousseaux, Michael Esq NEW77Xuxue Feng
1013Leja C CaldareraJapan2026-08-21Printing Dimensions RENEWAL25Bernardo Dominic
1014Salvatore S CaldareraBrazil2026-08-11Printing Dimensions QUALIFIED70Asiya Javayant
1015Emily I BowleyCanada2026-08-11Buckley Miller Wright QUALIFIED65Ioni Bowcher
1016Maria Z NickaJapan2026-08-17Chemel, James L Cpa NEGOTIATION69Anna Fali
1017Johnson G IturbideSpain2026-08-06Dorl, James J Esq RENEWAL2Onyama Limba
1018Darci Q SergiJapan2026-08-05Buckley Miller Wright NEW33Amy Elsner
1019Chavez C TollnerJapan2026-08-07Morlong Associates PROPOSAL15Elwin Sharvill
1020Clifford N WieserAustralia2026-08-20Rousseaux, Michael Esq RENEWAL29Ioni Bowcher
1021Mayumi N CaudyAustralia2026-08-20Printing Dimensions NEW39Xuxue Feng
1022Costa N CaldareraUnited Kingdom2026-08-22Feiner Bros UNQUALIFIED90Bernardo Dominic
1023Juan B WieserArgentina2026-08-14Chapman, Ross E Esq NEW48Asiya Javayant
1024Tony P DilliardFrance2026-07-30Printing Dimensions RENEWAL36Xuxue Feng
1025Antonio W MarrierUnited Kingdom2026-08-04Commercial Press NEW50Onyama Limba
1026Morrow I SchemmerFrance2026-08-21Morlong Associates UNQUALIFIED79Ioni Bowcher
1027Morrow K ButtUnited Kingdom2026-08-10Rousseaux, Michael Esq RENEWAL58Elwin Sharvill
1028Mayumi N FlosiArgentina2026-08-02Morlong Associates UNQUALIFIED12Asiya Javayant
1029Mayumi R MaletItaly2026-08-16Dorl, James J Esq NEW73Ioni Bowcher
1030Rodrigues T MaletCanada2026-08-12Feiner Bros NEW52Amy Elsner
1031Jennifer O StockhamArgentina2026-08-15Dorl, James J Esq QUALIFIED64Elwin Sharvill
1032Costa Q CampainItaly2026-08-19Chapman, Ross E Esq NEW12Xuxue Feng
1033Rodrigues A GarufiArgentina2026-08-10Feiner Bros QUALIFIED57Bernardo Dominic
1034Jones P CaldareraGermany2026-08-20Feiner Bros NEW32Bernardo Dominic
1035Greenwood Q BriddickJapan2026-08-08Benton, John B Jr QUALIFIED78Anna Fali
1036Mayumi V BologniaGermany2026-08-06King, Christopher A Esq UNQUALIFIED89Asiya Javayant
1037Tony W DarakjyArgentina2026-08-05Printing Dimensions QUALIFIED72Ioni Bowcher
1038Adams O FlosiRussia2026-07-27Commercial Press PROPOSAL59Stephen Shaw
1039Kaitlin U SchemmerArgentina2026-08-08Rousseaux, Michael Esq NEGOTIATION32Stephen Shaw
1040Smith H TollnerAustralia2026-08-05Chapman, Ross E Esq NEGOTIATION37Anna Fali
1041Adams J InouyeRussia2026-07-31Morlong Associates NEW19Stephen Shaw
1042Mujtaba E DarakjyRussia2026-08-01Buckley Miller Wright RENEWAL35Bernardo Dominic
1043Ricardo Q FlosiArgentina2026-08-02Commercial Press RENEWAL92Asiya Javayant
1044Silvio V CampainAustralia2026-07-29Dorl, James J Esq NEGOTIATION60Anna Fali
1045James X AlbaresItaly2026-08-22Chanay, Jeffrey A Esq QUALIFIED7Onyama Limba
1046Julie S BologniaCanada2026-08-05Benton, John B Jr QUALIFIED85Bernardo Dominic
1047Silvio F RutaArgentina2026-08-22Truhlar And Truhlar Attys UNQUALIFIED75Asiya Javayant
1048Chavez B StensethJapan2026-07-30Rousseaux, Michael Esq QUALIFIED38Anna Fali
1049James D VocelkaItaly2026-07-27Benton, John B Jr PROPOSAL37Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Darci E StensethJapanAmy Elsner QUALIFIED
Leon F FollerCanadaStephen Shaw NEGOTIATION
Clifford I RulapaughUnited KingdomStephen Shaw PROPOSAL
Wickens P MorascaArgentinaOnyama Limba PROPOSAL
Cody I WaycottSpainAsiya Javayant PROPOSAL
Misaki L FlosiRussiaAnna Fali NEW
Julie O DarakjyBrazilOnyama Limba QUALIFIED
Cody D CampainRussiaAsiya Javayant NEW
Nicolas P FerenczSpainStephen Shaw NEW
Nicolas E PoquetteRussiaBernardo Dominic QUALIFIED
Julie M NestleIndiaAmy Elsner UNQUALIFIED
Jennifer K StensethGermanyIvan Magalhaes PROPOSAL
Mayumi K PerinIndiaElwin Sharvill NEW
Smith S StockhamRussiaAsiya Javayant NEW
Rodrigues X BowleyIndiaBernardo Dominic NEW
Faith N PerinArgentinaAsiya Javayant UNQUALIFIED
Maisha T CaudyUnited KingdomAmy Elsner UNQUALIFIED
David O StensethGermanyAnna Fali QUALIFIED
Ashley Q VocelkaRussiaIvan Magalhaes NEGOTIATION
Deepesh A RoysterBrazilIvan Magalhaes QUALIFIED
Izzy B SaylorsCanadaAsiya Javayant PROPOSAL
Cody B RoysterJapanElwin Sharvill RENEWAL
Adams H GlickArgentinaElwin Sharvill NEW
Jeanfrancois X FlosiRussiaElwin Sharvill PROPOSAL
Sinclair Z BologniaCanadaAsiya Javayant NEGOTIATION
Smith O ButtAustraliaIvan Magalhaes NEW
Ashley Q CaudyBrazilXuxue Feng NEW
Izzy F KolmetzUnited KingdomAmy Elsner NEGOTIATION
Faith H AmigonIndiaAnna Fali NEGOTIATION
Julie X FlosiIndiaAmy Elsner UNQUALIFIED
Arvin N FigeroaIndiaIvan Magalhaes NEW
Mayumi V CaldareraItalyIvan Magalhaes NEW
Octavia X DilliardArgentinaElwin Sharvill RENEWAL
Kaitlin Q DoeUnited KingdomXuxue Feng RENEWAL
Ricardo O ButtArgentinaAnna Fali PROPOSAL
Francesco Q GauchoSpainIoni Bowcher NEW
Leja P MorascaSpainAmy Elsner UNQUALIFIED
Johnson L MarrierArgentinaElwin Sharvill QUALIFIED
Ricardo Z StensethItalyAsiya Javayant NEGOTIATION
Aika Q CaudyItalyAnna Fali QUALIFIED
Faith F ChuiJapanBernardo Dominic UNQUALIFIED
Sinclair Z OstroskyItalyIoni Bowcher QUALIFIED
Emily B SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Morrow X CaldareraAustraliaIoni Bowcher NEGOTIATION
James I OldroydFranceStephen Shaw RENEWAL
Antonio W RulapaughJapanStephen Shaw UNQUALIFIED
Murillo R FlosiSpainAsiya Javayant UNQUALIFIED
Claire O AlbaresGermanyIoni Bowcher NEW
Morrow M ChuiItalyAmy Elsner QUALIFIED
Kadeem N PaprockiAustraliaBernardo Dominic PROPOSAL
Frozen Columns
Name
Maria H Figeroa
Silvio N Dilliard
Maisha K Bowley
Juan H Shinko
Julie I Gillian
Francesco Z Gillian
Mujtaba B Dilliard
Sinclair U Kolmetz
Ricardo I Poquette
Salvatore T Kusko
Leja X Darakjy
Antonio M Darakjy
Deepesh P Flosi
Aruna F Gillian
Isabel H Stenseth
Izzy Q Whobrey
Ivar K Ferencz
Jefferson G Ferencz
Claire X Stockham
Misaki W Maclead
Jeanfrancois Z Nicka
Aruna C Paprocki
Chavez X Shinko
Nicolas T Foller
Octavia G Butt
Rodrigues B Royster
Salvatore E Venere
Kadeem L Nestle
Juan J Vocelka
Maisha E Bolognia
Leja D Slusarski
Ashley R Gillian
Smith H Briddick
Silvio G Kusko
Kadeem C Kusko
Maria R Bowley
Stacey K Shinko
Kaitlin N Poquette
Ivar B Ruta
Aruna S Briddick
Faith C Caudy
Wickens N Stenseth
Aditya E Figeroa
Francesco H Royster
Arvin Z Bolognia
Ivar S Caldarera
Clifford D Marrier
Arvin M Royster
Kadeem G Ruta
Octavia G Inouye
IdCountryDate
1000Spain2026-08-20
1001India2026-08-02
1002Canada2026-08-13
1003Canada2026-08-17
1004Canada2026-08-04
1005Russia2026-08-02
1006Japan2026-08-07
1007Brazil2026-08-07
1008Australia2026-08-17
1009Russia2026-07-28
1010Australia2026-08-05
1011Germany2026-08-13
1012Germany2026-08-13
1013United Kingdom2026-08-05
1014Canada2026-07-30
1015Italy2026-08-11
1016Japan2026-08-07
1017Germany2026-08-09
1018Germany2026-08-08
1019Spain2026-08-09
1020Argentina2026-08-05
1021Argentina2026-08-01
1022Russia2026-07-30
1023Brazil2026-08-23
1024India2026-08-09
1025Spain2026-08-02
1026India2026-08-23
1027Germany2026-07-31
1028Spain2026-08-03
1029France2026-08-03
1030France2026-08-14
1031Italy2026-07-27
1032United Kingdom2026-08-16
1033France2026-08-15
1034Argentina2026-07-27
1035Russia2026-08-02
1036Spain2026-08-16
1037France2026-08-21
1038Italy2026-08-02
1039Brazil2026-08-07
1040Australia2026-08-21
1041Brazil2026-08-04
1042Spain2026-08-24
1043United Kingdom2026-07-30
1044India2026-08-04
1045India2026-08-04
1046United Kingdom2026-08-04
1047Australia2026-08-11
1048Australia2026-08-15
1049India2026-08-13

On-Demand Data

NameIdCountryDate
Silvio F Campain1000Australia2026-07-27
Nicolas Y Maclead1001Spain2026-08-06
David R Garufi1002Spain2026-08-11
Ricardo I Marrier1003Brazil2026-08-07
Aruna Y Marrier1004Brazil2026-08-20
Darci Z Bowley1005Japan2026-08-13
Greenwood W Stenseth1006Australia2026-08-09
Sinclair T Bowley1007Italy2026-08-22
Darci F Flosi1008Argentina2026-08-11
Juan C Saylors1009Germany2026-07-31
Octavia C Figeroa1010Canada2026-08-12
Faith L Whobrey1011India2026-07-27
Aditya D Bolognia1012France2026-08-21
Chavez I Iturbide1013Brazil2026-07-26
Wickens Y Whobrey1014Canada2026-08-07
Deepesh A Bowley1015Spain2026-08-23
Aruna S Bolognia1016Australia2026-07-30
Nicolas Z Rulapaugh1017Brazil2026-08-04
Ashley Q Bolognia1018Canada2026-08-11
Morrow I Schemmer1019France2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair O SlusarskiFranceOnyama Limba UNQUALIFIED
Cody P BologniaCanadaElwin Sharvill UNQUALIFIED
Darci E IturbideIndiaBernardo Dominic UNQUALIFIED
Morrow Z AlbaresBrazilAmy Elsner RENEWAL
Aditya Y FigeroaIndiaOnyama Limba NEW
Misaki N IturbideArgentinaOnyama Limba NEGOTIATION
Alejandro N GillianSpainIoni Bowcher PROPOSAL
Munro C MaletIndiaXuxue Feng UNQUALIFIED
Murillo C SergiJapanIoni Bowcher PROPOSAL
Tony T KolmetzSpainAmy Elsner PROPOSAL
Chavez N MaletCanadaAsiya Javayant NEGOTIATION
Johnson W DoeFranceAnna Fali UNQUALIFIED
Faith E PoquetteIndiaXuxue Feng NEW
Izzy D ChuiUnited KingdomIoni Bowcher NEW
Octavia M KolmetzItalyXuxue Feng UNQUALIFIED
Chavez U DoeBrazilIvan Magalhaes UNQUALIFIED
Greenwood C BologniaSpainAmy Elsner QUALIFIED
Leon I FigeroaSpainAsiya Javayant NEW
Leja I MaletGermanyBernardo Dominic NEW
Nicolas T SergiRussiaBernardo Dominic PROPOSAL
Izzy X BriddickAustraliaOnyama Limba RENEWAL
Arvin T RoysterSpainAnna Fali NEW
Adams K RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Faith S MaletItalyAmy Elsner PROPOSAL
Ivar S InouyeRussiaAsiya Javayant NEW
Maisha T GillianItalyAmy Elsner NEW
Mujtaba F VenereSpainIvan Magalhaes PROPOSAL
Jennifer W WhobreyGermanyStephen Shaw QUALIFIED
Faith L WaycottCanadaAnna Fali UNQUALIFIED
James S DilliardSpainBernardo Dominic UNQUALIFIED
Izzy W AlbaresCanadaStephen Shaw QUALIFIED
Munro U MaletFranceElwin Sharvill PROPOSAL
Smith L PaprockiAustraliaAmy Elsner NEW
Jeanfrancois V FigeroaRussiaAsiya Javayant NEW
Maria M InouyeRussiaBernardo Dominic NEW
Adams F StockhamFranceBernardo Dominic NEGOTIATION
Clifford U IturbideItalyIoni Bowcher PROPOSAL
Alejandro L MarrierFranceAsiya Javayant NEGOTIATION
Wickens Z RutaItalyAnna Fali RENEWAL
Mujtaba K DoeFranceOnyama Limba QUALIFIED

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