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
Francesco Q GillianCanadaBernardo Dominic PROPOSAL
Jeanfrancois E MaletAustraliaAsiya Javayant RENEWAL
Chavez D VocelkaIndiaIoni Bowcher NEGOTIATION
Jefferson A PoquetteJapanStephen Shaw UNQUALIFIED
James E VocelkaIndiaElwin Sharvill PROPOSAL
Wickens W CampainJapanAnna Fali QUALIFIED
Aditya F BriddickSpainAmy Elsner QUALIFIED
Octavia K VocelkaGermanyXuxue Feng UNQUALIFIED
Smith J DilliardIndiaBernardo Dominic NEW
David I RutaBrazilOnyama Limba NEGOTIATION
Wickens D RimCanadaStephen Shaw QUALIFIED
Kadeem F IturbideJapanStephen Shaw UNQUALIFIED
Alejandro Q PaprockiBrazilIoni Bowcher QUALIFIED
Julie W StockhamGermanyBernardo Dominic NEW
Chavez G GlickIndiaStephen Shaw QUALIFIED
Leon N FerenczIndiaXuxue Feng RENEWAL
Munro Y FollerItalyElwin Sharvill NEGOTIATION
Murillo T SaylorsFranceElwin Sharvill NEGOTIATION
Jefferson M AmigonSpainOnyama Limba NEW
Deepesh V DoeItalyAmy Elsner PROPOSAL
Emily K MaletBrazilAsiya Javayant RENEWAL
Ricardo J StensethAustraliaBernardo Dominic RENEWAL
Wickens E FlosiBrazilIvan Magalhaes UNQUALIFIED
Jones V MaletIndiaIvan Magalhaes PROPOSAL
Costa A RoysterSpainStephen Shaw NEW
Darci I PoquetteJapanStephen Shaw PROPOSAL
Aditya M PaprockiGermanyElwin Sharvill NEGOTIATION
Ivar O ChuiItalyAnna Fali QUALIFIED
Francesco Q WaycottSpainAnna Fali NEW
Jennifer E FigeroaIndiaBernardo Dominic NEW
Nicolas U FerenczGermanyAsiya Javayant QUALIFIED
Claire S OstroskyCanadaBernardo Dominic RENEWAL
Julie U RutaArgentinaAnna Fali QUALIFIED
Julie L SchemmerRussiaIoni Bowcher NEGOTIATION
Antonio D KuskoUnited KingdomOnyama Limba RENEWAL
Misaki M PerinGermanyStephen Shaw RENEWAL
Ashley F KolmetzJapanElwin Sharvill NEGOTIATION
Deepesh V DilliardSpainAnna Fali PROPOSAL
Mayumi X VocelkaCanadaStephen Shaw PROPOSAL
Alejandro L MorascaGermanyElwin Sharvill UNQUALIFIED
Jennifer Q ChuiUnited KingdomAsiya Javayant PROPOSAL
Cody M FollerBrazilOnyama Limba NEW
Ricardo N DilliardArgentinaIoni Bowcher NEGOTIATION
Kadeem M GarufiGermanyXuxue Feng PROPOSAL
Juan X MaletGermanyStephen Shaw NEW
Silvio G DilliardBrazilIvan Magalhaes NEGOTIATION
Murillo T StockhamRussiaOnyama Limba NEGOTIATION
Johnson T CampainBrazilStephen Shaw UNQUALIFIED
Isabel I KolmetzSpainBernardo Dominic PROPOSAL
Alejandro W VocelkaItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki Z VocelkaSpainAnna Fali PROPOSAL
Aika E FigeroaUnited KingdomAmy Elsner NEGOTIATION
Kadeem K RutaJapanOnyama Limba QUALIFIED
Leon A MaletItalyIvan Magalhaes NEW
Jeanfrancois T StensethFranceAsiya Javayant QUALIFIED
Cody O BologniaRussiaAsiya Javayant QUALIFIED
Sinclair Y GillianRussiaAnna Fali NEGOTIATION
Alejandro W AlbaresBrazilIvan Magalhaes RENEWAL
Deepesh Q PaprockiUnited KingdomXuxue Feng RENEWAL
Ivar Y VocelkaRussiaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja G OldroydIndia2026-08-17King, Christopher A Esq UNQUALIFIED78Elwin Sharvill
1001Juan V IturbideFrance2026-08-06Feltz Printing Service QUALIFIED52Onyama Limba
1002Morrow V CampainItaly2026-08-09Benton, John B Jr PROPOSAL71Ivan Magalhaes
1003Kadeem N RulapaughIndia2026-08-16Buckley Miller Wright UNQUALIFIED87Stephen Shaw
1004Leon F VocelkaBrazil2026-08-19Buckley Miller Wright RENEWAL60Ioni Bowcher
1005Silvio Q RimCanada2026-08-12Morlong Associates NEGOTIATION7Xuxue Feng
1006James U InouyeGermany2026-08-24Benton, John B Jr NEGOTIATION6Elwin Sharvill
1007Ricardo V RulapaughCanada2026-08-18Morlong Associates RENEWAL60Ivan Magalhaes
1008Stacey R SlusarskiBrazil2026-08-12Morlong Associates NEW62Ivan Magalhaes
1009Juan J BologniaFrance2026-08-25Dorl, James J Esq PROPOSAL77Bernardo Dominic
1010Maria P FollerIndia2026-08-12Feltz Printing Service UNQUALIFIED22Amy Elsner
1011James X ShinkoIndia2026-08-07Feltz Printing Service NEW40Ivan Magalhaes
1012Johnson A PaprockiAustralia2026-08-19Benton, John B Jr NEW89Amy Elsner
1013Julie W OldroydCanada2026-08-25Commercial Press NEW56Bernardo Dominic
1014Jefferson H FerenczIndia2026-08-26Feltz Printing Service RENEWAL27Stephen Shaw
1015Arvin O PaprockiSpain2026-08-21Feiner Bros NEW25Elwin Sharvill
1016Maisha Q DilliardArgentina2026-08-05Printing Dimensions QUALIFIED13Asiya Javayant
1017Izzy Q WaycottIndia2026-08-15Chapman, Ross E Esq QUALIFIED11Asiya Javayant
1018Rodrigues G NickaRussia2026-08-23Commercial Press RENEWAL88Onyama Limba
1019Stacey Q OstroskyItaly2026-08-21Feiner Bros PROPOSAL27Ivan Magalhaes
1020Isabel F FerenczFrance2026-08-07Rangoni Of Florence QUALIFIED38Ioni Bowcher
1021Tony N TollnerArgentina2026-08-05Feiner Bros RENEWAL19Onyama Limba
1022Jefferson O DoeIndia2026-08-03Chapman, Ross E Esq QUALIFIED30Anna Fali
1023Cody V BologniaRussia2026-08-24Truhlar And Truhlar Attys NEGOTIATION70Asiya Javayant
1024Izzy A FerenczJapan2026-08-07Rousseaux, Michael Esq PROPOSAL99Asiya Javayant
1025Aruna E ChuiItaly2026-08-14Truhlar And Truhlar Attys PROPOSAL58Bernardo Dominic
1026Aika Y MaletSpain2026-08-22Printing Dimensions PROPOSAL44Bernardo Dominic
1027Francesco M RimItaly2026-08-18Commercial Press RENEWAL24Anna Fali
1028Ricardo Y BowleyRussia2026-08-19King, Christopher A Esq RENEWAL8Asiya Javayant
1029Stacey W RutaRussia2026-08-16Chemel, James L Cpa PROPOSAL7Anna Fali
1030James A GarufiIndia2026-08-12Feiner Bros QUALIFIED0Stephen Shaw
1031Leon S OstroskyFrance2026-08-01Truhlar And Truhlar Attys UNQUALIFIED63Asiya Javayant
1032Jefferson F ShinkoSpain2026-08-24Commercial Press RENEWAL83Bernardo Dominic
1033Jefferson P FollerItaly2026-08-14Feltz Printing Service NEW54Onyama Limba
1034Leon S RoysterBrazil2026-08-21Commercial Press PROPOSAL14Bernardo Dominic
1035Kaitlin I PoquetteGermany2026-08-05Commercial Press NEW48Onyama Limba
1036Maisha V SlusarskiBrazil2026-08-11Chapman, Ross E Esq PROPOSAL25Asiya Javayant
1037Rodrigues G GarufiFrance2026-08-26Morlong Associates PROPOSAL13Bernardo Dominic
1038Jefferson R MarrierBrazil2026-08-16Feiner Bros RENEWAL58Ivan Magalhaes
1039James R CampainJapan2026-08-10King, Christopher A Esq NEGOTIATION59Ivan Magalhaes
1040Maria L SchemmerIndia2026-08-09Printing Dimensions PROPOSAL9Anna Fali
1041Octavia D MaletCanada2026-08-14Truhlar And Truhlar Attys NEGOTIATION24Elwin Sharvill
1042Octavia E CampainFrance2026-08-28Rangoni Of Florence NEGOTIATION18Amy Elsner
1043Jeanfrancois R StensethArgentina2026-08-22King, Christopher A Esq PROPOSAL34Elwin Sharvill
1044Jones P SchemmerCanada2026-08-22Feiner Bros QUALIFIED91Asiya Javayant
1045Aika S CaudyRussia2026-07-31Chanay, Jeffrey A Esq NEW86Bernardo Dominic
1046Aruna Q CampainFrance2026-08-28King, Christopher A Esq NEW45Amy Elsner
1047Aditya C RutaArgentina2026-08-15Truhlar And Truhlar Attys QUALIFIED94Onyama Limba
1048Jefferson F GarufiRussia2026-08-26Rangoni Of Florence QUALIFIED8Amy Elsner
1049Salvatore Y RimCanada2026-08-07Feiner Bros PROPOSAL90Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Munro X AmigonAustraliaIoni Bowcher NEGOTIATION
Claire K BologniaBrazilOnyama Limba RENEWAL
David S CaldareraRussiaIvan Magalhaes QUALIFIED
Maisha Q KolmetzArgentinaBernardo Dominic NEW
Morrow F MorascaGermanyXuxue Feng RENEWAL
Rodrigues V SergiJapanAnna Fali QUALIFIED
Morrow N KuskoFranceAnna Fali RENEWAL
Darci S AlbaresRussiaElwin Sharvill NEGOTIATION
Faith I SlusarskiCanadaElwin Sharvill PROPOSAL
Juan P WaycottJapanOnyama Limba QUALIFIED
Morrow D VenereCanadaIoni Bowcher QUALIFIED
Murillo C WaycottIndiaAnna Fali RENEWAL
Jefferson C FigeroaArgentinaIvan Magalhaes RENEWAL
Emily Z CaldareraFranceIvan Magalhaes PROPOSAL
Greenwood D DoeAustraliaBernardo Dominic NEW
Darci S SaylorsRussiaAnna Fali NEW
Jennifer M BriddickUnited KingdomAsiya Javayant UNQUALIFIED
Adams M StockhamGermanyStephen Shaw RENEWAL
Arvin G StockhamBrazilIvan Magalhaes QUALIFIED
Leja Q SchemmerFranceOnyama Limba RENEWAL
Maisha U RimItalyStephen Shaw RENEWAL
Chavez Z RulapaughArgentinaAnna Fali RENEWAL
Maisha Q MorascaJapanIvan Magalhaes NEW
Johnson Z ShinkoGermanyIvan Magalhaes RENEWAL
Isabel P ShinkoJapanOnyama Limba UNQUALIFIED
Munro K WaycottSpainXuxue Feng UNQUALIFIED
Mujtaba M DarakjyIndiaOnyama Limba NEGOTIATION
Alejandro N GlickBrazilIvan Magalhaes NEGOTIATION
Mayumi C GillianGermanyXuxue Feng RENEWAL
Johnson L GarufiCanadaIoni Bowcher NEW
Antonio L WhobreySpainBernardo Dominic RENEWAL
James A SergiIndiaElwin Sharvill NEW
Nicolas M DoeIndiaAsiya Javayant UNQUALIFIED
Stacey J SergiCanadaStephen Shaw NEW
Morrow B OldroydIndiaOnyama Limba RENEWAL
Kaitlin V FigeroaJapanOnyama Limba UNQUALIFIED
Greenwood L TollnerUnited KingdomAmy Elsner QUALIFIED
Mayumi R NestleRussiaStephen Shaw RENEWAL
Ivar J BowleyGermanyXuxue Feng NEW
Juan E SergiSpainXuxue Feng NEW
Mayumi E KolmetzCanadaAmy Elsner PROPOSAL
Rodrigues Y RutaCanadaOnyama Limba QUALIFIED
Mayumi T KuskoAustraliaStephen Shaw UNQUALIFIED
Rodrigues J MacleadSpainXuxue Feng RENEWAL
Wickens T MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi W SaylorsAustraliaStephen Shaw NEW
Sinclair X CampainFranceBernardo Dominic NEGOTIATION
Jefferson M NestleBrazilAnna Fali NEGOTIATION
Leon I WaycottRussiaBernardo Dominic QUALIFIED
Ashley J NickaGermanyOnyama Limba UNQUALIFIED
Frozen Columns
Name
Ivar J Ferencz
Aruna P Sergi
David U Wieser
Clifford Z Glick
Morrow D Marrier
Isabel W Albares
Adams C Ferencz
Munro A Waycott
Tony A Campain
Aruna E Caldarera
Izzy A Whobrey
Nicolas G Inouye
Juan X Malet
Aika A Ferencz
Juan S Perin
Octavia N Marrier
Jefferson E Bolognia
Nicolas O Ferencz
Jeanfrancois B Wieser
Mujtaba B Slusarski
Munro W Stenseth
Kaitlin W Tollner
Izzy D Glick
Jefferson S Malet
Morrow Y Bowley
Smith L Royster
Cody W Rim
Smith F Doe
Nicolas Y Maclead
Johnson D Nicka
Jennifer V Paprocki
Leon P Ruta
Claire R Kusko
Rodrigues I Dilliard
Chavez X Stenseth
Kadeem S Maclead
Alejandro O Tollner
Mayumi K Tollner
James L Malet
Izzy G Schemmer
Julie W Vocelka
Jeanfrancois J Inouye
Alejandro P Ferencz
Sinclair D Paprocki
Octavia B Iturbide
David L Rulapaugh
Aditya G Garufi
Jones E Schemmer
Ricardo H Oldroyd
Leon G Ferencz
IdCountryDate
1000Australia2026-08-26
1001Russia2026-08-27
1002United Kingdom2026-08-10
1003United Kingdom2026-08-15
1004Japan2026-08-20
1005Spain2026-08-04
1006India2026-08-12
1007Russia2026-08-09
1008Italy2026-08-10
1009Italy2026-08-10
1010France2026-08-07
1011Italy2026-08-14
1012Italy2026-08-29
1013Japan2026-08-27
1014France2026-08-12
1015Germany2026-08-06
1016India2026-08-09
1017Germany2026-07-31
1018Spain2026-08-05
1019Spain2026-08-06
1020Australia2026-08-26
1021Brazil2026-08-03
1022United Kingdom2026-08-12
1023France2026-08-17
1024United Kingdom2026-08-21
1025Italy2026-08-28
1026Italy2026-08-12
1027India2026-08-07
1028United Kingdom2026-08-09
1029Canada2026-08-06
1030Canada2026-08-15
1031Spain2026-08-24
1032Australia2026-08-24
1033Brazil2026-08-29
1034Argentina2026-08-20
1035Russia2026-08-10
1036United Kingdom2026-08-29
1037India2026-08-21
1038India2026-08-09
1039Spain2026-08-19
1040United Kingdom2026-08-14
1041Russia2026-08-10
1042United Kingdom2026-08-27
1043Italy2026-08-15
1044Russia2026-08-13
1045India2026-08-12
1046Argentina2026-08-18
1047United Kingdom2026-08-21
1048Brazil2026-08-08
1049Australia2026-07-31

