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
David V GlickJapanOnyama Limba RENEWAL
Adams O NickaJapanOnyama Limba RENEWAL
Julie H RoysterJapanOnyama Limba NEW
Sinclair D RulapaughArgentinaOnyama Limba QUALIFIED
Kadeem Y GarufiUnited KingdomAmy Elsner NEW
Costa E CampainFranceBernardo Dominic NEW
Jefferson W CaldareraJapanXuxue Feng NEGOTIATION
Morrow T FollerAustraliaBernardo Dominic NEGOTIATION
Ricardo W BologniaCanadaAnna Fali NEGOTIATION
Antonio O FerenczUnited KingdomAsiya Javayant RENEWAL
Costa K FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Izzy C SlusarskiCanadaBernardo Dominic UNQUALIFIED
Izzy M DoeItalyXuxue Feng NEW
Ivar F GillianArgentinaIoni Bowcher NEW
Jones W WhobreyFranceXuxue Feng NEGOTIATION
Isabel E ButtRussiaOnyama Limba NEW
Sinclair U MorascaBrazilXuxue Feng RENEWAL
Isabel F PaprockiUnited KingdomAmy Elsner NEW
Aika E IturbideArgentinaBernardo Dominic RENEWAL
Ivar X MaletItalyAsiya Javayant RENEWAL
Kaitlin W SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Sinclair A StockhamRussiaOnyama Limba QUALIFIED
Rodrigues H PerinAustraliaIoni Bowcher PROPOSAL
Ricardo O PoquetteBrazilAnna Fali NEGOTIATION
Ricardo A StockhamArgentinaIvan Magalhaes NEGOTIATION
Claire X RimAustraliaIvan Magalhaes NEW
Kadeem M ChuiRussiaXuxue Feng NEGOTIATION
Julie J AmigonJapanAmy Elsner NEGOTIATION
Alejandro X DoeUnited KingdomIvan Magalhaes QUALIFIED
Deepesh E MaletBrazilBernardo Dominic QUALIFIED
Jones T RutaJapanAsiya Javayant NEGOTIATION
Izzy B DilliardAustraliaAnna Fali UNQUALIFIED
Costa V CaudyArgentinaIoni Bowcher QUALIFIED
Jeanfrancois J GarufiSpainAmy Elsner NEW
Izzy I MacleadBrazilIoni Bowcher RENEWAL
Kadeem V RoysterFranceOnyama Limba PROPOSAL
Julie E NickaBrazilIvan Magalhaes NEGOTIATION
Izzy A MaletCanadaElwin Sharvill NEW
Misaki Z DilliardBrazilElwin Sharvill QUALIFIED
Emily I ShinkoRussiaStephen Shaw UNQUALIFIED
Greenwood N GlickRussiaIoni Bowcher NEW
Costa N WieserFranceIoni Bowcher NEGOTIATION
Tony B InouyeIndiaAnna Fali NEW
Smith A WhobreyItalyAmy Elsner QUALIFIED
Stacey W WhobreyUnited KingdomOnyama Limba NEW
Greenwood V GauchoGermanyXuxue Feng PROPOSAL
David U FollerArgentinaStephen Shaw NEGOTIATION
Aditya F OstroskyArgentinaAnna Fali RENEWAL
Johnson T GlickIndiaOnyama Limba PROPOSAL
Stacey Y PoquetteFranceBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna G MarrierArgentinaAmy Elsner UNQUALIFIED
Morrow N GauchoArgentinaAsiya Javayant RENEWAL
Alejandro W OldroydFranceXuxue Feng PROPOSAL
Octavia D KolmetzJapanStephen Shaw RENEWAL
Ivar V BowleyRussiaIoni Bowcher PROPOSAL
Faith H SergiUnited KingdomElwin Sharvill NEGOTIATION
Wickens P FigeroaGermanyElwin Sharvill PROPOSAL
Johnson D IturbideAustraliaElwin Sharvill PROPOSAL
Greenwood J NestleUnited KingdomStephen Shaw NEGOTIATION
Nicolas W KuskoJapanBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna M RulapaughSpain2026-06-21King, Christopher A Esq NEGOTIATION36Ivan Magalhaes
1001Aditya D AmigonAustralia2026-06-23Chapman, Ross E Esq NEGOTIATION44Amy Elsner
1002Alejandro X SergiAustralia2026-06-27Printing Dimensions RENEWAL25Amy Elsner
1003Claire H DilliardSpain2026-06-17Morlong Associates RENEWAL86Anna Fali
1004Leja S SaylorsRussia2026-06-20Dorl, James J Esq UNQUALIFIED6Ivan Magalhaes
1005Ashley Q MarrierArgentina2026-07-09Feltz Printing Service QUALIFIED4Xuxue Feng
1006Aruna B WieserFrance2026-06-20Benton, John B Jr NEW77Ioni Bowcher
1007Juan N ButtArgentina2026-07-14Buckley Miller Wright QUALIFIED53Xuxue Feng
1008Murillo T RimCanada2026-06-30Rangoni Of Florence RENEWAL55Onyama Limba
1009Maisha A KolmetzCanada2026-07-14Morlong Associates PROPOSAL48Elwin Sharvill
1010Adams A DarakjyCanada2026-07-11Chemel, James L Cpa NEW29Stephen Shaw
1011Costa Q SaylorsCanada2026-06-27Buckley Miller Wright UNQUALIFIED11Ivan Magalhaes
1012Arvin O NestleItaly2026-07-04Printing Dimensions UNQUALIFIED2Bernardo Dominic
1013Faith I VocelkaItaly2026-06-19Morlong Associates QUALIFIED12Ioni Bowcher
1014Aditya E AlbaresUnited Kingdom2026-07-07Benton, John B Jr PROPOSAL97Xuxue Feng
1015Arvin V DoeAustralia2026-06-27Feiner Bros RENEWAL86Bernardo Dominic
1016Mujtaba W ShinkoGermany2026-07-14Chanay, Jeffrey A Esq RENEWAL44Ioni Bowcher
1017Ashley O WieserItaly2026-06-23Benton, John B Jr NEGOTIATION88Onyama Limba
1018Jones A FlosiIndia2026-06-29Morlong Associates RENEWAL24Ivan Magalhaes
1019Salvatore U PaprockiIndia2026-07-05Chanay, Jeffrey A Esq NEW92Stephen Shaw
1020David N AmigonGermany2026-07-02Truhlar And Truhlar Attys QUALIFIED55Asiya Javayant
1021Izzy M RoysterJapan2026-06-24King, Christopher A Esq NEGOTIATION13Onyama Limba
1022Octavia O DoeFrance2026-07-06Benton, John B Jr QUALIFIED29Xuxue Feng
1023Kaitlin L CampainUnited Kingdom2026-07-16Chanay, Jeffrey A Esq RENEWAL6Amy Elsner
1024Leon D KuskoUnited Kingdom2026-06-30Benton, John B Jr NEGOTIATION26Elwin Sharvill
1025Chavez S DoeRussia2026-06-23Chapman, Ross E Esq RENEWAL47Elwin Sharvill
1026Adams B KolmetzAustralia2026-07-04Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1027Jeanfrancois R OstroskyJapan2026-06-19Chapman, Ross E Esq PROPOSAL52Stephen Shaw
1028Wickens O RulapaughAustralia2026-06-18Dorl, James J Esq NEGOTIATION18Anna Fali
1029Stacey F GauchoSpain2026-07-14Truhlar And Truhlar Attys PROPOSAL19Xuxue Feng
1030Maria F DarakjyItaly2026-07-11Feiner Bros NEW80Elwin Sharvill
1031Smith X ButtArgentina2026-06-17Commercial Press NEW48Anna Fali
1032Aika P NickaBrazil2026-06-21Truhlar And Truhlar Attys NEGOTIATION70Onyama Limba
1033Maria O SlusarskiItaly2026-07-15Printing Dimensions PROPOSAL0Xuxue Feng
1034Maisha E SergiGermany2026-06-18King, Christopher A Esq RENEWAL23Elwin Sharvill
1035Rodrigues Q KuskoSpain2026-06-21Commercial Press PROPOSAL59Amy Elsner
1036Darci A NestleItaly2026-07-03Printing Dimensions NEGOTIATION10Stephen Shaw
1037Jennifer I ChuiItaly2026-07-13Truhlar And Truhlar Attys NEGOTIATION93Xuxue Feng
1038Jennifer J MarrierUnited Kingdom2026-06-17Buckley Miller Wright UNQUALIFIED20Xuxue Feng
1039Rodrigues W AlbaresGermany2026-06-27Feiner Bros NEGOTIATION93Stephen Shaw
1040Adams W DilliardGermany2026-07-11Chemel, James L Cpa RENEWAL49Amy Elsner
1041Sinclair P InouyeJapan2026-07-10Chemel, James L Cpa NEGOTIATION23Onyama Limba
1042Munro N FollerIndia2026-06-22Printing Dimensions RENEWAL89Bernardo Dominic
1043Ivar I KuskoIndia2026-07-03Feltz Printing Service PROPOSAL88Anna Fali
1044James M PoquetteGermany2026-06-27Rousseaux, Michael Esq PROPOSAL34Ivan Magalhaes
1045Faith C MacleadBrazil2026-07-06Chemel, James L Cpa UNQUALIFIED45Ioni Bowcher
1046Darci A GillianJapan2026-06-21Feltz Printing Service NEW62Xuxue Feng
1047Wickens I DarakjyCanada2026-06-27Chapman, Ross E Esq NEW92Amy Elsner
1048Claire R MaletSpain2026-07-14Chapman, Ross E Esq NEW21Anna Fali
1049Nicolas V BriddickUnited Kingdom2026-07-12Chapman, Ross E Esq NEW21Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aruna H DarakjyCanadaAsiya Javayant RENEWAL
Deepesh X FollerAustraliaIoni Bowcher RENEWAL
Kadeem N PoquetteGermanyElwin Sharvill PROPOSAL
Ivar S SaylorsFranceBernardo Dominic UNQUALIFIED
Leja R MacleadJapanIoni Bowcher NEGOTIATION
Munro D MaletSpainXuxue Feng NEGOTIATION
Antonio D MaletArgentinaStephen Shaw PROPOSAL
Clifford K KolmetzIndiaOnyama Limba NEW
Kaitlin Z OstroskyAustraliaAnna Fali QUALIFIED
Arvin C NestleRussiaOnyama Limba RENEWAL
Wickens O MorascaIndiaAsiya Javayant QUALIFIED
Maisha G BowleyRussiaIvan Magalhaes PROPOSAL
Juan T FigeroaItalyAsiya Javayant PROPOSAL
Munro M StockhamUnited KingdomXuxue Feng RENEWAL
Ricardo E RoysterRussiaIoni Bowcher NEW
Stacey B WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro M ShinkoFranceIvan Magalhaes QUALIFIED
Octavia A ButtSpainIoni Bowcher NEW
Faith G GlickArgentinaOnyama Limba UNQUALIFIED
Claire H GarufiFranceAsiya Javayant PROPOSAL
Adams B SlusarskiFranceBernardo Dominic RENEWAL
Octavia G StockhamFranceOnyama Limba UNQUALIFIED
Aruna B MacleadArgentinaOnyama Limba NEW
James D MarrierItalyIoni Bowcher NEW
Murillo V NestleGermanyBernardo Dominic NEW
Murillo K MorascaAustraliaElwin Sharvill NEGOTIATION
Salvatore V RoysterUnited KingdomElwin Sharvill PROPOSAL
Cody T WaycottAustraliaAnna Fali NEGOTIATION
Rodrigues Q NestleSpainIoni Bowcher NEW
Antonio Z InouyeUnited KingdomAsiya Javayant PROPOSAL
Misaki Z GarufiUnited KingdomIvan Magalhaes PROPOSAL
Wickens I PerinFranceBernardo Dominic RENEWAL
Emily A ShinkoUnited KingdomElwin Sharvill QUALIFIED
James X ShinkoJapanOnyama Limba NEW
Aika Z InouyeFranceXuxue Feng QUALIFIED
Mayumi I WaycottSpainAnna Fali NEW
Juan E DarakjyJapanIvan Magalhaes PROPOSAL
Sinclair W MaletBrazilIvan Magalhaes UNQUALIFIED
Adams Y RutaCanadaIvan Magalhaes UNQUALIFIED
Cody C MaletItalyElwin Sharvill QUALIFIED
Murillo M FigeroaAustraliaBernardo Dominic NEGOTIATION
Smith N InouyeGermanyElwin Sharvill QUALIFIED
Francesco U BologniaCanadaOnyama Limba RENEWAL
Faith A DoeItalyAsiya Javayant QUALIFIED
Nicolas T MacleadArgentinaXuxue Feng RENEWAL
Johnson I AlbaresItalyAsiya Javayant RENEWAL
Jennifer N IturbideItalyIoni Bowcher RENEWAL
Silvio Y FigeroaArgentinaXuxue Feng RENEWAL
David V OldroydGermanyBernardo Dominic NEW
Morrow L OstroskySpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Kadeem B Slusarski
Kadeem B Caldarera
Rodrigues U Campain
Cody L Malet
Maria F Shinko
Arvin Y Butt
Aika Q Figeroa
Salvatore P Inouye
Darci S Glick
Jennifer M Amigon
Ricardo Y Whobrey
Aditya J Doe
Cody U Venere
Clifford N Shinko
Clifford G Garufi
Chavez W Nicka
Chavez A Maclead
David F Kolmetz
Julie M Gaucho
Jennifer H Poquette
Smith W Vocelka
Rodrigues D Chui
Francesco R Wieser
Leon D Chui
Deepesh U Kolmetz
Cody S Bolognia
Silvio V Nestle
Morrow G Bolognia
Ivar K Dilliard
Octavia J Bolognia
Chavez C Oldroyd
Aika P Malet
Ricardo S Tollner
Aika X Butt
Kadeem P Venere
Octavia O Nicka
Julie A Schemmer
Ashley N Whobrey
Mayumi I Flosi
Maisha K Amigon
Isabel X Vocelka
Munro J Rim
Izzy M Figeroa
Tony P Butt
Maisha U Chui
Francesco U Wieser
Deepesh H Waycott
Aruna I Oldroyd
Aditya W Wieser
Octavia X Iturbide
IdCountryDate
1000Australia2026-06-23
1001Italy2026-07-10
1002Germany2026-07-11
1003Japan2026-06-25
1004Italy2026-06-27
1005Germany2026-07-05
1006Japan2026-06-25
1007Australia2026-06-25
1008Italy2026-07-01
1009Italy2026-06-21
1010Canada2026-07-13
1011Italy2026-07-09
1012United Kingdom2026-06-25
1013Italy2026-06-29
1014Italy2026-07-06
1015United Kingdom2026-07-10
1016Brazil2026-07-13
1017Russia2026-07-11
1018Japan2026-07-15
1019India2026-07-13
1020United Kingdom2026-07-12
1021France2026-06-30
1022Russia2026-07-12
1023Australia2026-06-17
1024Russia2026-06-26
1025Germany2026-06-30
1026Russia2026-07-07
1027Australia2026-06-18
1028Spain2026-07-12
1029Italy2026-07-02
1030Spain2026-07-03
1031United Kingdom2026-07-02
1032Brazil2026-06-28
1033India2026-07-12
1034Russia2026-07-03
1035Canada2026-06-27
1036India2026-07-08
1037Brazil2026-07-07
1038Spain2026-07-02
1039Spain2026-07-13
1040Japan2026-07-02
1041Italy2026-06-29
1042Italy2026-06-30
1043Germany2026-06-18
1044Spain2026-07-10
1045Germany2026-07-05
1046Australia2026-06-18
1047Argentina2026-07-09
1048France2026-06-20
1049Argentina2026-07-11

