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
Jennifer D DilliardSpainOnyama Limba NEGOTIATION
Octavia D WhobreyJapanAmy Elsner PROPOSAL
Francesco T RoysterJapanBernardo Dominic UNQUALIFIED
Wickens S MarrierCanadaIoni Bowcher UNQUALIFIED
Sinclair A DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem V SchemmerRussiaOnyama Limba UNQUALIFIED
Maria N RutaUnited KingdomBernardo Dominic RENEWAL
Greenwood Y GarufiFranceIoni Bowcher PROPOSAL
James I SlusarskiSpainBernardo Dominic UNQUALIFIED
Ashley I RutaJapanAmy Elsner QUALIFIED
Alejandro O NestleJapanAmy Elsner NEGOTIATION
Juan D MarrierRussiaStephen Shaw PROPOSAL
Ricardo G AlbaresIndiaAsiya Javayant NEW
Misaki O DilliardRussiaXuxue Feng UNQUALIFIED
Morrow V TollnerSpainBernardo Dominic UNQUALIFIED
Antonio C CaldareraArgentinaAsiya Javayant NEW
Jones Y DarakjyJapanIvan Magalhaes NEW
Jeanfrancois I NickaCanadaAmy Elsner QUALIFIED
Clifford V SlusarskiIndiaIvan Magalhaes QUALIFIED
Jefferson D KuskoBrazilElwin Sharvill PROPOSAL
Octavia R BologniaGermanyIvan Magalhaes RENEWAL
Jennifer Z MaletFranceAsiya Javayant NEGOTIATION
Mujtaba W FigeroaJapanBernardo Dominic NEW
Arvin U SaylorsBrazilElwin Sharvill QUALIFIED
Maisha W TollnerRussiaIoni Bowcher QUALIFIED
Munro S PoquetteCanadaIvan Magalhaes QUALIFIED
Munro F RulapaughUnited KingdomStephen Shaw QUALIFIED
Murillo Z SchemmerRussiaElwin Sharvill NEW
Isabel B GarufiIndiaAsiya Javayant PROPOSAL
Arvin A GarufiBrazilAnna Fali UNQUALIFIED
Sinclair B DilliardFranceBernardo Dominic PROPOSAL
Misaki U AlbaresJapanBernardo Dominic QUALIFIED
Nicolas F CaldareraGermanyXuxue Feng NEGOTIATION
Jefferson G OstroskyRussiaXuxue Feng PROPOSAL
Costa D CaudyJapanAsiya Javayant QUALIFIED
Darci Z CampainUnited KingdomAnna Fali NEW
Ricardo C StensethUnited KingdomIoni Bowcher PROPOSAL
Chavez E MarrierJapanXuxue Feng PROPOSAL
Smith F GillianGermanyAmy Elsner UNQUALIFIED
Nicolas Q StensethRussiaIvan Magalhaes QUALIFIED
Chavez L PaprockiRussiaXuxue Feng QUALIFIED
James K AmigonArgentinaOnyama Limba NEW
Rodrigues X CaudyBrazilAsiya Javayant NEW
Johnson L RulapaughFranceXuxue Feng PROPOSAL
Greenwood J VenereCanadaElwin Sharvill UNQUALIFIED
Ashley M FigeroaGermanyElwin Sharvill RENEWAL
Rodrigues V RoysterGermanyIvan Magalhaes UNQUALIFIED
Francesco T IturbideUnited KingdomElwin Sharvill PROPOSAL
Faith J InouyeAustraliaBernardo Dominic UNQUALIFIED
Kaitlin G OstroskyFranceBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh U CaldareraBrazilXuxue Feng UNQUALIFIED
Mujtaba L ChuiArgentinaAnna Fali UNQUALIFIED
Izzy U OldroydJapanElwin Sharvill RENEWAL
Chavez E MorascaUnited KingdomOnyama Limba RENEWAL
Octavia Q WaycottSpainElwin Sharvill NEW
Wickens E SlusarskiSpainIoni Bowcher QUALIFIED
Maria U VenereItalyBernardo Dominic NEW
Julie R NestleBrazilOnyama Limba NEW
Mayumi M OldroydArgentinaAsiya Javayant QUALIFIED
Jeanfrancois S DilliardUnited KingdomBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci O OstroskyJapan2024-06-05Rangoni Of Florence PROPOSAL19Ioni Bowcher
1001Maria H AlbaresSpain2024-05-27Rousseaux, Michael Esq PROPOSAL92Elwin Sharvill
1002Deepesh P GlickItaly2024-06-04Truhlar And Truhlar Attys NEGOTIATION95Anna Fali
1003Ashley F MarrierGermany2024-06-03Chemel, James L Cpa QUALIFIED93Ioni Bowcher
1004Wickens P MorascaBrazil2024-06-04Printing Dimensions QUALIFIED62Ivan Magalhaes
1005Misaki W SaylorsArgentina2024-06-12Benton, John B Jr NEGOTIATION7Onyama Limba
1006Aruna G WaycottBrazil2024-06-10Truhlar And Truhlar Attys QUALIFIED96Amy Elsner
1007Leja A CaldareraUnited Kingdom2024-06-13Feltz Printing Service QUALIFIED67Onyama Limba
1008Silvio T NickaCanada2024-05-29Chanay, Jeffrey A Esq RENEWAL96Xuxue Feng
1009Mayumi K StensethUnited Kingdom2024-06-04Chemel, James L Cpa PROPOSAL99Asiya Javayant
1010Nicolas F NickaFrance2024-06-02Buckley Miller Wright PROPOSAL15Xuxue Feng
1011Munro E RulapaughUnited Kingdom2024-05-30Rangoni Of Florence NEGOTIATION66Anna Fali
1012Rodrigues Q TollnerJapan2024-06-16Rangoni Of Florence NEW11Ioni Bowcher
1013Maria W MarrierItaly2024-06-18Printing Dimensions PROPOSAL66Ivan Magalhaes
1014Silvio Q SaylorsBrazil2024-05-28Dorl, James J Esq QUALIFIED15Xuxue Feng
1015Leon B BriddickIndia2024-06-06Chapman, Ross E Esq QUALIFIED83Ioni Bowcher
1016Nicolas Y GauchoUnited Kingdom2024-05-30Commercial Press NEGOTIATION36Anna Fali
1017James Z FollerBrazil2024-06-05King, Christopher A Esq UNQUALIFIED51Elwin Sharvill
1018Maria L OldroydSpain2024-05-27Rangoni Of Florence PROPOSAL79Xuxue Feng
1019Francesco G FigeroaCanada2024-06-04Feltz Printing Service NEW6Amy Elsner
1020Ivar Q VenereJapan2024-06-02Rousseaux, Michael Esq NEGOTIATION44Elwin Sharvill
1021Deepesh U ButtJapan2024-06-16Rousseaux, Michael Esq PROPOSAL11Amy Elsner
1022James H GauchoBrazil2024-05-30Chanay, Jeffrey A Esq NEGOTIATION40Anna Fali
1023Juan N BologniaCanada2024-05-28Dorl, James J Esq NEW75Asiya Javayant
1024Kaitlin S VenereBrazil2024-06-03Rousseaux, Michael Esq QUALIFIED6Ioni Bowcher
1025Jones S KuskoCanada2024-06-14Truhlar And Truhlar Attys UNQUALIFIED33Stephen Shaw
1026Alejandro R VocelkaArgentina2024-06-18Rousseaux, Michael Esq RENEWAL14Onyama Limba
1027Emily N FollerJapan2024-06-13Rousseaux, Michael Esq UNQUALIFIED98Elwin Sharvill
1028Aruna L RutaGermany2024-05-24Truhlar And Truhlar Attys NEGOTIATION37Elwin Sharvill
1029Salvatore E MarrierArgentina2024-05-30Rousseaux, Michael Esq NEW90Bernardo Dominic
1030Isabel R CaudyCanada2024-06-15Rousseaux, Michael Esq NEW71Stephen Shaw
1031Clifford U KolmetzJapan2024-05-29Truhlar And Truhlar Attys UNQUALIFIED54Anna Fali
1032Cody U SchemmerJapan2024-06-18Chemel, James L Cpa NEGOTIATION58Onyama Limba
1033Kaitlin R OldroydRussia2024-06-20Chanay, Jeffrey A Esq QUALIFIED29Amy Elsner
1034Juan K ChuiBrazil2024-06-12Chemel, James L Cpa QUALIFIED52Ivan Magalhaes
1035Aika Z MaletRussia2024-06-11Chanay, Jeffrey A Esq PROPOSAL21Amy Elsner
1036Antonio N WaycottUnited Kingdom2024-06-19Dorl, James J Esq NEW59Bernardo Dominic
1037Claire J OldroydFrance2024-06-02Feltz Printing Service NEW67Bernardo Dominic
1038Arvin P RutaArgentina2024-05-27Rangoni Of Florence NEGOTIATION86Ivan Magalhaes
1039Octavia V WaycottJapan2024-06-13King, Christopher A Esq RENEWAL34Asiya Javayant
1040Cody I SlusarskiCanada2024-06-07Benton, John B Jr PROPOSAL53Bernardo Dominic
1041Alejandro C RulapaughJapan2024-06-03Feiner Bros NEGOTIATION43Ioni Bowcher
1042Stacey R SchemmerJapan2024-06-08Chanay, Jeffrey A Esq NEGOTIATION14Asiya Javayant
1043Antonio V MarrierFrance2024-06-12Commercial Press NEW11Amy Elsner
1044Arvin B GlickIndia2024-06-02Truhlar And Truhlar Attys NEGOTIATION42Bernardo Dominic
1045Murillo D RutaArgentina2024-06-08Morlong Associates UNQUALIFIED21Ioni Bowcher
1046James G BriddickItaly2024-05-28Benton, John B Jr UNQUALIFIED35Amy Elsner
1047Cody Y BowleyBrazil2024-06-19Dorl, James J Esq QUALIFIED77Anna Fali
1048Kadeem I NickaGermany2024-06-04King, Christopher A Esq NEGOTIATION53Ioni Bowcher
1049Faith L FlosiRussia2024-06-15Buckley Miller Wright RENEWAL84Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba T CaldareraGermanyBernardo Dominic NEW
David U MaletFranceAnna Fali QUALIFIED
Aruna Y SaylorsSpainAsiya Javayant RENEWAL
Antonio L TollnerArgentinaBernardo Dominic PROPOSAL
Emily B MorascaJapanIvan Magalhaes NEW
Isabel X StensethJapanOnyama Limba UNQUALIFIED
Costa G VocelkaItalyIvan Magalhaes NEGOTIATION
Costa V PoquetteAustraliaElwin Sharvill NEW
Costa L CampainItalyStephen Shaw QUALIFIED
Faith H IturbideArgentinaAsiya Javayant NEW
Jefferson Y CampainGermanyElwin Sharvill NEW
Mayumi T CampainCanadaAmy Elsner QUALIFIED
Ashley S KuskoRussiaOnyama Limba RENEWAL
Smith O FollerFranceIvan Magalhaes QUALIFIED
Murillo Q NestleSpainElwin Sharvill PROPOSAL
Greenwood S GlickGermanyIvan Magalhaes RENEWAL
Juan B FigeroaIndiaIoni Bowcher NEW
Misaki U DilliardBrazilIoni Bowcher NEGOTIATION
Octavia K WieserSpainAsiya Javayant UNQUALIFIED
Aika M CampainArgentinaElwin Sharvill PROPOSAL
Chavez C ChuiItalyAsiya Javayant UNQUALIFIED
Octavia T WaycottFranceAnna Fali QUALIFIED
Arvin O IturbideJapanBernardo Dominic NEW
Emily Q DarakjyItalyAmy Elsner RENEWAL
Smith Q GarufiGermanyStephen Shaw PROPOSAL
Murillo S WieserItalyAnna Fali RENEWAL
Nicolas E GarufiItalyAnna Fali UNQUALIFIED
Tony N WhobreyUnited KingdomAsiya Javayant PROPOSAL
Antonio Z OstroskyGermanyIoni Bowcher NEW
Munro Z GarufiSpainAsiya Javayant RENEWAL
Jefferson Z PerinIndiaOnyama Limba PROPOSAL
Silvio L AmigonRussiaAsiya Javayant NEGOTIATION
Jennifer O MaletUnited KingdomIoni Bowcher QUALIFIED
Antonio S FigeroaIndiaElwin Sharvill RENEWAL
Jefferson P OldroydGermanyIoni Bowcher NEW
Kaitlin D CaldareraAustraliaBernardo Dominic RENEWAL
Aditya K PoquetteSpainAsiya Javayant PROPOSAL
Aika O StockhamSpainIvan Magalhaes RENEWAL
Misaki L GarufiGermanyAsiya Javayant NEW
Isabel W DarakjyAustraliaAsiya Javayant UNQUALIFIED
Jefferson V GauchoArgentinaAsiya Javayant QUALIFIED
Jones A DoeGermanyElwin Sharvill UNQUALIFIED
Aditya G NestleUnited KingdomIvan Magalhaes QUALIFIED
Deepesh C WhobreyRussiaAsiya Javayant NEW
Alejandro O OstroskyGermanyStephen Shaw QUALIFIED
Ricardo M RulapaughArgentinaBernardo Dominic QUALIFIED
Ricardo B WhobreySpainXuxue Feng PROPOSAL
Kaitlin F WieserCanadaAmy Elsner NEW
Mujtaba X SaylorsBrazilIvan Magalhaes NEGOTIATION
Darci W PaprockiGermanyBernardo Dominic RENEWAL
Frozen Columns
Name
Murillo Y Schemmer
Jones V Whobrey
Emily K Kolmetz
Isabel M Kusko
Rodrigues K Rulapaugh
Leja Z Chui
Nicolas F Ferencz
Deepesh V Rim
Antonio M Malet
Antonio I Marrier
Rodrigues V Saylors
Ricardo S Maclead
David I Doe
David Q Maclead
Adams Q Morasca
Arvin M Chui
Ricardo X Inouye
Arvin M Glick
Kaitlin C Rim
Ivar R Amigon
Jeanfrancois I Vocelka
Darci M Campain
Deepesh T Foller
Morrow X Marrier
Greenwood J Stenseth
Izzy A Garufi
Arvin W Morasca
Aruna B Caudy
Murillo J Rim
Izzy K Campain
Leon K Darakjy
Rodrigues N Slusarski
Ivar Z Ruta
Jefferson P Caudy
Aditya W Bolognia
Greenwood R Stenseth
Alejandro N Briddick
Mujtaba J Gaucho
Greenwood G Kolmetz
Salvatore A Ostrosky
Ivar T Darakjy
Munro H Poquette
Ricardo A Maclead
Darci V Wieser
Jennifer M Venere
Ashley U Iturbide
Isabel R Ferencz
Faith I Campain
Ivar L Garufi
Deepesh D Caudy
IdCountryDate
1000Japan2024-06-22
1001Germany2024-06-01
1002Germany2024-05-28
1003Russia2024-06-02
1004Japan2024-06-14
1005Germany2024-05-25
1006United Kingdom2024-06-14
1007Brazil2024-06-03
1008Japan2024-06-06
1009Argentina2024-06-11
1010France2024-06-19
1011Australia2024-06-17
1012India2024-06-06
1013United Kingdom2024-05-25
1014United Kingdom2024-05-24
1015Argentina2024-06-19
1016Canada2024-06-05
1017Argentina2024-05-24
1018Japan2024-06-18
1019France2024-05-24
1020Brazil2024-06-02
1021United Kingdom2024-06-09
1022France2024-05-27
1023Australia2024-06-19
1024India2024-05-31
1025United Kingdom2024-06-17
1026Australia2024-05-24
1027Germany2024-06-03
1028Canada2024-06-08
1029Russia2024-06-15
1030Argentina2024-06-01
1031Argentina2024-05-28
1032Australia2024-06-13
1033United Kingdom2024-06-20
1034United Kingdom2024-05-26
1035Russia2024-06-16
1036Argentina2024-05-31
1037Australia2024-05-24
1038Brazil2024-06-06
1039Russia2024-06-08
1040Canada2024-06-07
1041United Kingdom2024-06-16
1042United Kingdom2024-06-16
1043Germany2024-06-16
1044Italy2024-06-17
1045United Kingdom2024-05-26
1046France2024-06-10
1047Russia2024-06-03
1048India2024-06-08
1049Argentina2024-06-08

