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
Ashley B StensethCanadaStephen Shaw NEW
Isabel Q RimItalyStephen Shaw PROPOSAL
Juan N NickaGermanyAmy Elsner NEW
Costa O IturbideFranceAnna Fali QUALIFIED
James S KolmetzJapanAnna Fali PROPOSAL
Costa T StockhamArgentinaOnyama Limba PROPOSAL
Rodrigues X GarufiArgentinaAnna Fali NEW
Mujtaba C NickaArgentinaIoni Bowcher PROPOSAL
Kadeem S BowleySpainIvan Magalhaes PROPOSAL
Ashley N FollerBrazilBernardo Dominic NEW
Stacey Q WieserAustraliaBernardo Dominic PROPOSAL
Stacey Z NestleUnited KingdomAsiya Javayant UNQUALIFIED
Leon S ChuiItalyIoni Bowcher NEW
Emily P SaylorsCanadaOnyama Limba UNQUALIFIED
Deepesh Z GauchoUnited KingdomAnna Fali UNQUALIFIED
Ashley F GauchoIndiaElwin Sharvill NEGOTIATION
Rodrigues M BriddickItalyXuxue Feng RENEWAL
Chavez R IturbideUnited KingdomOnyama Limba PROPOSAL
Jeanfrancois I SaylorsJapanIoni Bowcher PROPOSAL
Morrow K FollerCanadaIvan Magalhaes NEGOTIATION
Deepesh L OldroydAustraliaAnna Fali PROPOSAL
Morrow G DilliardAustraliaOnyama Limba NEW
Octavia G FlosiItalyAnna Fali QUALIFIED
Aditya Q ButtBrazilElwin Sharvill UNQUALIFIED
Antonio L VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Chavez Y KolmetzUnited KingdomAsiya Javayant NEW
Sinclair W StensethItalyBernardo Dominic RENEWAL
Jones R NickaFranceStephen Shaw NEW
Ricardo N DoeIndiaXuxue Feng QUALIFIED
Johnson F KuskoFranceOnyama Limba NEGOTIATION
David T FigeroaIndiaXuxue Feng PROPOSAL
Leja J RutaRussiaIvan Magalhaes NEGOTIATION
Ivar J AmigonIndiaOnyama Limba RENEWAL
James O MacleadArgentinaOnyama Limba QUALIFIED
Kaitlin T StensethRussiaStephen Shaw NEW
Maisha D BriddickItalyIoni Bowcher PROPOSAL
Murillo Y PoquetteIndiaAnna Fali NEW
Deepesh V WaycottIndiaAmy Elsner PROPOSAL
Kadeem H RimGermanyAsiya Javayant RENEWAL
Tony T OldroydItalyAsiya Javayant RENEWAL
Isabel S GarufiArgentinaIoni Bowcher NEW
Arvin V KuskoJapanAsiya Javayant UNQUALIFIED
Leja O CampainItalyXuxue Feng RENEWAL
Alejandro T GarufiItalyXuxue Feng QUALIFIED
Misaki M ShinkoIndiaOnyama Limba NEGOTIATION
Izzy Y GillianAustraliaIoni Bowcher PROPOSAL
Maria G StockhamCanadaBernardo Dominic NEGOTIATION
Alejandro P NickaUnited KingdomIoni Bowcher RENEWAL
Chavez I ButtCanadaOnyama Limba UNQUALIFIED
Cody T IturbideUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna T GarufiBrazilElwin Sharvill PROPOSAL
Stacey U NestleBrazilIvan Magalhaes NEGOTIATION
Francesco V IturbideAustraliaIvan Magalhaes NEGOTIATION
Faith K DarakjySpainIoni Bowcher RENEWAL
Morrow J GillianGermanyXuxue Feng QUALIFIED
Jeanfrancois P SchemmerItalyIoni Bowcher NEGOTIATION
Antonio H FigeroaItalyAnna Fali NEW
Munro M MarrierItalyIoni Bowcher UNQUALIFIED
Maisha L NestleItalyStephen Shaw UNQUALIFIED
Clifford K DarakjyJapanIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford F GauchoAustralia2026-08-14Printing Dimensions UNQUALIFIED26Bernardo Dominic
1001Kaitlin W BowleyJapan2026-08-16King, Christopher A Esq QUALIFIED56Onyama Limba
1002Maria J AmigonSpain2026-08-06Truhlar And Truhlar Attys QUALIFIED89Elwin Sharvill
1003Alejandro N GarufiIndia2026-07-27Buckley Miller Wright NEW17Xuxue Feng
1004Salvatore D AlbaresJapan2026-07-22Rangoni Of Florence NEGOTIATION21Amy Elsner
1005Claire M WieserAustralia2026-07-24Benton, John B Jr QUALIFIED43Elwin Sharvill
1006Mujtaba I StockhamBrazil2026-08-16Chanay, Jeffrey A Esq RENEWAL38Anna Fali
1007Ashley O CampainJapan2026-08-04Rangoni Of Florence UNQUALIFIED9Anna Fali
1008Kaitlin R NestleUnited Kingdom2026-07-28Feltz Printing Service RENEWAL2Xuxue Feng
1009Arvin U GauchoRussia2026-08-01Truhlar And Truhlar Attys RENEWAL67Anna Fali
1010Antonio T CaudyFrance2026-07-18Rangoni Of Florence NEW79Elwin Sharvill
1011Mayumi H SaylorsIndia2026-08-02Chapman, Ross E Esq RENEWAL48Anna Fali
1012Misaki V CampainAustralia2026-08-08Feiner Bros UNQUALIFIED36Xuxue Feng
1013Arvin T StockhamSpain2026-08-08King, Christopher A Esq UNQUALIFIED39Stephen Shaw
1014Nicolas O InouyeCanada2026-07-20Dorl, James J Esq RENEWAL38Asiya Javayant
1015Tony U SaylorsGermany2026-07-28Buckley Miller Wright QUALIFIED23Bernardo Dominic
1016James B AmigonIndia2026-07-29Printing Dimensions NEGOTIATION74Elwin Sharvill
1017Maisha L InouyeRussia2026-07-29Feiner Bros NEW61Onyama Limba
1018Kaitlin L ShinkoArgentina2026-08-02Printing Dimensions QUALIFIED0Stephen Shaw
1019Aditya L DoeBrazil2026-08-13Feiner Bros UNQUALIFIED23Elwin Sharvill
1020Juan A MorascaArgentina2026-07-19Truhlar And Truhlar Attys QUALIFIED98Amy Elsner
1021Tony H OstroskyIndia2026-07-21Rousseaux, Michael Esq RENEWAL35Onyama Limba
1022Cody Q BowleyJapan2026-07-22Benton, John B Jr RENEWAL32Ivan Magalhaes
1023Jefferson N StensethBrazil2026-07-30Benton, John B Jr QUALIFIED55Amy Elsner
1024Claire K BowleySpain2026-07-18Chanay, Jeffrey A Esq QUALIFIED36Ioni Bowcher
1025Stacey Y KuskoJapan2026-08-07Rangoni Of Florence UNQUALIFIED54Elwin Sharvill
1026Maisha N OldroydIndia2026-08-06Buckley Miller Wright NEW20Bernardo Dominic
1027Nicolas M SlusarskiBrazil2026-08-13Truhlar And Truhlar Attys NEGOTIATION29Asiya Javayant
1028Murillo Y NestleIndia2026-08-12Rousseaux, Michael Esq UNQUALIFIED68Elwin Sharvill
1029James Q AlbaresItaly2026-08-14Commercial Press RENEWAL19Amy Elsner
1030Octavia Q FlosiJapan2026-08-07Printing Dimensions RENEWAL96Stephen Shaw
1031Kadeem A WaycottCanada2026-08-12Chapman, Ross E Esq UNQUALIFIED27Ivan Magalhaes
1032Greenwood X PaprockiItaly2026-07-22Chapman, Ross E Esq NEGOTIATION16Stephen Shaw
1033Rodrigues Q MaletItaly2026-08-13Truhlar And Truhlar Attys NEGOTIATION47Elwin Sharvill
1034Costa X RoysterRussia2026-07-24Feiner Bros PROPOSAL14Stephen Shaw
1035Nicolas I AmigonGermany2026-08-14Chapman, Ross E Esq QUALIFIED44Onyama Limba
1036Greenwood M PerinBrazil2026-08-05King, Christopher A Esq UNQUALIFIED1Xuxue Feng
1037Aruna T ShinkoBrazil2026-07-20King, Christopher A Esq RENEWAL93Ioni Bowcher
1038Sinclair W FigeroaBrazil2026-07-23Buckley Miller Wright PROPOSAL33Ivan Magalhaes
1039Julie J GauchoCanada2026-07-29Chemel, James L Cpa RENEWAL61Onyama Limba
1040Munro I BologniaAustralia2026-07-22Chanay, Jeffrey A Esq RENEWAL78Onyama Limba
1041Rodrigues T NestleIndia2026-08-14King, Christopher A Esq PROPOSAL48Ioni Bowcher
1042Aruna Z RutaSpain2026-07-23Chapman, Ross E Esq NEW19Anna Fali
1043Stacey M CaudyBrazil2026-08-06Benton, John B Jr NEGOTIATION94Anna Fali
1044Silvio Q GauchoSpain2026-07-18Commercial Press UNQUALIFIED72Stephen Shaw
1045Jeanfrancois V MaletIndia2026-07-29Chemel, James L Cpa UNQUALIFIED74Amy Elsner
1046Aditya T SlusarskiGermany2026-08-16Chemel, James L Cpa PROPOSAL65Elwin Sharvill
1047Darci G FerenczUnited Kingdom2026-08-06Feltz Printing Service NEW50Onyama Limba
1048Ricardo A DarakjyAustralia2026-07-20Printing Dimensions NEW5Xuxue Feng
1049Jones S FigeroaAustralia2026-08-06Benton, John B Jr QUALIFIED79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Greenwood V DilliardRussiaOnyama Limba QUALIFIED
Ricardo K StensethUnited KingdomBernardo Dominic QUALIFIED
Costa X KuskoGermanyOnyama Limba PROPOSAL
Sinclair N GarufiBrazilXuxue Feng QUALIFIED
Kaitlin L BriddickSpainIoni Bowcher UNQUALIFIED
Wickens K NickaBrazilAsiya Javayant QUALIFIED
Arvin C CampainJapanBernardo Dominic PROPOSAL
Deepesh T RutaSpainOnyama Limba PROPOSAL
Wickens B RulapaughAustraliaAmy Elsner NEGOTIATION
Julie Q MaletFranceIvan Magalhaes NEGOTIATION
Jennifer L ButtArgentinaAmy Elsner RENEWAL
Leon K VocelkaGermanyBernardo Dominic QUALIFIED
Octavia B RulapaughAustraliaAmy Elsner RENEWAL
Deepesh L WaycottArgentinaElwin Sharvill RENEWAL
Leon R PoquetteItalyIvan Magalhaes NEGOTIATION
Murillo G TollnerUnited KingdomAmy Elsner NEGOTIATION
Clifford H DilliardSpainAnna Fali NEGOTIATION
Emily X AlbaresIndiaAmy Elsner UNQUALIFIED
Faith A StockhamSpainXuxue Feng NEW
Jones D NickaUnited KingdomAnna Fali QUALIFIED
Deepesh F WieserAustraliaAmy Elsner NEGOTIATION
Mujtaba X BowleyAustraliaXuxue Feng QUALIFIED
Deepesh I RimFranceXuxue Feng NEGOTIATION
Kadeem Z NestleArgentinaAnna Fali NEGOTIATION
Clifford S PoquetteUnited KingdomXuxue Feng PROPOSAL
Deepesh M OstroskyIndiaXuxue Feng PROPOSAL
Smith Q SlusarskiUnited KingdomAnna Fali QUALIFIED
Juan R MaletCanadaAnna Fali UNQUALIFIED
Jeanfrancois U MorascaBrazilBernardo Dominic NEW
Jones C PerinUnited KingdomXuxue Feng NEW
Greenwood O NickaItalyAmy Elsner NEGOTIATION
Munro F MarrierJapanAnna Fali RENEWAL
Aika I FollerFranceStephen Shaw RENEWAL
Jeanfrancois G StensethItalyIvan Magalhaes RENEWAL
Maisha E StensethJapanElwin Sharvill PROPOSAL
Ricardo R FlosiSpainAmy Elsner NEW
Jefferson A SchemmerRussiaOnyama Limba NEW
Costa P RimAustraliaStephen Shaw RENEWAL
Silvio L RulapaughGermanyAsiya Javayant RENEWAL
Adams K DoeCanadaElwin Sharvill UNQUALIFIED
Smith W BriddickItalyOnyama Limba NEW
Stacey G OstroskyGermanyAsiya Javayant RENEWAL
Arvin C BologniaJapanElwin Sharvill QUALIFIED
James W DarakjyIndiaXuxue Feng NEGOTIATION
Jones M KolmetzFranceIoni Bowcher RENEWAL
Juan X CampainIndiaIoni Bowcher UNQUALIFIED
Tony N PoquetteUnited KingdomOnyama Limba PROPOSAL
Arvin W OstroskyUnited KingdomBernardo Dominic NEW
Ashley E GarufiRussiaBernardo Dominic UNQUALIFIED
Leon D MorascaArgentinaAmy Elsner RENEWAL
Frozen Columns
Name
Alejandro N Stenseth
Octavia U Rulapaugh
Nicolas V Briddick
Salvatore J Gaucho
Deepesh M Royster
Aika W Nicka
Smith Q Foller
Misaki J Paprocki
Leja I Caldarera
Kaitlin R Bowley
Misaki U Whobrey
Greenwood K Bolognia
Claire T Venere
Arvin X Doe
Rodrigues D Ferencz
Morrow J Bolognia
Kaitlin S Doe
Cody I Flosi
Jefferson H Malet
Darci I Nicka
Arvin X Malet
Munro F Kusko
Clifford Z Perin
Silvio B Rulapaugh
Aditya K Vocelka
Julie I Wieser
Silvio N Kolmetz
Leja Z Ruta
Emily X Poquette
Deepesh T Gillian
Ivar H Stockham
Julie R Ostrosky
Darci U Gaucho
Clifford O Caudy
Alejandro Z Venere
Smith B Inouye
Salvatore P Royster
Jeanfrancois I Ruta
Claire L Caldarera
Antonio W Tollner
Izzy C Gaucho
Adams Z Tollner
Silvio I Malet
Leon D Bolognia
Adams J Stenseth
Antonio F Gillian
Mayumi B Doe
Sinclair V Tollner
Greenwood E Garufi
Faith G Poquette
IdCountryDate
1000Australia2026-08-01
1001Japan2026-08-04
1002France2026-07-20
1003Germany2026-08-08
1004Italy2026-08-08
1005Italy2026-07-18
1006Spain2026-07-22
1007France2026-08-15
1008United Kingdom2026-08-11
1009Spain2026-07-21
1010India2026-07-31
1011India2026-07-18
1012Argentina2026-08-13
1013India2026-08-12
1014France2026-07-31
1015France2026-07-23
1016Argentina2026-08-02
1017India2026-08-13
1018Japan2026-07-24
1019Canada2026-07-30
1020India2026-08-15
1021Spain2026-07-19
1022Russia2026-07-20
1023Brazil2026-08-13
1024Japan2026-08-08
1025Russia2026-08-04
1026United Kingdom2026-07-19
1027Russia2026-07-26
1028Brazil2026-08-05
1029India2026-07-29
1030India2026-07-26
1031Japan2026-08-01
1032United Kingdom2026-08-05
1033United Kingdom2026-07-26
1034United Kingdom2026-07-30
1035Brazil2026-07-22
1036India2026-08-16
1037Spain2026-08-05
1038France2026-07-23
1039France2026-08-14
1040Brazil2026-07-28
1041Argentina2026-08-13
1042Spain2026-08-12
1043Argentina2026-08-11
1044Germany2026-07-20
1045Brazil2026-08-13
1046Brazil2026-08-10
1047Argentina2026-08-01
1048United Kingdom2026-07-29
1049Canada2026-08-10

