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
Kadeem N WhobreyArgentinaIvan Magalhaes RENEWAL
Kadeem G SaylorsSpainBernardo Dominic NEGOTIATION
Isabel V SchemmerFranceBernardo Dominic PROPOSAL
Sinclair I FlosiCanadaAnna Fali UNQUALIFIED
Kaitlin J SlusarskiSpainXuxue Feng UNQUALIFIED
Mujtaba J ButtBrazilBernardo Dominic UNQUALIFIED
Francesco K ChuiSpainBernardo Dominic QUALIFIED
Kaitlin Y GlickSpainAsiya Javayant NEGOTIATION
Smith M WieserSpainIoni Bowcher NEGOTIATION
Maisha E GlickGermanyIoni Bowcher UNQUALIFIED
Leja A TollnerAustraliaStephen Shaw NEW
Rodrigues E BologniaBrazilAsiya Javayant RENEWAL
Wickens U FlosiJapanBernardo Dominic RENEWAL
Ricardo V MaletArgentinaElwin Sharvill PROPOSAL
Salvatore I DoeCanadaXuxue Feng NEW
Alejandro R ShinkoBrazilOnyama Limba NEW
Mujtaba F OldroydJapanOnyama Limba QUALIFIED
Clifford L DarakjyFranceXuxue Feng UNQUALIFIED
Ashley L SergiArgentinaStephen Shaw NEGOTIATION
Adams Q OldroydBrazilAmy Elsner UNQUALIFIED
Jefferson X WhobreyJapanStephen Shaw RENEWAL
Jeanfrancois X OldroydIndiaOnyama Limba NEGOTIATION
Juan Z RulapaughJapanAsiya Javayant UNQUALIFIED
Stacey L TollnerGermanyStephen Shaw QUALIFIED
Munro C WieserAustraliaBernardo Dominic NEW
Julie J WaycottCanadaElwin Sharvill RENEWAL
Mayumi H GarufiArgentinaElwin Sharvill RENEWAL
Nicolas H GillianCanadaIvan Magalhaes PROPOSAL
Emily X MacleadRussiaBernardo Dominic UNQUALIFIED
Salvatore L SlusarskiJapanStephen Shaw UNQUALIFIED
Maria Z InouyeSpainIvan Magalhaes UNQUALIFIED
Julie E SchemmerSpainXuxue Feng RENEWAL
Cody Z RoysterRussiaAsiya Javayant PROPOSAL
Faith D RulapaughBrazilStephen Shaw UNQUALIFIED
Aditya I WhobreyItalyXuxue Feng QUALIFIED
Tony Y GauchoJapanIoni Bowcher QUALIFIED
Faith J ButtFranceXuxue Feng UNQUALIFIED
Julie D AlbaresGermanyAnna Fali NEGOTIATION
Julie T SchemmerFranceIvan Magalhaes PROPOSAL
Salvatore H RoysterBrazilAmy Elsner PROPOSAL
Jones T AmigonJapanBernardo Dominic PROPOSAL
Sinclair L VocelkaCanadaAmy Elsner PROPOSAL
Julie Q GlickAustraliaOnyama Limba NEW
Francesco V NickaItalyIoni Bowcher QUALIFIED
Johnson F OstroskyGermanyElwin Sharvill UNQUALIFIED
Mayumi W RimAustraliaElwin Sharvill PROPOSAL
Antonio O PaprockiJapanIvan Magalhaes NEW
Aruna U WaycottSpainXuxue Feng RENEWAL
Jefferson C TollnerItalyAmy Elsner RENEWAL
Cody Y OldroydSpainOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem O NickaFranceIvan Magalhaes QUALIFIED
Clifford W AlbaresBrazilIvan Magalhaes UNQUALIFIED
Maria T FollerIndiaElwin Sharvill NEGOTIATION
Kaitlin Q InouyeCanadaOnyama Limba NEW
Deepesh N StensethBrazilIvan Magalhaes PROPOSAL
Tony T RoysterIndiaAsiya Javayant QUALIFIED
Sinclair H TollnerJapanIvan Magalhaes PROPOSAL
Costa E CampainJapanIoni Bowcher UNQUALIFIED
Jefferson Q WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Izzy H MorascaCanadaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya M OstroskyUnited Kingdom2026-07-23Buckley Miller Wright PROPOSAL34Ioni Bowcher
1001Maria Q AlbaresBrazil2026-07-24Rangoni Of Florence PROPOSAL83Xuxue Feng
1002Arvin U WieserAustralia2026-07-27Chapman, Ross E Esq RENEWAL62Amy Elsner
1003Leon Y OstroskyBrazil2026-07-04Buckley Miller Wright PROPOSAL69Bernardo Dominic
1004Faith C ChuiGermany2026-07-16Truhlar And Truhlar Attys PROPOSAL83Ioni Bowcher
1005Sinclair W IturbideJapan2026-07-07Dorl, James J Esq RENEWAL35Ivan Magalhaes
1006Ivar U MaletCanada2026-07-03Rousseaux, Michael Esq PROPOSAL90Anna Fali
1007Smith U PaprockiItaly2026-07-27Chapman, Ross E Esq RENEWAL31Asiya Javayant
1008Claire A StockhamFrance2026-07-08Feiner Bros QUALIFIED95Elwin Sharvill
1009Octavia E GarufiFrance2026-07-04Benton, John B Jr PROPOSAL20Asiya Javayant
1010Octavia V WhobreyJapan2026-07-07Commercial Press NEGOTIATION66Anna Fali
1011Darci M InouyeIndia2026-07-11King, Christopher A Esq NEW56Ioni Bowcher
1012Maria M MacleadBrazil2026-07-20King, Christopher A Esq RENEWAL84Ioni Bowcher
1013Juan N SlusarskiFrance2026-07-06Chapman, Ross E Esq RENEWAL8Amy Elsner
1014Ricardo V InouyeBrazil2026-07-10King, Christopher A Esq NEGOTIATION76Ivan Magalhaes
1015Julie G NestleFrance2026-07-17King, Christopher A Esq NEW76Anna Fali
1016Aruna Y SchemmerJapan2026-07-27Printing Dimensions RENEWAL97Amy Elsner
1017Izzy V ButtFrance2026-07-28King, Christopher A Esq NEGOTIATION41Anna Fali
1018Deepesh P OstroskyFrance2026-07-27Buckley Miller Wright NEGOTIATION35Bernardo Dominic
1019Faith Z FigeroaItaly2026-07-27Chapman, Ross E Esq UNQUALIFIED94Amy Elsner
1020Costa Y StockhamSpain2026-07-07Rangoni Of Florence PROPOSAL23Stephen Shaw
1021Murillo I MarrierSpain2026-07-26Rangoni Of Florence PROPOSAL56Onyama Limba
1022Misaki T FerenczItaly2026-07-07Morlong Associates PROPOSAL22Ivan Magalhaes
1023Leon G PaprockiIndia2026-07-01Feiner Bros NEGOTIATION89Onyama Limba
1024Ivar E KolmetzCanada2026-07-18Morlong Associates RENEWAL27Ivan Magalhaes
1025Ashley I RutaSpain2026-07-18Feiner Bros UNQUALIFIED51Asiya Javayant
1026Leon N ButtAustralia2026-07-12Dorl, James J Esq PROPOSAL61Ivan Magalhaes
1027Greenwood A GillianItaly2026-07-14Rousseaux, Michael Esq NEGOTIATION97Ivan Magalhaes
1028Alejandro D WhobreyBrazil2026-07-11Rangoni Of Florence NEGOTIATION11Amy Elsner
1029Kaitlin X GarufiSpain2026-07-23Feiner Bros NEW72Amy Elsner
1030Alejandro P VocelkaCanada2026-07-23Rousseaux, Michael Esq RENEWAL54Amy Elsner
1031David I ShinkoSpain2026-07-09Chanay, Jeffrey A Esq PROPOSAL11Asiya Javayant
1032Kadeem C MarrierFrance2026-07-28Commercial Press PROPOSAL15Elwin Sharvill
1033Morrow J InouyeBrazil2026-07-27Chapman, Ross E Esq RENEWAL92Elwin Sharvill
1034Morrow P OstroskyItaly2026-07-01Commercial Press PROPOSAL58Bernardo Dominic
1035David E FigeroaBrazil2026-07-11Feiner Bros NEGOTIATION18Elwin Sharvill
1036Isabel R KuskoIndia2026-07-22Buckley Miller Wright QUALIFIED11Amy Elsner
1037Darci W VocelkaBrazil2026-07-19Truhlar And Truhlar Attys QUALIFIED36Elwin Sharvill
1038Aruna S KolmetzBrazil2026-07-16Rousseaux, Michael Esq QUALIFIED42Bernardo Dominic
1039Ivar B CaudyArgentina2026-07-10Printing Dimensions QUALIFIED73Ioni Bowcher
1040Munro A TollnerGermany2026-07-27Chapman, Ross E Esq QUALIFIED17Anna Fali
1041Wickens L TollnerRussia2026-07-01Buckley Miller Wright NEW5Xuxue Feng
1042Maria Y StensethAustralia2026-07-14Dorl, James J Esq NEGOTIATION6Ioni Bowcher
1043Kaitlin N ShinkoItaly2026-07-07Truhlar And Truhlar Attys QUALIFIED21Bernardo Dominic
1044Ashley M FlosiSpain2026-07-03King, Christopher A Esq PROPOSAL72Elwin Sharvill
1045Leon W OldroydUnited Kingdom2026-07-20Chanay, Jeffrey A Esq UNQUALIFIED16Ioni Bowcher
1046Jeanfrancois X IturbideItaly2026-07-17Rousseaux, Michael Esq QUALIFIED76Stephen Shaw
1047Jeanfrancois Z MorascaGermany2026-07-13Feltz Printing Service NEGOTIATION7Xuxue Feng
1048Jefferson Q VenereItaly2026-07-07Truhlar And Truhlar Attys NEW76Ioni Bowcher
1049Rodrigues V MorascaGermany2026-07-22Morlong Associates UNQUALIFIED62Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson J FlosiSpainElwin Sharvill RENEWAL
Rodrigues B OstroskyBrazilIvan Magalhaes QUALIFIED
Aruna I StensethSpainAsiya Javayant QUALIFIED
Jennifer P BowleyJapanAsiya Javayant NEGOTIATION
Juan T BowleyGermanyAnna Fali RENEWAL
Clifford G DilliardItalyIvan Magalhaes RENEWAL
Juan K FollerIndiaIvan Magalhaes UNQUALIFIED
Sinclair Z PerinRussiaAsiya Javayant NEW
Kadeem N FerenczBrazilElwin Sharvill UNQUALIFIED
Antonio B MorascaAustraliaAmy Elsner QUALIFIED
Ivar Z CaldareraCanadaAnna Fali RENEWAL
Ashley S WaycottFranceElwin Sharvill RENEWAL
Aditya R RimGermanyAmy Elsner PROPOSAL
Emily Y BriddickUnited KingdomIvan Magalhaes NEGOTIATION
Murillo R InouyeUnited KingdomXuxue Feng UNQUALIFIED
James U RimCanadaXuxue Feng PROPOSAL
Arvin M MaletRussiaIvan Magalhaes NEW
Greenwood E GlickIndiaAmy Elsner UNQUALIFIED
Munro R FerenczBrazilAnna Fali QUALIFIED
Salvatore X MaletArgentinaElwin Sharvill NEGOTIATION
Salvatore M SaylorsIndiaIoni Bowcher NEW
Leja J MacleadBrazilAnna Fali UNQUALIFIED
Morrow F OldroydSpainBernardo Dominic NEW
Faith Q WhobreyAustraliaAnna Fali PROPOSAL
Ricardo F BologniaAustraliaAsiya Javayant NEGOTIATION
Juan E CaldareraRussiaAnna Fali RENEWAL
Aruna Z MorascaGermanyBernardo Dominic NEW
Jefferson W DarakjyArgentinaOnyama Limba QUALIFIED
Ashley K GillianArgentinaAsiya Javayant NEW
Mujtaba U OstroskyIndiaAmy Elsner NEW
Kaitlin F RoysterIndiaXuxue Feng NEGOTIATION
Silvio Q BriddickRussiaAnna Fali NEGOTIATION
Izzy E IturbideRussiaXuxue Feng NEW
Silvio H WaycottAustraliaAsiya Javayant QUALIFIED
Leon R VocelkaUnited KingdomOnyama Limba UNQUALIFIED
Murillo F MorascaItalyStephen Shaw RENEWAL
Leja O DarakjyItalyAnna Fali RENEWAL
Cody Y TollnerFranceIvan Magalhaes RENEWAL
Misaki M FollerGermanyAnna Fali RENEWAL
Maisha H WhobreyBrazilIvan Magalhaes UNQUALIFIED
Nicolas E MorascaArgentinaBernardo Dominic NEW
Jennifer P RoysterGermanyOnyama Limba PROPOSAL
Emily L SergiGermanyAmy Elsner NEW
Mujtaba Y MacleadCanadaAsiya Javayant QUALIFIED
Sinclair J TollnerCanadaIoni Bowcher NEW
Johnson V DilliardFranceOnyama Limba UNQUALIFIED
Nicolas T DarakjyAustraliaIvan Magalhaes NEW
Francesco Z GillianSpainBernardo Dominic UNQUALIFIED
Stacey P AlbaresJapanElwin Sharvill PROPOSAL
Costa S WaycottBrazilAsiya Javayant RENEWAL
Frozen Columns
Name
Izzy X Rulapaugh
Ivar C Poquette
Smith U Schemmer
Misaki V Campain
Stacey T Dilliard
Aika A Campain
Murillo L Ostrosky
Ivar P Campain
Juan V Malet
Julie N Ruta
Mujtaba U Butt
Clifford H Glick
Leon X Stenseth
Claire M Rim
Kaitlin F Sergi
Leja A Campain
Misaki K Rim
Darci B Wieser
Ivar M Bowley
Ricardo V Chui
Johnson P Glick
Jefferson C Amigon
Alejandro R Caldarera
Deepesh O Stenseth
Octavia T Perin
Emily Q Stenseth
Jennifer N Malet
Julie V Flosi
Sinclair T Gillian
Tony A Inouye
Deepesh G Gaucho
Sinclair A Royster
Francesco C Rim
Maria N Vocelka
Jones S Butt
Morrow B Figeroa
Jones X Marrier
Cody K Nestle
Greenwood R Stockham
Ricardo U Perin
Clifford I Perin
Johnson K Schemmer
Deepesh Y Inouye
Maisha L Ostrosky
Claire J Venere
Kadeem X Stenseth
Jefferson I Royster
David T Stockham
Deepesh Z Ferencz
Sinclair L Perin
IdCountryDate
1000Brazil2026-07-04
1001Brazil2026-07-04
1002Brazil2026-07-14
1003Russia2026-07-24
1004Canada2026-07-22
1005Argentina2026-07-06
1006Spain2026-07-14
1007Canada2026-07-11
1008Canada2026-07-25
1009Italy2026-07-13
1010Japan2026-07-04
1011Brazil2026-07-08
1012Argentina2026-07-02
1013Spain2026-07-05
1014Germany2026-07-08
1015Brazil2026-07-18
1016Russia2026-07-09
1017Russia2026-07-21
1018Australia2026-06-29
1019Australia2026-07-23
1020France2026-06-29
1021India2026-07-04
1022Spain2026-07-09
1023Australia2026-07-25
1024Spain2026-07-07
1025France2026-07-09
1026India2026-07-23
1027Italy2026-07-03
1028Germany2026-07-15
1029Germany2026-07-09
1030Argentina2026-07-02
1031Italy2026-07-10
1032Spain2026-07-05
1033Canada2026-07-21
1034Brazil2026-07-17
1035Spain2026-07-14
1036Spain2026-07-10
1037Germany2026-07-07
1038France2026-06-30
1039Russia2026-07-11
1040Italy2026-07-28
1041Germany2026-07-16
1042Brazil2026-07-28
1043Germany2026-07-23
1044United Kingdom2026-07-13
1045Australia2026-07-25
1046Italy2026-07-22
1047United Kingdom2026-07-17
1048Italy2026-07-20
1049United Kingdom2026-07-14

