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
Aika U KolmetzArgentinaAmy Elsner QUALIFIED
Antonio A IturbideArgentinaIvan Magalhaes RENEWAL
Rodrigues B BologniaSpainAnna Fali NEW
Ashley X RutaCanadaOnyama Limba UNQUALIFIED
Darci X FlosiFranceBernardo Dominic RENEWAL
Antonio P CampainCanadaOnyama Limba PROPOSAL
Kaitlin N FollerUnited KingdomAsiya Javayant PROPOSAL
Johnson K BowleyItalyIoni Bowcher UNQUALIFIED
Jones S MaletUnited KingdomBernardo Dominic NEW
Claire S TollnerUnited KingdomXuxue Feng RENEWAL
Chavez I RoysterItalyAmy Elsner RENEWAL
Faith F RoysterBrazilIoni Bowcher RENEWAL
Faith F SergiBrazilIoni Bowcher UNQUALIFIED
Silvio G ButtJapanIoni Bowcher UNQUALIFIED
Costa U MaletRussiaStephen Shaw RENEWAL
Darci G PerinRussiaIoni Bowcher UNQUALIFIED
Adams J MorascaItalyAnna Fali NEW
Sinclair J GlickArgentinaElwin Sharvill NEGOTIATION
James T BologniaSpainBernardo Dominic QUALIFIED
Aruna R MacleadGermanyStephen Shaw RENEWAL
Ricardo I WieserUnited KingdomAsiya Javayant RENEWAL
Sinclair M WaycottRussiaIoni Bowcher RENEWAL
Jones N TollnerGermanyAsiya Javayant NEGOTIATION
Leon H MacleadUnited KingdomAnna Fali UNQUALIFIED
Ashley A CaldareraItalyIvan Magalhaes PROPOSAL
Aruna N DilliardItalyAnna Fali QUALIFIED
Misaki O MaletUnited KingdomAsiya Javayant PROPOSAL
Ricardo A ShinkoJapanAsiya Javayant QUALIFIED
Sinclair G GillianUnited KingdomAsiya Javayant UNQUALIFIED
Darci I WieserJapanIoni Bowcher NEGOTIATION
Chavez G MarrierRussiaIvan Magalhaes QUALIFIED
Leja Z FerenczJapanElwin Sharvill RENEWAL
Costa G AlbaresBrazilStephen Shaw RENEWAL
Ricardo U VocelkaJapanAsiya Javayant NEW
Murillo M VenereArgentinaAnna Fali NEW
Johnson C OldroydJapanAsiya Javayant NEW
Jones T ButtCanadaElwin Sharvill QUALIFIED
Smith G FlosiRussiaBernardo Dominic NEGOTIATION
Clifford Y ChuiItalyIoni Bowcher NEW
Misaki G OldroydArgentinaAnna Fali UNQUALIFIED
Aruna I FigeroaItalyBernardo Dominic QUALIFIED
Isabel N GarufiCanadaIvan Magalhaes QUALIFIED
Ashley F DilliardIndiaAnna Fali QUALIFIED
Leja R ShinkoItalyIvan Magalhaes QUALIFIED
Murillo I FollerBrazilIoni Bowcher NEGOTIATION
Octavia M RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Faith I FigeroaUnited KingdomXuxue Feng QUALIFIED
Adams M RulapaughRussiaIvan Magalhaes NEW
Deepesh Z PoquetteUnited KingdomAmy Elsner RENEWAL
Claire M MarrierGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ashley A GlickGermanyXuxue Feng PROPOSAL
Cody T DilliardSpainStephen Shaw PROPOSAL
Johnson Y PoquetteItalyAnna Fali RENEWAL
Rodrigues B StockhamArgentinaAmy Elsner RENEWAL
Clifford B BologniaJapanXuxue Feng UNQUALIFIED
Octavia N ButtItalyAsiya Javayant QUALIFIED
Octavia W CaldareraRussiaElwin Sharvill UNQUALIFIED
Murillo U VocelkaSpainOnyama Limba UNQUALIFIED
Maria N MaletGermanyAmy Elsner RENEWAL
Arvin O RulapaughFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore E PaprockiAustralia2024-09-12Commercial Press RENEWAL36Ivan Magalhaes
1001Nicolas W VocelkaJapan2024-08-29King, Christopher A Esq NEW47Stephen Shaw
1002Maisha J KolmetzArgentina2024-09-19King, Christopher A Esq RENEWAL94Xuxue Feng
1003James M NestleFrance2024-09-15Rangoni Of Florence RENEWAL9Ivan Magalhaes
1004Julie C FlosiSpain2024-08-30Truhlar And Truhlar Attys QUALIFIED34Elwin Sharvill
1005Stacey K BologniaSpain2024-09-20Chanay, Jeffrey A Esq RENEWAL32Anna Fali
1006Juan J RimGermany2024-08-25Benton, John B Jr NEGOTIATION78Elwin Sharvill
1007Leja A RutaSpain2024-09-10Dorl, James J Esq UNQUALIFIED38Asiya Javayant
1008Jeanfrancois Y IturbideGermany2024-09-19Chapman, Ross E Esq RENEWAL12Ivan Magalhaes
1009Clifford Z MarrierCanada2024-08-25Commercial Press PROPOSAL82Asiya Javayant
1010Chavez O FerenczIndia2024-09-19Morlong Associates UNQUALIFIED88Xuxue Feng
1011Cody X WhobreyAustralia2024-08-29Commercial Press UNQUALIFIED27Bernardo Dominic
1012Francesco Q AmigonCanada2024-09-02Benton, John B Jr RENEWAL55Ioni Bowcher
1013James N SergiArgentina2024-08-25Chemel, James L Cpa RENEWAL7Ivan Magalhaes
1014Julie F CaudySpain2024-09-20Chemel, James L Cpa NEW82Amy Elsner
1015Ricardo F KolmetzGermany2024-09-23Chanay, Jeffrey A Esq RENEWAL31Stephen Shaw
1016Maria H WieserArgentina2024-09-21Dorl, James J Esq NEGOTIATION15Onyama Limba
1017Salvatore Z StensethArgentina2024-08-31King, Christopher A Esq PROPOSAL55Asiya Javayant
1018Clifford K GillianJapan2024-09-15Commercial Press UNQUALIFIED88Ivan Magalhaes
1019Julie F SlusarskiRussia2024-09-15Benton, John B Jr NEW61Stephen Shaw
1020Clifford R VenereRussia2024-08-28Chapman, Ross E Esq PROPOSAL73Stephen Shaw
1021Costa F ShinkoSpain2024-09-06Buckley Miller Wright RENEWAL97Ivan Magalhaes
1022Jennifer F GarufiItaly2024-09-07Feltz Printing Service QUALIFIED33Elwin Sharvill
1023Rodrigues H GillianRussia2024-09-16Benton, John B Jr RENEWAL90Amy Elsner
1024Leja I FerenczUnited Kingdom2024-09-16Dorl, James J Esq NEGOTIATION24Ivan Magalhaes
1025Francesco T TollnerItaly2024-09-09Morlong Associates NEGOTIATION98Asiya Javayant
1026James N SchemmerJapan2024-09-16Printing Dimensions RENEWAL96Onyama Limba
1027Claire I ShinkoGermany2024-09-20Rousseaux, Michael Esq RENEWAL89Elwin Sharvill
1028Darci V WaycottRussia2024-09-10Feiner Bros QUALIFIED56Asiya Javayant
1029Arvin Q IturbideBrazil2024-08-30Morlong Associates QUALIFIED32Bernardo Dominic
1030Morrow Q TollnerJapan2024-09-08Dorl, James J Esq NEGOTIATION90Xuxue Feng
1031Smith V GarufiFrance2024-09-20Chemel, James L Cpa PROPOSAL46Xuxue Feng
1032Ricardo L PaprockiFrance2024-09-08Chemel, James L Cpa PROPOSAL28Ioni Bowcher
1033Rodrigues J NestleSpain2024-09-11Truhlar And Truhlar Attys QUALIFIED63Anna Fali
1034Aika S DarakjyRussia2024-09-04Rousseaux, Michael Esq PROPOSAL2Asiya Javayant
1035Antonio I SergiRussia2024-09-05Chanay, Jeffrey A Esq UNQUALIFIED46Bernardo Dominic
1036Clifford H RutaFrance2024-08-29Feiner Bros QUALIFIED25Elwin Sharvill
1037David U ButtSpain2024-08-26Commercial Press PROPOSAL5Stephen Shaw
1038Faith V SlusarskiUnited Kingdom2024-08-29Buckley Miller Wright RENEWAL49Xuxue Feng
1039Sinclair X RoysterCanada2024-09-23Truhlar And Truhlar Attys RENEWAL54Elwin Sharvill
1040Salvatore F VenereGermany2024-08-31Buckley Miller Wright RENEWAL54Amy Elsner
1041Johnson T KolmetzFrance2024-08-25Rangoni Of Florence NEGOTIATION29Elwin Sharvill
1042Stacey Q InouyeSpain2024-09-03Morlong Associates NEW42Ioni Bowcher
1043Smith L TollnerUnited Kingdom2024-09-08Truhlar And Truhlar Attys PROPOSAL12Onyama Limba
1044Claire T VocelkaUnited Kingdom2024-08-30Benton, John B Jr NEW0Amy Elsner
1045Salvatore C GauchoJapan2024-08-29Commercial Press UNQUALIFIED2Ioni Bowcher
1046Claire J CampainIndia2024-09-23Dorl, James J Esq NEGOTIATION72Ivan Magalhaes
1047Octavia Z SlusarskiRussia2024-09-02Chapman, Ross E Esq PROPOSAL30Anna Fali
1048Wickens Y RutaJapan2024-09-04Chemel, James L Cpa PROPOSAL97Ioni Bowcher
1049Aruna R PerinBrazil2024-09-17Rangoni Of Florence QUALIFIED4Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody M MaletGermanyAmy Elsner NEGOTIATION
Deepesh N DarakjyGermanyBernardo Dominic QUALIFIED
Salvatore X PoquetteSpainOnyama Limba QUALIFIED
Darci E CampainFranceIoni Bowcher QUALIFIED
Misaki Q PerinAustraliaAmy Elsner QUALIFIED
Kaitlin B AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Francesco P CampainBrazilElwin Sharvill RENEWAL
Greenwood H RulapaughCanadaAsiya Javayant NEW
Ivar Z GlickBrazilAsiya Javayant PROPOSAL
Deepesh E GillianSpainBernardo Dominic QUALIFIED
Jennifer H RulapaughIndiaBernardo Dominic RENEWAL
Kadeem J AlbaresJapanAsiya Javayant NEGOTIATION
Emily C FigeroaArgentinaAnna Fali UNQUALIFIED
Aruna P MorascaGermanyOnyama Limba QUALIFIED
Murillo V KolmetzJapanAnna Fali UNQUALIFIED
Morrow S VenereSpainIoni Bowcher UNQUALIFIED
Arvin G WieserGermanyAsiya Javayant QUALIFIED
Jennifer T RutaAustraliaElwin Sharvill NEGOTIATION
Emily V InouyeRussiaElwin Sharvill RENEWAL
Mujtaba P CaldareraAustraliaAnna Fali NEW
Arvin J AlbaresIndiaElwin Sharvill UNQUALIFIED
Darci P RimJapanIvan Magalhaes PROPOSAL
Francesco O NickaBrazilIoni Bowcher QUALIFIED
Sinclair Q PerinAustraliaOnyama Limba RENEWAL
Nicolas R OstroskyUnited KingdomElwin Sharvill NEW
Rodrigues S MacleadBrazilXuxue Feng PROPOSAL
Murillo Z PoquetteBrazilIvan Magalhaes NEW
Kaitlin B CaudyJapanElwin Sharvill UNQUALIFIED
Salvatore N BriddickSpainAnna Fali PROPOSAL
Deepesh E KolmetzSpainAnna Fali NEW
Sinclair G TollnerRussiaIvan Magalhaes NEGOTIATION
Maisha R GarufiFranceIoni Bowcher RENEWAL
Chavez C WaycottCanadaElwin Sharvill UNQUALIFIED
Jefferson S RimSpainAmy Elsner PROPOSAL
Aruna K SchemmerArgentinaAnna Fali UNQUALIFIED
Arvin E FigeroaFranceStephen Shaw RENEWAL
Leon W NestleCanadaElwin Sharvill RENEWAL
Adams G MacleadBrazilStephen Shaw NEW
James J CaudyUnited KingdomStephen Shaw NEGOTIATION
Misaki X OstroskyItalyIvan Magalhaes NEW
David Q MarrierJapanXuxue Feng NEGOTIATION
Maria E NestleSpainIvan Magalhaes NEW
Arvin D ChuiFranceBernardo Dominic NEGOTIATION
Munro H PerinItalyIoni Bowcher PROPOSAL
Cody X RoysterUnited KingdomOnyama Limba NEW
Ashley Q FerenczSpainElwin Sharvill PROPOSAL
Aditya F TollnerArgentinaElwin Sharvill NEW
Kadeem H DilliardJapanAmy Elsner UNQUALIFIED
Greenwood R VocelkaRussiaAmy Elsner RENEWAL
David Y NestleBrazilStephen Shaw NEW
Frozen Columns
Name
Claire R Doe
Clifford R Flosi
Ashley X Amigon
Munro R Poquette
Jefferson A Figeroa
Jefferson R Kolmetz
Tony Z Ruta
Francesco U Saylors
Sinclair Y Stenseth
James I Rulapaugh
Kaitlin T Ferencz
Ricardo C Stenseth
Mayumi B Flosi
Tony W Inouye
Ashley V Glick
Stacey J Dilliard
Adams O Glick
Mujtaba H Chui
Julie R Rulapaugh
Greenwood Z Paprocki
Ashley P Dilliard
Mujtaba T Royster
Octavia D Malet
Ashley K Rim
Ashley E Waycott
Rodrigues J Sergi
Johnson U Figeroa
Greenwood N Garufi
Chavez M Inouye
Smith Z Vocelka
Deepesh C Dilliard
Ricardo T Maclead
Kadeem N Amigon
Claire S Slusarski
Isabel L Amigon
Jennifer Z Schemmer
Aruna M Chui
Maisha Q Gaucho
Emily J Gillian
Maria E Poquette
Julie I Butt
Wickens Q Sergi
Ivar S Ferencz
Clifford G Morasca
Nicolas K Gillian
Morrow S Paprocki
Cody A Morasca
Antonio X Shinko
Julie M Garufi
Morrow O Kusko
IdCountryDate
1000Argentina2024-09-13
1001Japan2024-08-28
1002United Kingdom2024-09-22
1003Japan2024-08-29
1004Italy2024-09-07
1005India2024-09-01
1006Spain2024-08-25
1007Russia2024-08-29
1008France2024-09-23
1009Argentina2024-09-19
1010Canada2024-09-05
1011Russia2024-09-02
1012India2024-09-19
1013Germany2024-09-17
1014Canada2024-09-04
1015Spain2024-09-06
1016Argentina2024-09-13
1017Australia2024-09-09
1018Brazil2024-08-29
1019United Kingdom2024-09-08
1020Japan2024-09-03
1021France2024-09-03
1022India2024-09-23
1023Canada2024-09-08
1024Canada2024-09-22
1025Brazil2024-09-05
1026Canada2024-09-23
1027Australia2024-09-18
1028United Kingdom2024-09-22
1029Australia2024-08-26
1030Argentina2024-08-30
1031Brazil2024-09-04
1032Argentina2024-08-26
1033India2024-09-05
1034Argentina2024-09-23
1035India2024-09-02
1036Spain2024-09-12
1037Russia2024-09-10
1038Canada2024-08-31
1039Japan2024-08-28
1040Canada2024-09-05
1041Russia2024-08-27
1042Russia2024-09-20
1043United Kingdom2024-08-29
1044Spain2024-09-16
1045United Kingdom2024-09-01
1046Russia2024-09-01
1047Argentina2024-09-21
1048Japan2024-09-11
1049France2024-09-18