On-Demand Data

NameIdCountryDate
Cody O Kolmetz1000Canada2026-08-13
Claire F Sergi1001Australia2026-07-22
Jefferson P Royster1002Japan2026-08-16
Octavia K Inouye1003Brazil2026-07-22
Emily L Caldarera1004France2026-08-01
Mayumi W Ruta1005Russia2026-07-18
Smith X Darakjy1006France2026-08-05
Tony I Foller1007Germany2026-07-21
Salvatore Z Tollner1008Italy2026-07-24
Nicolas D Doe1009Italy2026-08-16
Misaki M Dilliard1010Australia2026-08-09
David R Albares1011France2026-08-06
Jones H Caudy1012Canada2026-08-09
Isabel R Poquette1013Japan2026-07-21
Tony Y Bowley1014Spain2026-07-21
Jones G Albares1015India2026-08-10
Francesco G Maclead1016Japan2026-07-19
Misaki Z Waycott1017United Kingdom2026-08-03
Nicolas T Sergi1018Russia2026-07-23
Stacey N Foller1019India2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois W TollnerUnited KingdomAnna Fali QUALIFIED
Deepesh L GillianRussiaElwin Sharvill NEW
Nicolas A StockhamUnited KingdomAnna Fali RENEWAL
Misaki Z AmigonSpainElwin Sharvill QUALIFIED
Arvin J ChuiGermanyAsiya Javayant PROPOSAL
Mayumi X RulapaughArgentinaAsiya Javayant RENEWAL
Jeanfrancois Q MaletGermanyBernardo Dominic UNQUALIFIED
Francesco T DarakjyCanadaStephen Shaw NEGOTIATION
Maria O AmigonIndiaIvan Magalhaes QUALIFIED
Mayumi Q OldroydAustraliaXuxue Feng QUALIFIED
Juan Z KuskoRussiaIvan Magalhaes RENEWAL
Aditya P SaylorsSpainAsiya Javayant NEW
Jones Y BowleyAustraliaXuxue Feng PROPOSAL
Nicolas C DarakjyCanadaIvan Magalhaes NEW
Francesco F ButtJapanIvan Magalhaes NEGOTIATION
Ashley Z MorascaFranceStephen Shaw UNQUALIFIED
Juan D KolmetzBrazilAsiya Javayant NEGOTIATION
Arvin M SergiArgentinaXuxue Feng RENEWAL
Maisha R GarufiFranceIoni Bowcher QUALIFIED
Kadeem G WieserIndiaAsiya Javayant QUALIFIED
Darci A BologniaArgentinaOnyama Limba QUALIFIED
Kadeem O KuskoSpainElwin Sharvill PROPOSAL
Silvio Q ButtCanadaIvan Magalhaes NEW
Antonio S RoysterItalyAmy Elsner RENEWAL
Johnson E MorascaJapanAnna Fali NEGOTIATION
Chavez H AmigonCanadaOnyama Limba QUALIFIED
Julie Z NickaItalyAnna Fali RENEWAL
Faith O RutaCanadaIvan Magalhaes NEGOTIATION
Wickens A ChuiFranceElwin Sharvill QUALIFIED
Deepesh V WieserSpainXuxue Feng NEW
Deepesh R MaletJapanBernardo Dominic UNQUALIFIED
Costa S RutaJapanAnna Fali QUALIFIED
Darci S FlosiUnited KingdomIoni Bowcher QUALIFIED
Murillo D DoeItalyXuxue Feng UNQUALIFIED
Aruna B StockhamIndiaBernardo Dominic RENEWAL
Greenwood D NickaGermanyIoni Bowcher QUALIFIED
Deepesh O NickaArgentinaIoni Bowcher UNQUALIFIED
Aditya U RulapaughSpainIvan Magalhaes NEW
Jeanfrancois T RimCanadaElwin Sharvill PROPOSAL
Aika H TollnerAustraliaAsiya Javayant 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>