On-Demand Data

NameIdCountryDate
Izzy S Bolognia1000Russia2026-08-25
Aika B Foller1001United Kingdom2026-08-27
Aika C Waycott1002United Kingdom2026-08-17
Aditya I Caldarera1003India2026-08-28
Maisha Z Ferencz1004Brazil2026-08-04
Jeanfrancois I Vocelka1005France2026-08-03
Izzy U Chui1006Japan2026-08-14
Greenwood W Nestle1007France2026-08-23
Ivar V Perin1008India2026-08-19
Claire G Figeroa1009India2026-08-17
Aika Y Iturbide1010Spain2026-08-15
Maisha M Albares1011Spain2026-08-02
Ashley Y Garufi1012Brazil2026-08-24
Ashley L Venere1013France2026-08-05
Murillo X Tollner1014Spain2026-08-24
James H Albares1015Russia2026-08-19
Deepesh X Kolmetz1016Spain2026-08-06
Juan S Royster1017Australia2026-08-19
Ashley M Stenseth1018Brazil2026-08-05
Tony T Ruta1019United Kingdom2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford E GauchoFranceStephen Shaw NEGOTIATION
Kadeem A PoquetteFranceOnyama Limba PROPOSAL
Johnson N StockhamGermanyAnna Fali PROPOSAL
Jones E OldroydUnited KingdomOnyama Limba NEW
Clifford G MarrierSpainIvan Magalhaes PROPOSAL
Tony M NestleFranceAsiya Javayant QUALIFIED
Emily T FigeroaJapanIoni Bowcher NEGOTIATION
Kaitlin P SergiUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois W SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Francesco Y BriddickSpainAnna Fali NEW
Arvin F MaletArgentinaElwin Sharvill UNQUALIFIED
Kadeem X DoeJapanAmy Elsner RENEWAL
Izzy P MarrierItalyElwin Sharvill RENEWAL
Ivar F RoysterCanadaAsiya Javayant NEW
Faith U AlbaresIndiaIoni Bowcher NEW
Aika B RutaSpainElwin Sharvill NEW
Chavez T WieserArgentinaBernardo Dominic RENEWAL
Clifford Y MacleadCanadaAsiya Javayant QUALIFIED
Isabel P OldroydAustraliaIvan Magalhaes UNQUALIFIED
Deepesh Z OstroskyUnited KingdomElwin Sharvill PROPOSAL
Izzy L OldroydGermanyIvan Magalhaes NEGOTIATION
Julie U AlbaresJapanAnna Fali QUALIFIED
Ashley D ButtJapanIvan Magalhaes PROPOSAL
Antonio S MacleadUnited KingdomBernardo Dominic NEW
Deepesh F PoquetteUnited KingdomIoni Bowcher NEW
Octavia T GarufiSpainXuxue Feng RENEWAL
Jeanfrancois A RulapaughCanadaAnna Fali UNQUALIFIED
Faith X TollnerIndiaIoni Bowcher PROPOSAL
Silvio A DilliardArgentinaIvan Magalhaes NEW
Jefferson F MacleadFranceXuxue Feng RENEWAL
Francesco C FerenczUnited KingdomAsiya Javayant RENEWAL
Wickens R FlosiRussiaAmy Elsner NEGOTIATION
Johnson I InouyeAustraliaBernardo Dominic QUALIFIED
Ivar Q PoquetteCanadaIvan Magalhaes PROPOSAL
Salvatore I PerinItalyAmy Elsner UNQUALIFIED
Leon W ButtItalyElwin Sharvill UNQUALIFIED
Jennifer K SchemmerIndiaAmy Elsner NEW
Tony H SergiCanadaXuxue Feng NEW
Adams Z MaletSpainAmy Elsner NEW
Izzy L ShinkoCanadaOnyama Limba 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>