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 X StensethCanadaIvan Magalhaes NEGOTIATION
Mayumi O FlosiSpainXuxue Feng RENEWAL
Johnson G AlbaresUnited KingdomAnna Fali RENEWAL
Leon D CaudyAustraliaAsiya Javayant NEW
Jefferson O FerenczBrazilIvan Magalhaes NEW
Greenwood M StockhamIndiaIoni Bowcher QUALIFIED
Ricardo F SchemmerArgentinaBernardo Dominic QUALIFIED
Deepesh Q MacleadItalyAnna Fali NEGOTIATION
Ashley B KuskoSpainBernardo Dominic PROPOSAL
Stacey Q KolmetzFranceBernardo Dominic UNQUALIFIED
Jones Q MaletRussiaAsiya Javayant RENEWAL
Salvatore T PerinCanadaElwin Sharvill PROPOSAL
Arvin R MarrierItalyBernardo Dominic PROPOSAL
Deepesh K StensethCanadaXuxue Feng NEW
David R CaudyUnited KingdomAsiya Javayant PROPOSAL
Clifford L TollnerUnited KingdomIoni Bowcher NEGOTIATION
Leon Z SergiItalyElwin Sharvill UNQUALIFIED
Arvin S SlusarskiFranceIvan Magalhaes NEW
Kadeem K SlusarskiItalyAsiya Javayant NEW
Jennifer Y SlusarskiArgentinaAmy Elsner QUALIFIED
Isabel B KolmetzBrazilOnyama Limba NEW
Jennifer H PoquetteIndiaStephen Shaw UNQUALIFIED
Rodrigues M MaletIndiaXuxue Feng NEW
Emily J StockhamIndiaXuxue Feng UNQUALIFIED
Cody G PaprockiArgentinaBernardo Dominic UNQUALIFIED
Mayumi W CaldareraSpainOnyama Limba UNQUALIFIED
Clifford T VenereCanadaIoni Bowcher RENEWAL
Octavia I MarrierItalyAnna Fali NEW
Chavez R GlickFranceAsiya Javayant PROPOSAL
Wickens R GlickGermanyAnna Fali UNQUALIFIED
Ashley B StockhamFranceBernardo Dominic RENEWAL
Mayumi H SergiIndiaIoni Bowcher NEW
Costa G StensethCanadaAmy Elsner UNQUALIFIED
Arvin O ShinkoRussiaElwin Sharvill RENEWAL
Stacey O SaylorsGermanyIoni Bowcher UNQUALIFIED
Johnson A FigeroaCanadaAmy Elsner NEGOTIATION
Francesco E FlosiUnited KingdomStephen Shaw RENEWAL
Nicolas S DilliardBrazilBernardo Dominic NEW
Darci V CaldareraRussiaIoni Bowcher QUALIFIED
David G NestleIndiaAnna Fali RENEWAL
Misaki V RimFranceAsiya Javayant PROPOSAL
Morrow I IturbideAustraliaStephen Shaw UNQUALIFIED
Ashley P AmigonRussiaBernardo Dominic QUALIFIED
Tony B ButtSpainAsiya Javayant RENEWAL
Jeanfrancois L MacleadRussiaAnna Fali PROPOSAL
Kaitlin X FlosiItalyElwin Sharvill QUALIFIED
Jefferson T FigeroaSpainAmy Elsner RENEWAL
Costa L MorascaRussiaAnna Fali PROPOSAL
Mayumi Z GauchoBrazilElwin Sharvill NEGOTIATION
Mayumi L VenereIndiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja D OstroskyFranceIvan Magalhaes QUALIFIED
Aditya Q WieserGermanyAmy Elsner RENEWAL
Tony O FigeroaRussiaIvan Magalhaes QUALIFIED
Rodrigues T DarakjyArgentinaAmy Elsner NEW
Morrow H BriddickBrazilStephen Shaw UNQUALIFIED
Cody Q GarufiUnited KingdomBernardo Dominic PROPOSAL
Cody X GarufiFranceAnna Fali RENEWAL
Darci A GlickRussiaAnna Fali QUALIFIED
James R TollnerSpainAnna Fali NEGOTIATION
Salvatore E InouyeItalyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro D KuskoUnited Kingdom2026-07-28Truhlar And Truhlar Attys UNQUALIFIED0Amy Elsner
1001Chavez X WaycottRussia2026-07-29Rangoni Of Florence NEW78Xuxue Feng
1002Silvio T RulapaughCanada2026-08-20Feiner Bros PROPOSAL18Xuxue Feng
1003Francesco S MorascaArgentina2026-08-21Rangoni Of Florence QUALIFIED43Stephen Shaw
1004Sinclair A MacleadGermany2026-08-23Chanay, Jeffrey A Esq NEGOTIATION12Bernardo Dominic
1005Murillo C GlickIndia2026-08-02Chapman, Ross E Esq UNQUALIFIED64Xuxue Feng
1006Octavia Y WaycottItaly2026-07-31Morlong Associates RENEWAL49Elwin Sharvill
1007Claire G ChuiUnited Kingdom2026-08-03Feltz Printing Service NEW45Ivan Magalhaes
1008Julie S VocelkaCanada2026-07-28Dorl, James J Esq NEGOTIATION64Anna Fali
1009Antonio U ButtItaly2026-08-19Chanay, Jeffrey A Esq QUALIFIED84Ioni Bowcher
1010Murillo F SlusarskiAustralia2026-08-02Dorl, James J Esq RENEWAL90Ivan Magalhaes
1011Francesco J IturbideJapan2026-08-09Rangoni Of Florence UNQUALIFIED49Bernardo Dominic
1012Leja Q SlusarskiGermany2026-08-09Benton, John B Jr NEW74Amy Elsner
1013Munro C WieserAustralia2026-08-25Feltz Printing Service NEW7Ivan Magalhaes
1014Aditya R KuskoSpain2026-08-01Rangoni Of Florence QUALIFIED56Bernardo Dominic
1015Chavez P MaletFrance2026-08-09Commercial Press PROPOSAL40Amy Elsner
1016Kadeem D BriddickArgentina2026-08-08Benton, John B Jr NEGOTIATION69Ioni Bowcher
1017Octavia W WieserFrance2026-08-21Feltz Printing Service NEGOTIATION58Onyama Limba
1018Aika X MarrierUnited Kingdom2026-08-20Feiner Bros PROPOSAL94Anna Fali
1019Clifford Q WhobreyRussia2026-08-22Printing Dimensions QUALIFIED54Stephen Shaw
1020Darci I NestleAustralia2026-08-19Chapman, Ross E Esq QUALIFIED71Anna Fali
1021Rodrigues Q FlosiSpain2026-07-30Rangoni Of Florence PROPOSAL2Elwin Sharvill
1022Sinclair J WaycottCanada2026-08-03Chanay, Jeffrey A Esq RENEWAL14Anna Fali
1023Munro I VenereGermany2026-08-05Buckley Miller Wright UNQUALIFIED37Bernardo Dominic
1024Kaitlin Z ChuiRussia2026-08-15Benton, John B Jr RENEWAL46Ioni Bowcher
1025Octavia K CampainSpain2026-07-28Rousseaux, Michael Esq RENEWAL25Xuxue Feng
1026Greenwood N RoysterGermany2026-08-03Dorl, James J Esq UNQUALIFIED66Xuxue Feng
1027Murillo H DoeFrance2026-08-01Feiner Bros RENEWAL66Stephen Shaw
1028Munro N CaldareraRussia2026-08-23King, Christopher A Esq PROPOSAL99Onyama Limba
1029Tony P GarufiAustralia2026-07-31Chapman, Ross E Esq QUALIFIED23Stephen Shaw
1030Antonio S WieserRussia2026-08-01King, Christopher A Esq PROPOSAL62Stephen Shaw
1031Sinclair O CampainAustralia2026-08-10Morlong Associates PROPOSAL13Stephen Shaw
1032Maria D AlbaresSpain2026-08-16Commercial Press QUALIFIED3Ioni Bowcher
1033Murillo O AmigonJapan2026-08-01Truhlar And Truhlar Attys QUALIFIED73Ioni Bowcher
1034Murillo H CampainIndia2026-08-03King, Christopher A Esq NEW52Bernardo Dominic
1035Deepesh T GillianBrazil2026-08-13Buckley Miller Wright QUALIFIED77Elwin Sharvill
1036Octavia Y GlickCanada2026-08-23Commercial Press UNQUALIFIED87Stephen Shaw
1037Johnson D RulapaughArgentina2026-08-23Buckley Miller Wright UNQUALIFIED34Bernardo Dominic
1038Silvio J SchemmerGermany2026-08-23King, Christopher A Esq NEGOTIATION11Onyama Limba
1039Isabel A MaletAustralia2026-08-08Chanay, Jeffrey A Esq QUALIFIED52Asiya Javayant
1040Ashley D StockhamArgentina2026-08-12King, Christopher A Esq NEW44Amy Elsner
1041Kaitlin E VocelkaArgentina2026-08-10Chapman, Ross E Esq NEGOTIATION94Bernardo Dominic
1042Salvatore L PerinFrance2026-08-23Commercial Press NEGOTIATION83Anna Fali
1043Antonio N SchemmerIndia2026-07-30Rousseaux, Michael Esq QUALIFIED35Bernardo Dominic
1044Leja Q FlosiItaly2026-08-01Rousseaux, Michael Esq PROPOSAL31Xuxue Feng
1045Johnson A IturbideBrazil2026-08-20Commercial Press RENEWAL28Asiya Javayant
1046Adams T SchemmerJapan2026-08-19Chapman, Ross E Esq NEW33Xuxue Feng
1047Jeanfrancois E GarufiJapan2026-08-06Morlong Associates RENEWAL89Ioni Bowcher
1048Adams A FigeroaUnited Kingdom2026-08-12Commercial Press RENEWAL41Stephen Shaw
1049Mujtaba O StockhamItaly2026-08-20Feiner Bros UNQUALIFIED74Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley H ButtGermanyAnna Fali NEGOTIATION
Maria E OstroskyRussiaOnyama Limba NEW
Francesco Z DarakjyArgentinaBernardo Dominic NEW
Arvin V GarufiGermanyOnyama Limba QUALIFIED
Adams R BriddickArgentinaIvan Magalhaes RENEWAL
Tony F MaletRussiaStephen Shaw NEGOTIATION
Emily W SchemmerItalyIoni Bowcher PROPOSAL
Chavez N InouyeJapanIoni Bowcher UNQUALIFIED
Mujtaba Z GarufiFranceXuxue Feng UNQUALIFIED
Silvio Q IturbideRussiaIoni Bowcher NEGOTIATION
Leja P GlickJapanAnna Fali NEGOTIATION
Munro D KolmetzIndiaAsiya Javayant QUALIFIED
Salvatore J FerenczBrazilIoni Bowcher NEW
Costa F WieserIndiaAmy Elsner NEW
Stacey S GillianBrazilAmy Elsner PROPOSAL
Silvio Q CaldareraBrazilOnyama Limba NEW
Darci Q MaletFranceIvan Magalhaes NEGOTIATION
Silvio N ShinkoRussiaOnyama Limba NEGOTIATION
Maria I MaletAustraliaAsiya Javayant NEW
Chavez O InouyeSpainIoni Bowcher NEGOTIATION
David P MacleadFranceBernardo Dominic UNQUALIFIED
Ivar J OldroydItalyOnyama Limba NEW
James G FigeroaCanadaAmy Elsner QUALIFIED
Antonio K NestleAustraliaIvan Magalhaes PROPOSAL
Stacey S WhobreyIndiaAmy Elsner NEW
Kaitlin I NickaJapanXuxue Feng PROPOSAL
Johnson X MaletJapanAsiya Javayant NEGOTIATION
Julie Z ChuiItalyIvan Magalhaes PROPOSAL
Clifford G AmigonRussiaStephen Shaw UNQUALIFIED
Leon Y FerenczCanadaElwin Sharvill RENEWAL
Adams K PaprockiJapanIvan Magalhaes NEW
Kadeem O IturbideAustraliaIoni Bowcher NEW
Stacey J AmigonIndiaIvan Magalhaes QUALIFIED
Sinclair R WhobreyFranceBernardo Dominic QUALIFIED
Wickens E RimCanadaAsiya Javayant QUALIFIED
Mayumi R WhobreyRussiaIvan Magalhaes UNQUALIFIED
Costa C AlbaresJapanBernardo Dominic NEGOTIATION
Arvin Q NestleGermanyOnyama Limba UNQUALIFIED
Julie U FigeroaFranceStephen Shaw NEW
Salvatore N PerinAustraliaElwin Sharvill UNQUALIFIED
Sinclair N StockhamRussiaBernardo Dominic NEGOTIATION
Izzy P InouyeItalyAmy Elsner NEW
Francesco S GlickIndiaAmy Elsner RENEWAL
Greenwood W DilliardArgentinaAnna Fali NEW
Arvin I VocelkaJapanElwin Sharvill QUALIFIED
Antonio V OstroskyGermanyIoni Bowcher RENEWAL
Faith V WieserCanadaOnyama Limba NEGOTIATION
Tony D StensethArgentinaIvan Magalhaes NEW
Aruna G VocelkaSpainAnna Fali NEGOTIATION
Misaki C DarakjyBrazilAmy Elsner PROPOSAL
Frozen Columns
Name
Tony Q Malet
Costa H Schemmer
Juan N Malet
Ricardo R Bowley
Kaitlin D Schemmer
Ivar G Briddick
Aditya Z Inouye
Jennifer B Caudy
Maisha F Malet
Jennifer F Inouye
Octavia U Inouye
Octavia J Stockham
Emily A Gaucho
Misaki J Iturbide
Cody P Vocelka
Isabel Z Royster
Mujtaba Y Poquette
Mujtaba T Dilliard
Deepesh V Bolognia
Leon T Ostrosky
Aika X Shinko
Juan Z Whobrey
Sinclair X Paprocki
Mayumi Y Rim
Mayumi N Bolognia
Morrow Z Slusarski
Deepesh T Briddick
Arvin Y Schemmer
Aditya O Morasca
Isabel V Campain
Francesco Y Venere
Leon A Schemmer
Wickens X Flosi
Adams F Doe
Maisha M Schemmer
Cody P Ostrosky
Darci L Whobrey
Izzy N Stenseth
Rodrigues N Albares
Darci P Paprocki
Jeanfrancois F Figeroa
Ashley D Oldroyd
Jennifer S Nicka
Morrow F Marrier
Morrow Z Rulapaugh
James L Amigon
Claire W Malet
Leja A Dilliard
Emily Y Oldroyd
Jones O Paprocki
IdCountryDate
1000Australia2026-07-30
1001Australia2026-08-13
1002Brazil2026-08-14
1003Germany2026-07-28
1004United Kingdom2026-08-25
1005France2026-08-23
1006Argentina2026-08-05
1007Australia2026-08-07
1008Germany2026-07-28
1009Spain2026-08-07
1010France2026-08-11
1011Germany2026-08-06
1012Australia2026-08-21
1013France2026-08-11
1014Russia2026-08-20
1015United Kingdom2026-08-18
1016Italy2026-08-04
1017Japan2026-08-12
1018Argentina2026-07-28
1019Canada2026-08-22
1020Germany2026-08-18
1021Russia2026-08-24
1022France2026-08-07
1023United Kingdom2026-08-24
1024United Kingdom2026-08-01
1025Argentina2026-08-17
1026Germany2026-08-04
1027Canada2026-08-22
1028Japan2026-08-07
1029Spain2026-08-03
1030Australia2026-08-14
1031Germany2026-08-02
1032Australia2026-08-26
1033Argentina2026-08-06
1034Russia2026-08-08
1035Argentina2026-08-07
1036United Kingdom2026-08-19
1037Canada2026-08-18
1038Japan2026-08-03
1039Germany2026-08-22
1040Russia2026-07-31
1041Russia2026-08-20
1042United Kingdom2026-07-31
1043France2026-07-31
1044Brazil2026-07-28
1045Italy2026-08-20
1046India2026-08-12
1047Argentina2026-08-19
1048Italy2026-08-14
1049Australia2026-08-09