On-Demand Data

NameIdCountryDate
Ashley X Sergi1000Australia2026-07-04
Chavez B Malet1001Canada2026-07-25
Costa Q Tollner1002Canada2026-07-15
Wickens N Saylors1003India2026-07-18
Salvatore Q Bowley1004Canada2026-07-04
Faith R Inouye1005Argentina2026-07-05
Maisha K Maclead1006Argentina2026-07-04
Jeanfrancois J Bolognia1007Brazil2026-07-26
Clifford I Foller1008Russia2026-07-13
Julie C Inouye1009Russia2026-07-27
Adams I Maclead1010Japan2026-07-27
Murillo V Malet1011Canada2026-07-11
Antonio I Kusko1012Argentina2026-07-02
Adams X Nestle1013Germany2026-07-19
Aruna A Saylors1014United Kingdom2026-07-24
Morrow W Stockham1015Brazil2026-07-20
Faith B Sergi1016United Kingdom2026-07-22
Misaki D Nestle1017Brazil2026-07-07
Deepesh N Doe1018Canada2026-07-07
Salvatore T Stockham1019India2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens Y MarrierGermanyStephen Shaw QUALIFIED
Francesco M GarufiGermanyIoni Bowcher NEGOTIATION
Jefferson Z CampainJapanBernardo Dominic NEGOTIATION
Julie M MaletGermanyStephen Shaw RENEWAL
Greenwood L OldroydBrazilAsiya Javayant PROPOSAL
David W MarrierJapanStephen Shaw NEW
James V RulapaughArgentinaIoni Bowcher UNQUALIFIED
Wickens S MaletArgentinaXuxue Feng RENEWAL
Ricardo Q BologniaIndiaAnna Fali NEW
Arvin D DilliardIndiaIvan Magalhaes NEGOTIATION
Silvio E MaletArgentinaElwin Sharvill PROPOSAL
Ricardo P ChuiBrazilIoni Bowcher QUALIFIED
James H BriddickAustraliaElwin Sharvill PROPOSAL
David N BriddickSpainAnna Fali UNQUALIFIED
Sinclair U GillianUnited KingdomIoni Bowcher NEW
Jones T CampainJapanIoni Bowcher QUALIFIED
Smith U RutaSpainIvan Magalhaes NEW
Nicolas B PaprockiFranceXuxue Feng QUALIFIED
Adams P OldroydGermanyElwin Sharvill NEGOTIATION
Nicolas L BriddickBrazilIvan Magalhaes NEW
Sinclair Q RimCanadaAsiya Javayant RENEWAL
Julie M ButtAustraliaBernardo Dominic NEW
Jeanfrancois Y VocelkaFranceXuxue Feng NEGOTIATION
Ashley Y KolmetzIndiaXuxue Feng NEW
Stacey S BriddickItalyIvan Magalhaes PROPOSAL
Murillo Z MaletItalyAmy Elsner NEW
Arvin N VocelkaRussiaBernardo Dominic QUALIFIED
Emily F SaylorsIndiaOnyama Limba RENEWAL
James D BologniaItalyBernardo Dominic QUALIFIED
Juan Z GlickItalyIvan Magalhaes PROPOSAL
Mujtaba S GillianJapanXuxue Feng RENEWAL
Mujtaba Y DarakjyRussiaIvan Magalhaes PROPOSAL
Isabel L IturbideCanadaIoni Bowcher RENEWAL
Darci A FollerJapanStephen Shaw PROPOSAL
Mayumi O FerenczJapanBernardo Dominic RENEWAL
Greenwood M VenereIndiaStephen Shaw NEGOTIATION
Greenwood G CaudyRussiaElwin Sharvill NEW
Rodrigues H GlickFranceXuxue Feng UNQUALIFIED
Faith K DarakjyCanadaBernardo Dominic RENEWAL
Aditya Q PoquetteBrazilIoni Bowcher RENEWAL

<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>