On-Demand Data

NameIdCountryDate
Wickens B Figeroa1000Spain2024-06-02
Greenwood I Paprocki1001Japan2024-06-13
Faith B Dilliard1002Italy2024-06-01
Antonio J Iturbide1003Australia2024-05-26
Adams P Paprocki1004United Kingdom2024-06-14
Greenwood Y Gillian1005Argentina2024-06-07
David K Shinko1006Australia2024-06-06
James N Glick1007Brazil2024-05-24
Jennifer D Tollner1008Canada2024-06-17
Sinclair A Gaucho1009Russia2024-05-28
Darci V Flosi1010France2024-06-06
Maria E Ostrosky1011Italy2024-05-25
Wickens U Bolognia1012Australia2024-06-02
Aika F Schemmer1013India2024-06-09
Octavia F Glick1014India2024-06-09
Octavia G Chui1015Brazil2024-06-16
Juan R Figeroa1016Italy2024-06-05
Claire O Flosi1017Japan2024-06-22
Rodrigues Q Caldarera1018Russia2024-05-28
Emily X Iturbide1019Brazil2024-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues P BowleyBrazilOnyama Limba PROPOSAL
Sinclair E FerenczGermanyXuxue Feng NEW
Stacey N DarakjyArgentinaXuxue Feng QUALIFIED
Kadeem J SchemmerAustraliaAsiya Javayant NEGOTIATION
Deepesh I WhobreyIndiaIoni Bowcher RENEWAL
Mujtaba K DilliardFranceAnna Fali PROPOSAL
Leja R StensethUnited KingdomBernardo Dominic RENEWAL
Kaitlin O CampainFranceOnyama Limba PROPOSAL
Murillo Z VocelkaBrazilBernardo Dominic NEW
Emily R SchemmerGermanyElwin Sharvill NEW
James K NestleBrazilStephen Shaw UNQUALIFIED
James J ChuiSpainBernardo Dominic PROPOSAL
Leon T FlosiCanadaStephen Shaw NEGOTIATION
Murillo O FlosiIndiaStephen Shaw NEW
Antonio Y MaletFranceOnyama Limba UNQUALIFIED
Leon O RulapaughBrazilAnna Fali RENEWAL
Julie U MorascaUnited KingdomAmy Elsner PROPOSAL
Adams L FigeroaBrazilStephen Shaw NEW
Isabel M InouyeAustraliaIoni Bowcher RENEWAL
Munro W MaletSpainAmy Elsner NEGOTIATION
Jefferson P RoysterSpainStephen Shaw RENEWAL
Maisha C WaycottRussiaXuxue Feng NEW
Kadeem J MaletUnited KingdomIoni Bowcher NEGOTIATION
Morrow W DarakjyJapanElwin Sharvill RENEWAL
Ivar W MorascaFranceOnyama Limba QUALIFIED
Tony I IturbideRussiaStephen Shaw QUALIFIED
Aika T NestleArgentinaIvan Magalhaes UNQUALIFIED
Salvatore P StensethSpainStephen Shaw NEW
Ashley T OldroydUnited KingdomIoni Bowcher NEW
Francesco K RimCanadaBernardo Dominic PROPOSAL
David H WhobreyCanadaXuxue Feng RENEWAL
Kaitlin M AmigonIndiaBernardo Dominic NEGOTIATION
Adams D FigeroaAustraliaIvan Magalhaes UNQUALIFIED
Maria G NickaIndiaElwin Sharvill UNQUALIFIED
Jennifer Z BriddickArgentinaAmy Elsner PROPOSAL
Stacey L ChuiUnited KingdomIvan Magalhaes QUALIFIED
Izzy O DilliardRussiaIvan Magalhaes NEGOTIATION
Johnson K MarrierUnited KingdomAmy Elsner QUALIFIED
Jones K PoquetteBrazilStephen Shaw RENEWAL
Johnson U RimFranceElwin 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>