On-Demand Data

NameIdCountryDate
Stacey X Bowley1000India2026-07-28
Juan C Morasca1001Russia2026-08-16
Aditya M Doe1002Brazil2026-08-04
Maria R Whobrey1003India2026-08-14
Mayumi V Rim1004India2026-08-17
James Y Doe1005Japan2026-08-13
Rodrigues G Gaucho1006Brazil2026-08-22
Silvio S Royster1007Italy2026-08-13
Rodrigues E Schemmer1008France2026-07-30
Clifford P Amigon1009Canada2026-08-09
Tony R Slusarski1010France2026-08-07
Morrow Y Schemmer1011United Kingdom2026-08-12
Kadeem M Sergi1012Argentina2026-08-21
Faith D Gaucho1013France2026-08-15
Nicolas L Briddick1014India2026-07-29
Rodrigues E Garufi1015India2026-08-18
Faith N Inouye1016United Kingdom2026-08-01
Claire V Flosi1017Brazil2026-08-08
Faith U Paprocki1018India2026-07-31
Smith T Nicka1019Russia2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James W KolmetzAustraliaStephen Shaw PROPOSAL
Jefferson R SchemmerFranceIoni Bowcher NEW
Juan V WhobreyFranceAnna Fali RENEWAL
Munro H BologniaFranceOnyama Limba NEW
Morrow F WaycottIndiaOnyama Limba NEW
Smith M IturbideBrazilBernardo Dominic QUALIFIED
Tony L WhobreyBrazilBernardo Dominic PROPOSAL
Aruna G NickaGermanyIvan Magalhaes QUALIFIED
Antonio P FerenczRussiaStephen Shaw PROPOSAL
Ivar N MacleadItalyAsiya Javayant QUALIFIED
Julie N BriddickJapanIvan Magalhaes UNQUALIFIED
Cody H DilliardIndiaIoni Bowcher QUALIFIED
Aditya H CampainUnited KingdomIvan Magalhaes NEGOTIATION
Misaki K StockhamUnited KingdomBernardo Dominic PROPOSAL
Jefferson R RutaIndiaIvan Magalhaes NEGOTIATION
Nicolas J KolmetzArgentinaBernardo Dominic NEGOTIATION
Costa U BriddickIndiaXuxue Feng RENEWAL
Juan K DarakjyGermanyIvan Magalhaes PROPOSAL
Morrow D KolmetzBrazilElwin Sharvill PROPOSAL
Leja R TollnerBrazilBernardo Dominic NEGOTIATION
Tony S StensethArgentinaIvan Magalhaes RENEWAL
Darci E TollnerGermanyAsiya Javayant UNQUALIFIED
Smith S FigeroaCanadaAmy Elsner QUALIFIED
Kaitlin O VenereBrazilAsiya Javayant NEGOTIATION
Claire G RimArgentinaBernardo Dominic RENEWAL
Murillo G VocelkaCanadaAnna Fali UNQUALIFIED
Chavez R GarufiIndiaAmy Elsner UNQUALIFIED
Misaki D CaudyJapanAmy Elsner PROPOSAL
Johnson G GlickCanadaAsiya Javayant PROPOSAL
Costa N VocelkaSpainAmy Elsner RENEWAL
Maria O OstroskyIndiaBernardo Dominic UNQUALIFIED
Silvio N WaycottArgentinaElwin Sharvill RENEWAL
Greenwood U FlosiAustraliaAmy Elsner UNQUALIFIED
Juan V NestleArgentinaElwin Sharvill QUALIFIED
Faith Y MaletArgentinaIvan Magalhaes RENEWAL
Chavez L MarrierAustraliaAmy Elsner NEGOTIATION
Kaitlin D PoquetteRussiaBernardo Dominic NEGOTIATION
Emily G FlosiItalyAmy Elsner NEGOTIATION
Jennifer W AmigonGermanyStephen Shaw RENEWAL
Silvio N SergiFranceAmy Elsner 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>