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
Silvio W WaycottGermanyAnna Fali UNQUALIFIED
Kadeem M GillianUnited KingdomIoni Bowcher RENEWAL
Maisha G MorascaIndiaBernardo Dominic UNQUALIFIED
Sinclair E WieserItalyElwin Sharvill NEW
Jones B DoeItalyAsiya Javayant NEW
Leon B SaylorsItalyAnna Fali QUALIFIED
Greenwood M PerinBrazilElwin Sharvill NEGOTIATION
Alejandro D WaycottUnited KingdomIvan Magalhaes PROPOSAL
Ricardo O RoysterFranceXuxue Feng RENEWAL
Alejandro F RoysterRussiaOnyama Limba QUALIFIED
Clifford N StensethItalyAnna Fali NEGOTIATION
Isabel G PerinIndiaIoni Bowcher PROPOSAL
Johnson D DoeItalyOnyama Limba UNQUALIFIED
Murillo N WhobreySpainAmy Elsner UNQUALIFIED
Mujtaba T PoquetteItalyAnna Fali RENEWAL
Salvatore D RutaUnited KingdomAmy Elsner RENEWAL
Isabel K CaldareraArgentinaAnna Fali NEW
Deepesh V GauchoSpainOnyama Limba QUALIFIED
Aruna F NestleCanadaIoni Bowcher NEW
Munro C CaudyItalyBernardo Dominic QUALIFIED
Jones B VocelkaArgentinaAsiya Javayant NEW
Clifford A CaldareraBrazilAsiya Javayant NEW
Jeanfrancois Z FigeroaArgentinaAsiya Javayant RENEWAL
Jones V FigeroaUnited KingdomAnna Fali NEW
Mayumi C DoeAustraliaBernardo Dominic PROPOSAL
Nicolas W FollerGermanyIvan Magalhaes PROPOSAL
Morrow Z OstroskyAustraliaBernardo Dominic NEW
Greenwood M GarufiCanadaBernardo Dominic NEGOTIATION
Isabel W NickaCanadaAsiya Javayant NEGOTIATION
Leja G PaprockiFranceXuxue Feng RENEWAL
Cody F GlickGermanyIoni Bowcher NEW
Jeanfrancois P FerenczArgentinaBernardo Dominic NEW
Rodrigues L MaletJapanAnna Fali PROPOSAL
Smith E BologniaSpainStephen Shaw QUALIFIED
Kadeem E RutaBrazilBernardo Dominic RENEWAL
Aruna D NickaItalyElwin Sharvill NEGOTIATION
Kadeem G MarrierBrazilElwin Sharvill RENEWAL
Morrow V VenereUnited KingdomXuxue Feng QUALIFIED
Claire A GillianCanadaIvan Magalhaes PROPOSAL
Jefferson V SergiIndiaAnna Fali RENEWAL
Kadeem T GlickItalyElwin Sharvill NEGOTIATION
Cody T DoeArgentinaAsiya Javayant QUALIFIED
Faith S TollnerBrazilIvan Magalhaes RENEWAL
Morrow N CaudyFranceElwin Sharvill UNQUALIFIED
Adams V RulapaughSpainAmy Elsner UNQUALIFIED
Greenwood Z FollerGermanyAnna Fali NEGOTIATION
Chavez P ButtArgentinaOnyama Limba QUALIFIED
Greenwood J IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Isabel E WieserIndiaAsiya Javayant NEW
Alejandro F FollerFranceAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin K ChuiFranceAsiya Javayant NEGOTIATION
Francesco H SlusarskiItalyIvan Magalhaes QUALIFIED
Maisha Z IturbideAustraliaAsiya Javayant UNQUALIFIED
Jefferson G ButtAustraliaStephen Shaw QUALIFIED
Arvin R AmigonCanadaOnyama Limba NEGOTIATION
Aruna X FigeroaJapanAsiya Javayant UNQUALIFIED
Ivar W GarufiSpainXuxue Feng NEW
Silvio M WaycottJapanAmy Elsner NEW
Adams R StockhamSpainIoni Bowcher NEW
Silvio E StensethRussiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro S OstroskyFrance2025-04-22King, Christopher A Esq UNQUALIFIED3Anna Fali
1001Octavia C WieserFrance2025-04-07Morlong Associates UNQUALIFIED34Xuxue Feng
1002Mujtaba W NestleCanada2025-04-29Dorl, James J Esq UNQUALIFIED55Elwin Sharvill
1003Ashley E SlusarskiArgentina2025-04-18Chanay, Jeffrey A Esq RENEWAL23Asiya Javayant
1004Maria V MaletAustralia2025-04-29Morlong Associates RENEWAL47Onyama Limba
1005Deepesh S DarakjyIndia2025-04-20Printing Dimensions RENEWAL14Elwin Sharvill
1006Juan V AlbaresBrazil2025-04-15Buckley Miller Wright QUALIFIED68Asiya Javayant
1007Izzy O CaudyCanada2025-04-07Rangoni Of Florence NEW42Xuxue Feng
1008Kadeem F VenereUnited Kingdom2025-04-10Chapman, Ross E Esq RENEWAL12Xuxue Feng
1009James Z ButtBrazil2025-04-10Chemel, James L Cpa RENEWAL83Asiya Javayant
1010Munro A FollerAustralia2025-04-25Chapman, Ross E Esq UNQUALIFIED80Onyama Limba
1011Claire M GlickItaly2025-04-06King, Christopher A Esq NEW22Elwin Sharvill
1012Izzy P StensethBrazil2025-04-15Buckley Miller Wright RENEWAL12Ioni Bowcher
1013Faith W SergiJapan2025-04-25Benton, John B Jr NEW34Ioni Bowcher
1014Aditya V KolmetzIndia2025-04-14Feiner Bros UNQUALIFIED46Ivan Magalhaes
1015Sinclair Q BologniaRussia2025-04-21Commercial Press QUALIFIED61Ivan Magalhaes
1016Octavia E IturbideUnited Kingdom2025-04-16Dorl, James J Esq QUALIFIED98Elwin Sharvill
1017Silvio K SergiBrazil2025-05-05Morlong Associates UNQUALIFIED48Ivan Magalhaes
1018Octavia S TollnerCanada2025-04-11Dorl, James J Esq UNQUALIFIED56Bernardo Dominic
1019Silvio Y KuskoArgentina2025-04-20Benton, John B Jr PROPOSAL56Anna Fali
1020Aruna O GarufiFrance2025-04-30Morlong Associates RENEWAL52Xuxue Feng
1021Tony B MorascaArgentina2025-04-28Buckley Miller Wright RENEWAL24Bernardo Dominic
1022Leja R FollerAustralia2025-04-15Truhlar And Truhlar Attys UNQUALIFIED84Ivan Magalhaes
1023Clifford T RutaFrance2025-04-21Rangoni Of Florence RENEWAL4Onyama Limba
1024Isabel R NickaArgentina2025-04-14Feltz Printing Service PROPOSAL15Bernardo Dominic
1025Chavez N FlosiBrazil2025-04-13Printing Dimensions NEGOTIATION89Amy Elsner
1026Darci B CaudyArgentina2025-04-30Chanay, Jeffrey A Esq RENEWAL17Ioni Bowcher
1027Wickens X MaletJapan2025-04-19Chanay, Jeffrey A Esq NEW14Asiya Javayant
1028Jeanfrancois T OldroydSpain2025-04-16Truhlar And Truhlar Attys NEGOTIATION31Asiya Javayant
1029Nicolas T WhobreyBrazil2025-04-09King, Christopher A Esq UNQUALIFIED43Elwin Sharvill
1030Jeanfrancois P SchemmerSpain2025-05-04Dorl, James J Esq RENEWAL71Xuxue Feng
1031Arvin R OldroydJapan2025-04-20Chemel, James L Cpa NEGOTIATION8Elwin Sharvill
1032Sinclair U DilliardIndia2025-04-06Chemel, James L Cpa NEGOTIATION63Stephen Shaw
1033Aika M SchemmerGermany2025-04-21Chemel, James L Cpa QUALIFIED11Onyama Limba
1034Rodrigues R FlosiGermany2025-04-26Rangoni Of Florence NEW73Amy Elsner
1035Juan S WieserCanada2025-04-24Chemel, James L Cpa NEGOTIATION63Amy Elsner
1036Silvio V FlosiJapan2025-04-17Dorl, James J Esq NEGOTIATION93Onyama Limba
1037Munro F GarufiFrance2025-04-20Rangoni Of Florence RENEWAL13Amy Elsner
1038Leja L SaylorsItaly2025-04-25Feiner Bros UNQUALIFIED67Xuxue Feng
1039Salvatore O FerenczBrazil2025-04-30Chanay, Jeffrey A Esq NEGOTIATION27Anna Fali
1040Julie E RutaBrazil2025-04-15Rousseaux, Michael Esq RENEWAL69Anna Fali
1041Alejandro G VenereAustralia2025-04-18Chemel, James L Cpa NEGOTIATION48Ioni Bowcher
1042Deepesh P StockhamFrance2025-05-03Feiner Bros NEGOTIATION76Asiya Javayant
1043Julie F RimCanada2025-04-24Chanay, Jeffrey A Esq RENEWAL50Onyama Limba
1044Stacey L TollnerIndia2025-05-05Morlong Associates UNQUALIFIED91Stephen Shaw
1045Rodrigues K NickaFrance2025-04-10Truhlar And Truhlar Attys NEW34Asiya Javayant
1046Stacey T MarrierItaly2025-04-23Chanay, Jeffrey A Esq QUALIFIED88Onyama Limba
1047Ivar D FollerUnited Kingdom2025-05-02Chanay, Jeffrey A Esq NEGOTIATION72Ivan Magalhaes
1048Chavez M MarrierIndia2025-04-08Chanay, Jeffrey A Esq NEGOTIATION50Stephen Shaw
1049Leja F PoquetteCanada2025-04-08Printing Dimensions RENEWAL91Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Misaki C VocelkaBrazilAmy Elsner PROPOSAL
Smith Z OldroydFranceElwin Sharvill NEW
Emily R CaudyBrazilElwin Sharvill PROPOSAL
Leja A TollnerJapanOnyama Limba RENEWAL
Stacey S ChuiRussiaBernardo Dominic UNQUALIFIED
Cody S TollnerItalyAnna Fali NEGOTIATION
Munro J CampainBrazilElwin Sharvill NEW
Maisha B AlbaresArgentinaAmy Elsner RENEWAL
Kaitlin G CampainIndiaStephen Shaw QUALIFIED
Aditya A InouyeArgentinaElwin Sharvill UNQUALIFIED
Jones S MorascaCanadaIoni Bowcher QUALIFIED
Aika B DarakjyRussiaXuxue Feng NEW
Cody N MaletRussiaAnna Fali PROPOSAL
James C KuskoGermanyOnyama Limba NEGOTIATION
Deepesh A SchemmerRussiaStephen Shaw RENEWAL
Smith K TollnerGermanyElwin Sharvill NEW
Izzy T FollerItalyIvan Magalhaes UNQUALIFIED
Alejandro E NickaAustraliaAnna Fali UNQUALIFIED
Ashley H CaudyArgentinaAsiya Javayant PROPOSAL
Francesco I GillianAustraliaStephen Shaw NEW
Leja U FerenczGermanyXuxue Feng NEGOTIATION
Chavez D NickaAustraliaXuxue Feng QUALIFIED
Octavia E MarrierUnited KingdomAsiya Javayant NEGOTIATION
Ivar C KuskoItalyBernardo Dominic PROPOSAL
Kadeem K FerenczSpainAsiya Javayant RENEWAL
Leja P MorascaItalyStephen Shaw UNQUALIFIED
Sinclair S StockhamUnited KingdomElwin Sharvill RENEWAL
Octavia T RimBrazilXuxue Feng NEW
Jefferson I OstroskyJapanAsiya Javayant UNQUALIFIED
Leja T WieserAustraliaIoni Bowcher NEGOTIATION
Antonio D GauchoJapanXuxue Feng NEW
Kadeem M KuskoItalyAmy Elsner UNQUALIFIED
David U FerenczGermanyStephen Shaw PROPOSAL
David N FollerAustraliaElwin Sharvill RENEWAL
Jones D OstroskyFranceAmy Elsner QUALIFIED
Salvatore Z ButtIndiaStephen Shaw RENEWAL
Jones I SchemmerRussiaElwin Sharvill QUALIFIED
Octavia K RimIndiaIoni Bowcher NEGOTIATION
Arvin B MaletFranceIvan Magalhaes NEGOTIATION
Mayumi E DarakjyFranceBernardo Dominic QUALIFIED
Aika O AlbaresItalyElwin Sharvill NEW
Kadeem U PaprockiUnited KingdomAnna Fali UNQUALIFIED
Cody W BologniaUnited KingdomXuxue Feng UNQUALIFIED
Johnson U VocelkaAustraliaElwin Sharvill QUALIFIED
Aruna D WhobreyIndiaAsiya Javayant QUALIFIED
Cody L TollnerRussiaXuxue Feng PROPOSAL
Jefferson H PaprockiAustraliaIoni Bowcher PROPOSAL
Ashley Z PoquetteSpainOnyama Limba PROPOSAL
Johnson S SlusarskiFranceStephen Shaw NEGOTIATION
Juan U CaldareraItalyIoni Bowcher QUALIFIED
Frozen Columns
Name
Smith S Oldroyd
Mayumi B Saylors
Mujtaba U Bolognia
Aika Y Glick
Jefferson G Paprocki
Cody E Amigon
Kaitlin U Bowley
Claire M Shinko
Costa L Ostrosky
Darci E Figeroa
Ivar O Wieser
Morrow K Iturbide
Aditya Z Flosi
Misaki V Doe
Deepesh E Chui
Faith J Rim
Kaitlin W Bowley
Adams Y Chui
Jennifer F Amigon
Salvatore O Slusarski
Jefferson S Nestle
Stacey J Perin
Clifford R Malet
Aditya D Vocelka
Munro E Briddick
Jefferson W Nestle
Jennifer P Garufi
Costa O Tollner
Izzy F Bolognia
James M Darakjy
Nicolas O Whobrey
Aditya U Iturbide
Ashley J Glick
Adams H Rulapaugh
Smith U Ferencz
Claire J Perin
Aditya A Doe
Jeanfrancois B Stockham
Jeanfrancois J Marrier
Silvio V Vocelka
Darci P Vocelka
Chavez Y Darakjy
Stacey N Rulapaugh
Ashley N Malet
Greenwood D Rim
Aika G Inouye
Jennifer V Paprocki
Tony N Vocelka
Rodrigues I Iturbide
Leon O Wieser
IdCountryDate
1000France2025-04-30
1001Japan2025-04-13
1002United Kingdom2025-04-10
1003Australia2025-04-26
1004United Kingdom2025-04-22
1005Spain2025-04-25
1006Italy2025-04-29
1007Australia2025-04-29
1008Russia2025-05-05
1009Spain2025-04-23
1010Germany2025-05-05
1011India2025-04-22
1012Russia2025-04-27
1013Italy2025-04-24
1014France2025-04-26
1015Russia2025-04-28
1016Russia2025-04-08
1017Canada2025-04-29
1018France2025-04-12
1019Spain2025-04-28
1020Italy2025-04-06
1021Canada2025-04-06
1022Spain2025-04-08
1023Spain2025-04-26
1024Japan2025-04-17
1025Spain2025-04-25
1026Italy2025-04-12
1027United Kingdom2025-04-12
1028Japan2025-04-12
1029United Kingdom2025-04-29
1030Brazil2025-04-26
1031Australia2025-05-03
1032Canada2025-04-30
1033Japan2025-04-16
1034United Kingdom2025-05-05
1035Australia2025-05-04
1036Japan2025-04-14
1037Japan2025-04-28
1038Brazil2025-04-10
1039Germany2025-04-07
1040Russia2025-04-10
1041Russia2025-04-06
1042Italy2025-05-01
1043Canada2025-04-19
1044Germany2025-04-19
1045Italy2025-05-01
1046Italy2025-04-08
1047Spain2025-05-05
1048Germany2025-04-10
1049Russia2025-04-07

