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
Aruna M MaletAustraliaAsiya Javayant NEW
Jeanfrancois V GlickGermanyAsiya Javayant NEW
Emily Y StockhamGermanyBernardo Dominic NEW
Ashley Y InouyeItalyAnna Fali NEW
Octavia T BriddickIndiaIoni Bowcher UNQUALIFIED
Arvin C FerenczCanadaStephen Shaw NEW
Ashley I SergiRussiaBernardo Dominic QUALIFIED
Maisha A IturbideRussiaBernardo Dominic UNQUALIFIED
Salvatore L WaycottRussiaBernardo Dominic QUALIFIED
Octavia R GauchoGermanyElwin Sharvill NEGOTIATION
Jefferson O MacleadCanadaBernardo Dominic NEW
Murillo F KuskoFranceAmy Elsner QUALIFIED
Costa I PoquetteUnited KingdomStephen Shaw NEW
Francesco O AlbaresGermanyBernardo Dominic RENEWAL
Mayumi Q ButtGermanyElwin Sharvill NEW
Claire V FlosiFranceBernardo Dominic UNQUALIFIED
Deepesh Q ChuiArgentinaElwin Sharvill UNQUALIFIED
Murillo P FigeroaJapanAnna Fali NEGOTIATION
Aditya U KolmetzFranceAmy Elsner RENEWAL
Izzy V PoquetteSpainIoni Bowcher RENEWAL
Jeanfrancois W MorascaIndiaOnyama Limba RENEWAL
Aditya A RutaFranceAmy Elsner QUALIFIED
Adams W DarakjyUnited KingdomXuxue Feng RENEWAL
Adams C AlbaresItalyIoni Bowcher PROPOSAL
Alejandro O BologniaAustraliaAnna Fali NEGOTIATION
Chavez V FlosiBrazilBernardo Dominic NEW
Clifford X ButtCanadaAmy Elsner RENEWAL
Ricardo U GlickItalyElwin Sharvill PROPOSAL
Claire V StockhamCanadaBernardo Dominic UNQUALIFIED
Jefferson X MaletCanadaAnna Fali UNQUALIFIED
Costa V MaletIndiaBernardo Dominic QUALIFIED
Kaitlin D NickaArgentinaAnna Fali UNQUALIFIED
Misaki Z ChuiBrazilAsiya Javayant RENEWAL
Julie P PoquetteRussiaAnna Fali UNQUALIFIED
Maisha V InouyeBrazilAsiya Javayant NEGOTIATION
Sinclair F FerenczUnited KingdomAmy Elsner PROPOSAL
Smith M IturbideGermanyOnyama Limba QUALIFIED
Misaki T GlickSpainStephen Shaw NEW
Ashley N VocelkaIndiaIvan Magalhaes PROPOSAL
Francesco Y InouyeAustraliaXuxue Feng UNQUALIFIED
Antonio C BowleyCanadaOnyama Limba UNQUALIFIED
Misaki V PaprockiRussiaXuxue Feng NEW
Clifford V DilliardGermanyXuxue Feng RENEWAL
Munro M ChuiArgentinaXuxue Feng NEW
Wickens B NestleArgentinaElwin Sharvill NEGOTIATION
Darci P MaletRussiaIvan Magalhaes UNQUALIFIED
Costa H RutaGermanyBernardo Dominic PROPOSAL
David M AlbaresFranceBernardo Dominic NEGOTIATION
Smith X RoysterJapanStephen Shaw PROPOSAL
Mujtaba B CampainFranceBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson S KuskoUnited KingdomIvan Magalhaes QUALIFIED
Maisha M AmigonArgentinaBernardo Dominic NEGOTIATION
Maria Q DarakjyRussiaAmy Elsner PROPOSAL
Ivar G BologniaGermanyAnna Fali RENEWAL
Adams L KolmetzCanadaAsiya Javayant NEW
Leon Q RimItalyOnyama Limba NEW
Murillo A FigeroaJapanIvan Magalhaes RENEWAL
Antonio Y RulapaughItalyXuxue Feng UNQUALIFIED
Antonio E GauchoIndiaStephen Shaw NEW
Sinclair L SergiItalyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo A CaldareraFrance2026-08-22Printing Dimensions QUALIFIED29Onyama Limba
1001Darci I WhobreySpain2026-08-10Printing Dimensions QUALIFIED27Bernardo Dominic
1002Silvio I OldroydJapan2026-08-05Truhlar And Truhlar Attys NEGOTIATION71Bernardo Dominic
1003Claire L BriddickCanada2026-08-09Dorl, James J Esq QUALIFIED26Xuxue Feng
1004Kadeem L WhobreySpain2026-08-17Chemel, James L Cpa QUALIFIED83Amy Elsner
1005Ivar P TollnerAustralia2026-08-31Chanay, Jeffrey A Esq RENEWAL87Onyama Limba
1006Wickens O FollerAustralia2026-08-18King, Christopher A Esq RENEWAL94Anna Fali
1007Octavia T SlusarskiSpain2026-08-17Buckley Miller Wright NEW62Anna Fali
1008Emily K SchemmerCanada2026-08-13Chanay, Jeffrey A Esq NEGOTIATION19Stephen Shaw
1009Rodrigues N CampainUnited Kingdom2026-08-15Rousseaux, Michael Esq QUALIFIED87Onyama Limba
1010Murillo N KolmetzItaly2026-08-31Benton, John B Jr NEGOTIATION13Amy Elsner
1011Rodrigues A MaletGermany2026-08-23Chanay, Jeffrey A Esq QUALIFIED51Stephen Shaw
1012Aditya K PerinAustralia2026-08-07Chapman, Ross E Esq PROPOSAL39Ioni Bowcher
1013Juan C KuskoAustralia2026-08-22Morlong Associates NEGOTIATION65Xuxue Feng
1014Aika J ChuiUnited Kingdom2026-09-01Buckley Miller Wright NEGOTIATION32Anna Fali
1015Smith M CaldareraArgentina2026-08-13King, Christopher A Esq RENEWAL98Asiya Javayant
1016Jones W StockhamItaly2026-08-05Commercial Press PROPOSAL84Amy Elsner
1017Jeanfrancois M OldroydSpain2026-08-07Chemel, James L Cpa RENEWAL83Anna Fali
1018Maisha K GlickSpain2026-08-22Dorl, James J Esq NEW40Ivan Magalhaes
1019Jeanfrancois J ButtAustralia2026-08-03Printing Dimensions NEGOTIATION46Ioni Bowcher
1020Ivar G OstroskyBrazil2026-08-24King, Christopher A Esq RENEWAL11Stephen Shaw
1021David O SchemmerFrance2026-08-17Dorl, James J Esq UNQUALIFIED35Ioni Bowcher
1022Clifford A FerenczGermany2026-08-07Morlong Associates UNQUALIFIED76Ivan Magalhaes
1023Jennifer P ChuiFrance2026-09-01Rangoni Of Florence RENEWAL81Ioni Bowcher
1024Deepesh I OldroydItaly2026-09-01Feltz Printing Service RENEWAL89Ivan Magalhaes
1025Smith V PaprockiCanada2026-08-24Chanay, Jeffrey A Esq RENEWAL23Bernardo Dominic
1026Misaki Q TollnerArgentina2026-08-05Rousseaux, Michael Esq NEGOTIATION54Xuxue Feng
1027Ivar F CaldareraAustralia2026-08-23Buckley Miller Wright QUALIFIED67Amy Elsner
1028Chavez W RoysterUnited Kingdom2026-08-09Rangoni Of Florence QUALIFIED76Ivan Magalhaes
1029Greenwood B FerenczItaly2026-08-19Feiner Bros QUALIFIED5Asiya Javayant
1030Kadeem A ButtGermany2026-08-19Benton, John B Jr PROPOSAL18Stephen Shaw
1031Juan G AlbaresAustralia2026-08-12Feltz Printing Service PROPOSAL76Ioni Bowcher
1032Ricardo N CaldareraFrance2026-08-13Chapman, Ross E Esq NEGOTIATION33Anna Fali
1033Munro A CaudyItaly2026-08-16Buckley Miller Wright PROPOSAL42Ivan Magalhaes
1034Leon O PerinItaly2026-08-11Chanay, Jeffrey A Esq NEW70Anna Fali
1035Emily O SergiJapan2026-08-18Rousseaux, Michael Esq QUALIFIED71Onyama Limba
1036Leja Z SaylorsItaly2026-08-08Commercial Press NEGOTIATION38Elwin Sharvill
1037Johnson R BowleyRussia2026-08-22Rangoni Of Florence NEW95Xuxue Feng
1038Misaki X BriddickJapan2026-08-31Benton, John B Jr PROPOSAL73Ioni Bowcher
1039Ricardo G InouyeSpain2026-08-29Morlong Associates PROPOSAL40Stephen Shaw
1040Isabel H WaycottGermany2026-08-04Rangoni Of Florence NEW28Asiya Javayant
1041Cody N WieserUnited Kingdom2026-08-31Chemel, James L Cpa NEW46Ivan Magalhaes
1042Clifford A ButtArgentina2026-08-08Rousseaux, Michael Esq PROPOSAL42Anna Fali
1043Nicolas I SchemmerSpain2026-08-15Dorl, James J Esq NEW14Bernardo Dominic
1044Ashley Q RulapaughSpain2026-09-01Rangoni Of Florence UNQUALIFIED11Elwin Sharvill
1045Ashley Z MacleadBrazil2026-08-24King, Christopher A Esq RENEWAL41Anna Fali
1046Jeanfrancois C FlosiFrance2026-08-30Morlong Associates NEGOTIATION38Elwin Sharvill
1047Misaki T AlbaresItaly2026-08-23Truhlar And Truhlar Attys QUALIFIED33Onyama Limba
1048Clifford L FerenczItaly2026-08-04Rousseaux, Michael Esq UNQUALIFIED69Ioni Bowcher
1049Emily W PerinJapan2026-08-22Truhlar And Truhlar Attys NEW56Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy Y InouyeArgentinaAmy Elsner PROPOSAL
Nicolas I WieserBrazilOnyama Limba QUALIFIED
Tony N OldroydIndiaXuxue Feng QUALIFIED
Rodrigues I BriddickCanadaStephen Shaw RENEWAL
Deepesh L WhobreySpainAnna Fali UNQUALIFIED
Ashley F GauchoCanadaAsiya Javayant RENEWAL
Deepesh W StockhamItalyElwin Sharvill NEW
Faith P GarufiFranceOnyama Limba RENEWAL
Izzy U ShinkoIndiaIoni Bowcher NEW
Ivar D PerinCanadaAnna Fali QUALIFIED
Jones G MaletSpainIoni Bowcher RENEWAL
David S FerenczFranceOnyama Limba UNQUALIFIED
Morrow R NestleUnited KingdomXuxue Feng UNQUALIFIED
Clifford Q KuskoSpainIvan Magalhaes RENEWAL
Ivar D CampainAustraliaBernardo Dominic NEGOTIATION
Arvin P GlickArgentinaElwin Sharvill PROPOSAL
Tony T FigeroaAustraliaOnyama Limba NEGOTIATION
Leon R FollerCanadaStephen Shaw QUALIFIED
Mayumi A WaycottCanadaIvan Magalhaes QUALIFIED
Costa F NickaCanadaAmy Elsner NEGOTIATION
Adams M InouyeGermanyAmy Elsner PROPOSAL
Costa K StockhamCanadaXuxue Feng NEGOTIATION
Chavez S MorascaGermanyStephen Shaw QUALIFIED
Darci N VenereJapanAsiya Javayant QUALIFIED
Smith J SaylorsRussiaAmy Elsner NEW
Morrow R CampainIndiaXuxue Feng NEGOTIATION
Julie G IturbideItalyIvan Magalhaes NEW
Stacey O SchemmerRussiaIoni Bowcher QUALIFIED
Chavez O AmigonArgentinaIvan Magalhaes NEW
Rodrigues T WhobreyGermanyBernardo Dominic QUALIFIED
Ashley D BriddickAustraliaBernardo Dominic UNQUALIFIED
Juan F CampainArgentinaIvan Magalhaes NEW
Johnson D CaldareraArgentinaStephen Shaw NEW
Murillo Y GillianJapanXuxue Feng QUALIFIED
Antonio G FollerSpainAsiya Javayant PROPOSAL
Izzy Y DilliardUnited KingdomXuxue Feng NEW
Smith H MaletBrazilOnyama Limba NEW
Chavez M InouyeGermanyAnna Fali UNQUALIFIED
Julie A VenereIndiaAnna Fali NEW
Aruna F BriddickArgentinaStephen Shaw PROPOSAL
Antonio K BowleyGermanyIoni Bowcher QUALIFIED
Emily B SlusarskiArgentinaAsiya Javayant UNQUALIFIED
Munro D RutaFranceAnna Fali QUALIFIED
David P SaylorsIndiaStephen Shaw PROPOSAL
Izzy T FlosiRussiaIvan Magalhaes UNQUALIFIED
David O ShinkoArgentinaXuxue Feng NEW
Chavez M OstroskyRussiaIoni Bowcher QUALIFIED
Antonio L FerenczIndiaOnyama Limba RENEWAL
Misaki W DoeJapanAnna Fali UNQUALIFIED
Stacey S BologniaCanadaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Leon W Royster
Aditya G Perin
Claire U Malet
Nicolas P Kusko
Aika N Figeroa
Jeanfrancois F Sergi
Misaki S Wieser
Tony V Stenseth
Faith X Albares
Misaki K Garufi
David D Iturbide
James O Campain
Isabel A Iturbide
Ricardo Z Stockham
Darci V Doe
Octavia X Campain
Antonio H Kolmetz
Claire O Doe
Salvatore M Ferencz
Arvin I Gillian
Aruna P Bowley
Emily U Garufi
Kaitlin X Nicka
Alejandro J Amigon
Misaki B Ostrosky
Adams X Ostrosky
Stacey W Kusko
Kadeem R Schemmer
Misaki L Bolognia
Maisha W Malet
Chavez X Ferencz
James R Stenseth
Isabel K Butt
Rodrigues U Nicka
Silvio A Vocelka
Stacey J Flosi
Aditya D Maclead
Ivar R Amigon
Rodrigues B Oldroyd
Aika K Gaucho
Murillo J Ostrosky
Smith F Ferencz
Rodrigues L Malet
Stacey X Whobrey
Maria J Venere
Clifford Z Doe
Julie V Garufi
Aruna H Ostrosky
Francesco H Royster
Cody Y Nicka
IdCountryDate
1000Russia2026-08-28
1001Spain2026-08-23
1002India2026-08-19
1003France2026-08-30
1004Canada2026-08-27
1005Spain2026-08-28
1006India2026-08-09
1007United Kingdom2026-08-14
1008Italy2026-08-20
1009Japan2026-08-29
1010Italy2026-08-03
1011Canada2026-08-26
1012Canada2026-08-13
1013United Kingdom2026-08-22
1014Germany2026-08-11
1015Australia2026-08-28
1016Italy2026-08-20
1017Spain2026-08-07
1018Argentina2026-08-18
1019Canada2026-08-27
1020Russia2026-08-30
1021Brazil2026-08-03
1022Spain2026-08-10
1023Argentina2026-08-23
1024Germany2026-08-08
1025Japan2026-08-14
1026Germany2026-08-18
1027Japan2026-08-10
1028Spain2026-08-07
1029Argentina2026-08-24
1030Germany2026-08-21
1031Japan2026-08-09
1032Germany2026-08-10
1033Italy2026-08-13
1034United Kingdom2026-08-09
1035India2026-08-31
1036Australia2026-08-22
1037Argentina2026-08-10
1038Italy2026-08-26
1039Italy2026-09-01
1040Italy2026-08-11
1041Canada2026-08-21
1042Germany2026-08-11
1043Germany2026-08-08
1044India2026-08-06
1045Brazil2026-08-27
1046Germany2026-08-26
1047Argentina2026-08-14
1048Canada2026-08-09
1049Italy2026-08-22