On-Demand Data

NameIdCountryDate
Alejandro U Amigon1000Japan2024-08-25
Rodrigues R Doe1001Brazil2024-09-14
Stacey A Stockham1002Germany2024-09-13
Darci F Saylors1003United Kingdom2024-09-10
Deepesh Z Bolognia1004India2024-09-14
Silvio S Gillian1005Germany2024-08-26
Kaitlin Z Poquette1006Italy2024-09-23
Stacey D Slusarski1007Argentina2024-09-10
Alejandro O Campain1008France2024-08-25
Ivar O Briddick1009Argentina2024-09-19
Aditya W Caldarera1010Germany2024-09-22
Mujtaba B Kusko1011Argentina2024-09-05
Munro R Gillian1012India2024-09-11
Mayumi P Vocelka1013Germany2024-09-15
Cody N Waycott1014Brazil2024-09-23
Julie W Wieser1015Brazil2024-09-03
Ivar O Stenseth1016Russia2024-08-26
Leja P Shinko1017Russia2024-09-23
David J Malet1018Canada2024-09-15
Mayumi F Nicka1019Japan2024-09-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley X SaylorsFranceIvan Magalhaes NEW
Jones P FollerIndiaAnna Fali UNQUALIFIED
Antonio Z AmigonGermanyOnyama Limba UNQUALIFIED
Maisha C MorascaUnited KingdomOnyama Limba NEGOTIATION
Ashley Y GlickArgentinaXuxue Feng UNQUALIFIED
Claire I AlbaresRussiaIoni Bowcher RENEWAL
Aditya W TollnerGermanyAmy Elsner UNQUALIFIED
Sinclair Y StockhamAustraliaElwin Sharvill UNQUALIFIED
Cody S StockhamRussiaAmy Elsner NEGOTIATION
Izzy P ButtBrazilAmy Elsner UNQUALIFIED
Faith H MaletSpainAsiya Javayant RENEWAL
Smith U BriddickCanadaAnna Fali NEW
Salvatore O TollnerCanadaIvan Magalhaes NEW
Alejandro G PerinArgentinaIoni Bowcher RENEWAL
Kaitlin M OstroskyIndiaAnna Fali PROPOSAL
Leon S FigeroaArgentinaIoni Bowcher QUALIFIED
Alejandro X GillianIndiaStephen Shaw UNQUALIFIED
Leja L AlbaresUnited KingdomOnyama Limba QUALIFIED
Aruna K AlbaresGermanyAnna Fali NEGOTIATION
Cody K KuskoBrazilStephen Shaw PROPOSAL
Costa X MaletSpainElwin Sharvill QUALIFIED
Faith Y PoquetteItalyAmy Elsner NEGOTIATION
Clifford A NestleArgentinaAnna Fali NEW
Aditya V PoquetteGermanyXuxue Feng QUALIFIED
Julie U SergiGermanyIoni Bowcher QUALIFIED
Ricardo W BriddickIndiaAmy Elsner UNQUALIFIED
James A GarufiUnited KingdomAnna Fali UNQUALIFIED
Wickens O MaletUnited KingdomIvan Magalhaes RENEWAL
Chavez Q AlbaresJapanAnna Fali UNQUALIFIED
Faith D FigeroaBrazilBernardo Dominic RENEWAL
Murillo R BriddickSpainStephen Shaw UNQUALIFIED
Misaki P PerinJapanIvan Magalhaes NEW
Alejandro H StensethItalyIvan Magalhaes UNQUALIFIED
Aruna T MorascaGermanyBernardo Dominic PROPOSAL
Alejandro G TollnerSpainAmy Elsner RENEWAL
Morrow K NestleArgentinaAsiya Javayant RENEWAL
Ashley H RutaJapanElwin Sharvill PROPOSAL
Antonio I RutaGermanyAsiya Javayant NEW
Jones R RulapaughGermanyBernardo Dominic NEW
Maria I DoeItalyBernardo Dominic PROPOSAL

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