On-Demand Data

NameIdCountryDate
Emily F Stockham1000Canada2026-07-12
Octavia N Whobrey1001Japan2026-07-08
Julie S Saylors1002Spain2026-07-09
Jones I Shinko1003Italy2026-06-29
Jeanfrancois Z Kolmetz1004Brazil2026-06-26
Kaitlin O Poquette1005France2026-07-15
Julie L Butt1006Japan2026-07-02
Ivar G Shinko1007Australia2026-07-04
Antonio R Inouye1008Spain2026-06-26
Izzy S Ferencz1009Italy2026-07-12
Mayumi J Poquette1010Brazil2026-07-10
Chavez V Tollner1011Argentina2026-06-22
Alejandro Y Albares1012Japan2026-07-05
Silvio J Vocelka1013Brazil2026-07-15
Nicolas V Ferencz1014Germany2026-07-14
Costa W Foller1015Russia2026-06-21
Sinclair E Butt1016Russia2026-07-05
Antonio M Doe1017Brazil2026-07-03
Mujtaba O Venere1018Argentina2026-06-23
Aditya Z Morasca1019France2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford P GauchoItalyIvan Magalhaes PROPOSAL
Jennifer U FlosiCanadaIoni Bowcher NEGOTIATION
Ashley R PoquetteArgentinaAnna Fali QUALIFIED
Chavez U TollnerArgentinaOnyama Limba NEW
Cody U CaldareraGermanyOnyama Limba NEGOTIATION
Octavia Z StensethUnited KingdomBernardo Dominic NEGOTIATION
Arvin W GlickItalyIvan Magalhaes QUALIFIED
Jennifer S RoysterGermanyElwin Sharvill QUALIFIED
Morrow A WhobreyUnited KingdomAmy Elsner NEGOTIATION
Faith Y MarrierSpainAnna Fali NEGOTIATION
Morrow E OstroskyArgentinaXuxue Feng PROPOSAL
Francesco U CampainAustraliaAsiya Javayant PROPOSAL
Maria E KolmetzCanadaAmy Elsner QUALIFIED
Aruna A KolmetzFranceAmy Elsner QUALIFIED
Clifford P DilliardRussiaIvan Magalhaes NEGOTIATION
Nicolas J MaletJapanOnyama Limba UNQUALIFIED
Aika I StockhamBrazilAsiya Javayant NEW
Claire X StensethGermanyBernardo Dominic QUALIFIED
Francesco X ShinkoItalyAnna Fali NEGOTIATION
Antonio A SaylorsFranceIvan Magalhaes QUALIFIED
Octavia R SlusarskiGermanyOnyama Limba PROPOSAL
Murillo P KuskoJapanIoni Bowcher RENEWAL
Mayumi B FerenczFranceIoni Bowcher QUALIFIED
Antonio C CampainAustraliaAsiya Javayant UNQUALIFIED
Mayumi C WhobreyJapanBernardo Dominic NEW
Silvio A MacleadBrazilXuxue Feng PROPOSAL
Salvatore C PerinArgentinaXuxue Feng UNQUALIFIED
Kaitlin X StockhamCanadaXuxue Feng QUALIFIED
Ivar S GarufiBrazilElwin Sharvill RENEWAL
Smith J FerenczBrazilAmy Elsner PROPOSAL
Costa O NickaItalyStephen Shaw QUALIFIED
Jennifer X RoysterFranceElwin Sharvill UNQUALIFIED
Greenwood G FollerGermanyAnna Fali PROPOSAL
Kaitlin Z DoeGermanyXuxue Feng NEW
Arvin U RutaRussiaAnna Fali UNQUALIFIED
Nicolas R DilliardJapanStephen Shaw UNQUALIFIED
Deepesh L IturbideRussiaIvan Magalhaes RENEWAL
Claire K FigeroaItalyAnna Fali NEGOTIATION
Ashley L AlbaresItalyStephen Shaw UNQUALIFIED
Julie R FigeroaArgentinaOnyama 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>