On-Demand Data

NameIdCountryDate
Emily J Sergi1000Canada2026-08-04
Kaitlin Z Poquette1001Argentina2026-09-01
Kaitlin T Ruta1002United Kingdom2026-08-27
James A Tollner1003Italy2026-08-05
Leon H Ostrosky1004India2026-08-19
Juan E Butt1005Spain2026-08-13
Maisha A Royster1006Brazil2026-08-12
Misaki I Malet1007Russia2026-08-13
Alejandro A Saylors1008Canada2026-08-11
Octavia L Sergi1009France2026-08-28
Aruna L Royster1010Italy2026-08-23
Rodrigues F Rim1011Italy2026-08-09
Rodrigues P Albares1012Japan2026-08-09
Mayumi X Gillian1013Brazil2026-08-05
Claire J Caldarera1014Russia2026-08-20
Salvatore P Albares1015France2026-08-05
Francesco T Dilliard1016Russia2026-09-01
Mujtaba B Rulapaugh1017Spain2026-08-27
Octavia L Ostrosky1018Argentina2026-08-12
Emily V Caudy1019Spain2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Q FigeroaBrazilIvan Magalhaes PROPOSAL
Stacey E WaycottUnited KingdomAnna Fali RENEWAL
Ricardo D DarakjyIndiaOnyama Limba PROPOSAL
Julie R KuskoArgentinaIvan Magalhaes NEGOTIATION
Tony V MorascaFranceStephen Shaw NEW
Greenwood B PerinItalyIoni Bowcher NEW
Jefferson N DarakjyJapanXuxue Feng NEW
Claire K NickaItalyAsiya Javayant NEW
Francesco R OstroskyJapanOnyama Limba RENEWAL
Chavez P GlickGermanyIoni Bowcher NEGOTIATION
Izzy M DilliardUnited KingdomAnna Fali QUALIFIED
Munro Q VocelkaBrazilAsiya Javayant PROPOSAL
Izzy C IturbideJapanAsiya Javayant PROPOSAL
Misaki G IturbideAustraliaStephen Shaw NEGOTIATION
Clifford W WieserIndiaIoni Bowcher PROPOSAL
Jeanfrancois Q CaudySpainIoni Bowcher QUALIFIED
Juan E IturbideGermanyElwin Sharvill UNQUALIFIED
Claire N OldroydSpainElwin Sharvill PROPOSAL
Clifford W GauchoCanadaAnna Fali UNQUALIFIED
Misaki O StensethSpainBernardo Dominic UNQUALIFIED
Costa T KolmetzItalyIvan Magalhaes QUALIFIED
Aditya Q ShinkoRussiaBernardo Dominic QUALIFIED
Octavia D MarrierBrazilAmy Elsner RENEWAL
Aruna V TollnerIndiaIvan Magalhaes NEGOTIATION
Adams R NestleGermanyElwin Sharvill UNQUALIFIED
Leja R CaudyIndiaAmy Elsner NEGOTIATION
Jefferson D DoeSpainOnyama Limba NEGOTIATION
Stacey E SchemmerIndiaBernardo Dominic PROPOSAL
Nicolas A RutaBrazilBernardo Dominic NEW
Munro K SchemmerSpainIvan Magalhaes QUALIFIED
Mujtaba P SaylorsIndiaIoni Bowcher NEW
James S RulapaughJapanElwin Sharvill QUALIFIED
Sinclair P PaprockiJapanAnna Fali PROPOSAL
Jones V DilliardBrazilOnyama Limba RENEWAL
Adams Z FerenczSpainAnna Fali QUALIFIED
Aditya D SaylorsGermanyXuxue Feng UNQUALIFIED
Isabel C ShinkoGermanyElwin Sharvill NEW
Arvin C CaldareraJapanElwin Sharvill PROPOSAL
Izzy S CaldareraCanadaElwin Sharvill NEW
Darci O TollnerArgentinaXuxue Feng 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>