On-Demand Data

NameIdCountryDate
Salvatore G Kolmetz1000Japan2025-04-25
Mayumi S Stenseth1001Japan2025-04-06
Arvin K Rim1002Argentina2025-04-08
Maria Q Stenseth1003Italy2025-05-04
Morrow Q Rim1004United Kingdom2025-05-03
Aika M Royster1005France2025-04-11
Julie O Morasca1006Japan2025-04-26
Arvin U Bolognia1007Germany2025-05-01
Cody V Butt1008France2025-04-17
Sinclair W Dilliard1009Australia2025-04-20
Misaki Y Flosi1010Germany2025-04-27
Deepesh C Royster1011Canada2025-05-04
Octavia J Slusarski1012Germany2025-04-26
Juan P Poquette1013France2025-04-27
Costa M Caldarera1014Canada2025-05-01
Nicolas L Wieser1015Russia2025-04-20
Nicolas U Rim1016Japan2025-05-03
Jennifer Z Gaucho1017Canada2025-04-24
Isabel S Maclead1018Canada2025-04-17
Misaki J Caldarera1019Russia2025-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith J MorascaAustraliaBernardo Dominic PROPOSAL
Jeanfrancois M ChuiArgentinaAmy Elsner UNQUALIFIED
Costa D InouyeCanadaElwin Sharvill NEGOTIATION
Mujtaba U DilliardGermanyXuxue Feng UNQUALIFIED
Cody M GlickIndiaElwin Sharvill PROPOSAL
Adams Y ButtJapanAnna Fali PROPOSAL
Sinclair H InouyeIndiaBernardo Dominic NEW
Jennifer M CampainIndiaXuxue Feng NEGOTIATION
Cody S GillianUnited KingdomIoni Bowcher QUALIFIED
Aruna D PerinArgentinaAmy Elsner NEGOTIATION
Stacey G PoquetteSpainStephen Shaw QUALIFIED
Julie H KolmetzRussiaIvan Magalhaes QUALIFIED
Maria R OstroskyCanadaElwin Sharvill NEGOTIATION
Antonio B AmigonItalyBernardo Dominic NEGOTIATION
Nicolas Q OstroskyFranceIvan Magalhaes NEGOTIATION
Faith V AmigonAustraliaXuxue Feng RENEWAL
Kadeem I VocelkaItalyOnyama Limba QUALIFIED
Julie F ChuiItalyAsiya Javayant UNQUALIFIED
Ricardo T OstroskyFranceIvan Magalhaes UNQUALIFIED
Ricardo W FlosiJapanStephen Shaw NEGOTIATION
Morrow F RimBrazilStephen Shaw QUALIFIED
Morrow S BriddickArgentinaStephen Shaw PROPOSAL
Mujtaba S FollerGermanyAmy Elsner QUALIFIED
Greenwood J VenereSpainIvan Magalhaes RENEWAL
Claire D VocelkaAustraliaElwin Sharvill UNQUALIFIED
Antonio I GarufiFranceAsiya Javayant QUALIFIED
Silvio T PoquetteArgentinaIvan Magalhaes NEGOTIATION
Aditya B TollnerItalyAsiya Javayant UNQUALIFIED
Emily E WaycottUnited KingdomXuxue Feng NEGOTIATION
Maisha S VocelkaRussiaAnna Fali NEGOTIATION
Murillo F AlbaresAustraliaXuxue Feng PROPOSAL
Octavia P ShinkoBrazilElwin Sharvill NEW
Tony H FlosiIndiaBernardo Dominic PROPOSAL
Juan J KuskoCanadaAsiya Javayant PROPOSAL
Jefferson D DarakjyRussiaIvan Magalhaes PROPOSAL
Jeanfrancois P FerenczArgentinaOnyama Limba QUALIFIED
Kaitlin W ShinkoIndiaAsiya Javayant PROPOSAL
Salvatore K NestleBrazilIvan Magalhaes RENEWAL
Smith M BologniaSpainOnyama Limba QUALIFIED
Adams V MarrierItalyStephen Shaw 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>