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
Alejandro K FerenczSpainXuxue Feng RENEWAL
Francesco M OldroydRussiaAnna Fali UNQUALIFIED
Silvio I BologniaArgentinaStephen Shaw NEW
Cody R CaudyIndiaOnyama Limba PROPOSAL
Murillo R OldroydSpainElwin Sharvill PROPOSAL
Wickens M FollerBrazilElwin Sharvill NEW
Stacey N FerenczCanadaStephen Shaw PROPOSAL
Morrow O StensethSpainElwin Sharvill PROPOSAL
Costa U AmigonBrazilElwin Sharvill QUALIFIED
Izzy U RoysterItalyOnyama Limba NEGOTIATION
Julie R PaprockiCanadaAmy Elsner NEW
Francesco P GarufiAustraliaElwin Sharvill NEW
Darci T MarrierFranceBernardo Dominic QUALIFIED
Leon K AmigonArgentinaIvan Magalhaes NEGOTIATION
Darci Z KolmetzBrazilAnna Fali UNQUALIFIED
Francesco O GillianAustraliaOnyama Limba UNQUALIFIED
Octavia Q StensethFranceAsiya Javayant PROPOSAL
Claire T CaudyGermanyIvan Magalhaes NEGOTIATION
Ivar B RutaSpainOnyama Limba RENEWAL
Faith G RoysterFranceBernardo Dominic NEW
Aika N TollnerFranceOnyama Limba QUALIFIED
Jefferson Q AlbaresJapanAsiya Javayant NEW
Costa Z DilliardIndiaAnna Fali RENEWAL
Ashley P MarrierUnited KingdomAmy Elsner RENEWAL
David R StockhamIndiaAnna Fali UNQUALIFIED
Aika Q KuskoCanadaIoni Bowcher QUALIFIED
Ricardo M KolmetzRussiaAsiya Javayant UNQUALIFIED
Wickens T WieserFranceBernardo Dominic QUALIFIED
Jefferson A OldroydIndiaOnyama Limba NEGOTIATION
Emily U SchemmerFranceXuxue Feng NEW
Misaki F BologniaBrazilXuxue Feng UNQUALIFIED
Aruna H NickaSpainAmy Elsner NEGOTIATION
Francesco Y FigeroaFranceAmy Elsner RENEWAL
James A CampainRussiaAmy Elsner RENEWAL
Mujtaba O InouyeSpainAsiya Javayant UNQUALIFIED
Jefferson B SergiSpainIvan Magalhaes NEGOTIATION
Jones F MacleadIndiaAsiya Javayant PROPOSAL
Ivar E MacleadJapanAmy Elsner QUALIFIED
Aika J VocelkaFranceStephen Shaw UNQUALIFIED
Faith Z RimRussiaBernardo Dominic PROPOSAL
Cody N TollnerBrazilXuxue Feng UNQUALIFIED
Clifford B GillianSpainElwin Sharvill QUALIFIED
Chavez W SergiBrazilBernardo Dominic NEW
Maisha R RoysterSpainIvan Magalhaes RENEWAL
Jennifer S RimRussiaIvan Magalhaes RENEWAL
Julie M SchemmerRussiaAnna Fali RENEWAL
Misaki W WhobreyArgentinaIvan Magalhaes RENEWAL
Deepesh P FollerFranceBernardo Dominic QUALIFIED
Nicolas P GlickRussiaXuxue Feng NEGOTIATION
Arvin W CampainFranceAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika D BriddickIndiaAnna Fali NEGOTIATION
Leon U FlosiUnited KingdomBernardo Dominic NEGOTIATION
Stacey D MaletAustraliaIoni Bowcher UNQUALIFIED
Aruna R MorascaJapanBernardo Dominic NEW
Jennifer L FerenczFranceAsiya Javayant PROPOSAL
Morrow A SaylorsGermanyOnyama Limba RENEWAL
Antonio U WaycottGermanyIvan Magalhaes NEGOTIATION
Morrow E FerenczJapanXuxue Feng NEW
Arvin G GlickFranceAnna Fali PROPOSAL
Mayumi F BologniaIndiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco J GarufiFrance2026-07-05Rangoni Of Florence RENEWAL56Anna Fali
1001Stacey L SaylorsJapan2026-07-05Feiner Bros QUALIFIED13Elwin Sharvill
1002Jones P BologniaUnited Kingdom2026-06-22Rangoni Of Florence UNQUALIFIED54Xuxue Feng
1003Kadeem V KolmetzCanada2026-06-28Chemel, James L Cpa NEGOTIATION88Stephen Shaw
1004Maria Y RoysterBrazil2026-06-24Morlong Associates NEW67Elwin Sharvill
1005James X ChuiUnited Kingdom2026-06-18Chapman, Ross E Esq PROPOSAL85Xuxue Feng
1006Francesco I DilliardIndia2026-07-01King, Christopher A Esq PROPOSAL85Stephen Shaw
1007Arvin M GillianSpain2026-06-29Rousseaux, Michael Esq QUALIFIED32Ivan Magalhaes
1008Johnson Q NestleArgentina2026-06-25Morlong Associates NEW73Onyama Limba
1009Stacey R BologniaCanada2026-06-26Morlong Associates RENEWAL98Bernardo Dominic
1010Julie E VenereArgentina2026-06-24Rangoni Of Florence NEW91Ioni Bowcher
1011Aditya T PaprockiItaly2026-06-08Printing Dimensions NEGOTIATION62Amy Elsner
1012Izzy N VenereRussia2026-06-19Dorl, James J Esq NEW72Bernardo Dominic
1013Maisha T FlosiUnited Kingdom2026-06-19Buckley Miller Wright PROPOSAL76Onyama Limba
1014David G InouyeUnited Kingdom2026-06-14Printing Dimensions NEGOTIATION98Stephen Shaw
1015Wickens M KuskoJapan2026-06-22Chanay, Jeffrey A Esq NEGOTIATION49Asiya Javayant
1016David Z BriddickCanada2026-06-29Feiner Bros RENEWAL43Amy Elsner
1017Johnson R SlusarskiUnited Kingdom2026-06-21Buckley Miller Wright RENEWAL88Elwin Sharvill
1018Chavez B ChuiJapan2026-06-22Feltz Printing Service QUALIFIED24Onyama Limba
1019Jones M SaylorsUnited Kingdom2026-06-26Morlong Associates NEW49Ioni Bowcher
1020Misaki G MarrierItaly2026-06-21Feltz Printing Service RENEWAL91Elwin Sharvill
1021Jones I VenereRussia2026-07-03Morlong Associates PROPOSAL97Ivan Magalhaes
1022Maisha P NickaItaly2026-07-07Dorl, James J Esq PROPOSAL74Ioni Bowcher
1023Murillo B CampainIndia2026-07-01Feiner Bros NEW33Ivan Magalhaes
1024Kadeem B SergiArgentina2026-06-09Printing Dimensions PROPOSAL87Anna Fali
1025James O VocelkaRussia2026-06-20Chanay, Jeffrey A Esq NEGOTIATION83Elwin Sharvill
1026Leja H SaylorsUnited Kingdom2026-07-06Feltz Printing Service PROPOSAL95Stephen Shaw
1027Ashley G WhobreyIndia2026-06-15Chemel, James L Cpa UNQUALIFIED87Asiya Javayant
1028Munro E VenereRussia2026-06-10Dorl, James J Esq RENEWAL71Ioni Bowcher
1029Murillo E WieserGermany2026-06-28Chanay, Jeffrey A Esq PROPOSAL22Ivan Magalhaes
1030Smith E NestleCanada2026-06-13Truhlar And Truhlar Attys PROPOSAL18Anna Fali
1031Mujtaba X StockhamGermany2026-07-05Chapman, Ross E Esq RENEWAL56Asiya Javayant
1032Aditya Y KuskoSpain2026-06-12Feiner Bros RENEWAL21Bernardo Dominic
1033Nicolas S KuskoArgentina2026-06-17King, Christopher A Esq UNQUALIFIED24Onyama Limba
1034Kaitlin I WaycottJapan2026-06-27Rangoni Of Florence UNQUALIFIED46Ivan Magalhaes
1035Mayumi M MacleadCanada2026-06-28Morlong Associates QUALIFIED83Anna Fali
1036David Z VocelkaCanada2026-06-26Printing Dimensions PROPOSAL53Amy Elsner
1037Johnson M MorascaItaly2026-07-03Printing Dimensions QUALIFIED79Stephen Shaw
1038Greenwood O PaprockiArgentina2026-06-11Rousseaux, Michael Esq NEW57Asiya Javayant
1039Johnson M FollerJapan2026-06-30Dorl, James J Esq NEGOTIATION24Elwin Sharvill
1040Jeanfrancois C GillianCanada2026-06-13Dorl, James J Esq RENEWAL71Ivan Magalhaes
1041Salvatore T GlickIndia2026-07-03Truhlar And Truhlar Attys RENEWAL92Stephen Shaw
1042Misaki M DoeItaly2026-06-27Feltz Printing Service QUALIFIED19Ioni Bowcher
1043Kaitlin W MacleadFrance2026-06-10Chemel, James L Cpa NEGOTIATION66Elwin Sharvill
1044Kaitlin S PaprockiCanada2026-06-22Rangoni Of Florence UNQUALIFIED83Stephen Shaw
1045Kadeem L DarakjyGermany2026-06-13Chapman, Ross E Esq PROPOSAL14Ioni Bowcher
1046Costa H FlosiFrance2026-06-26Buckley Miller Wright NEW25Stephen Shaw
1047Munro U RimAustralia2026-06-30Buckley Miller Wright NEGOTIATION34Xuxue Feng
1048Sinclair W MaletItaly2026-06-14Rangoni Of Florence QUALIFIED60Onyama Limba
1049Ivar M KolmetzIndia2026-07-05Rousseaux, Michael Esq RENEWAL7Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna H BriddickBrazilAmy Elsner NEGOTIATION
Chavez R BriddickCanadaElwin Sharvill PROPOSAL
Salvatore S FlosiFranceAsiya Javayant NEW
Claire Y NestleFranceStephen Shaw NEW
Wickens Q GarufiIndiaBernardo Dominic NEW
Faith M FigeroaRussiaIoni Bowcher PROPOSAL
Darci U DarakjyJapanAnna Fali RENEWAL
Munro V MarrierItalyAnna Fali RENEWAL
Isabel H MaletGermanyOnyama Limba NEW
Antonio U NickaAustraliaOnyama Limba UNQUALIFIED
Jones L RimArgentinaIvan Magalhaes NEW
Sinclair M MarrierItalyAsiya Javayant PROPOSAL
Silvio X BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Octavia X RutaBrazilStephen Shaw RENEWAL
Kaitlin J PerinCanadaBernardo Dominic NEGOTIATION
Isabel G DilliardArgentinaIoni Bowcher RENEWAL
Stacey F RoysterCanadaIoni Bowcher UNQUALIFIED
Faith F AlbaresSpainIoni Bowcher QUALIFIED
Aditya S MorascaJapanBernardo Dominic NEGOTIATION
Sinclair E SaylorsAustraliaOnyama Limba RENEWAL
David H MarrierCanadaAnna Fali RENEWAL
James F WhobreyBrazilIoni Bowcher QUALIFIED
Adams X CaldareraSpainBernardo Dominic QUALIFIED
Adams S TollnerSpainStephen Shaw RENEWAL
Nicolas H StensethCanadaElwin Sharvill PROPOSAL
Costa Z InouyeSpainIvan Magalhaes NEGOTIATION
Jefferson O CaudyBrazilBernardo Dominic UNQUALIFIED
Kaitlin B DarakjyUnited KingdomOnyama Limba RENEWAL
Clifford Q SlusarskiBrazilAsiya Javayant UNQUALIFIED
Darci T FerenczItalyIvan Magalhaes RENEWAL
Leja T WaycottSpainElwin Sharvill QUALIFIED
Greenwood B VenereArgentinaBernardo Dominic PROPOSAL
Mayumi H CaudyJapanAmy Elsner RENEWAL
Kadeem B NickaIndiaElwin Sharvill PROPOSAL
Mujtaba P MarrierIndiaElwin Sharvill QUALIFIED
Antonio G DarakjyArgentinaAsiya Javayant NEW
Deepesh L BowleyFranceIvan Magalhaes NEW
Wickens J RulapaughItalyStephen Shaw UNQUALIFIED
Nicolas T MacleadFranceIvan Magalhaes QUALIFIED
Emily L KuskoBrazilAmy Elsner PROPOSAL
Munro Z InouyeAustraliaBernardo Dominic QUALIFIED
Antonio I IturbideRussiaAmy Elsner QUALIFIED
Alejandro I MaletJapanAnna Fali UNQUALIFIED
Stacey V GlickCanadaIoni Bowcher QUALIFIED
Johnson P VenereItalyIoni Bowcher QUALIFIED
Stacey L KolmetzFranceAmy Elsner RENEWAL
Isabel L KolmetzJapanElwin Sharvill PROPOSAL
Arvin T FigeroaAustraliaIoni Bowcher QUALIFIED
Chavez N SlusarskiItalyIoni Bowcher NEGOTIATION
Jennifer F MarrierJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Kaitlin S Malet
Leja Q Figeroa
Arvin S Bolognia
Ashley F Stockham
Ashley B Maclead
Faith V Slusarski
Jefferson D Vocelka
Wickens H Chui
Octavia Q Foller
Ricardo I Gaucho
Emily F Caudy
Deepesh B Waycott
Octavia U Kusko
Morrow E Saylors
Maisha F Nicka
Cody G Slusarski
James S Stockham
Costa M Albares
Kadeem T Paprocki
Aika Q Waycott
Claire K Whobrey
Maisha V Slusarski
Costa M Schemmer
Mujtaba D Garufi
Ricardo U Bolognia
Cody F Saylors
Salvatore V Poquette
Jones T Gillian
Aruna Q Venere
Leon Q Chui
Juan B Schemmer
Johnson V Bolognia
Faith B Butt
Maisha E Perin
Jefferson B Waycott
Kaitlin X Nestle
Smith F Nicka
Sinclair O Ruta
Juan R Chui
Smith Z Figeroa
Izzy K Kusko
Kadeem G Malet
Rodrigues P Kolmetz
James O Nicka
Juan I Nicka
Julie M Butt
Chavez M Poquette
Tony E Waycott
Misaki E Caldarera
Adams H Bolognia
IdCountryDate
1000Brazil2026-06-18
1001Brazil2026-06-22
1002Spain2026-06-21
1003United Kingdom2026-06-19
1004Italy2026-06-22
1005Spain2026-06-13
1006Argentina2026-06-21
1007Germany2026-06-15
1008Germany2026-06-16
1009Spain2026-06-30
1010Japan2026-06-14
1011Italy2026-06-20
1012Germany2026-06-26
1013France2026-06-16
1014Brazil2026-07-02
1015Russia2026-06-13
1016United Kingdom2026-06-13
1017United Kingdom2026-06-21
1018Italy2026-06-19
1019France2026-06-25
1020Italy2026-06-11
1021Brazil2026-06-24
1022Canada2026-06-17
1023India2026-07-07
1024France2026-07-03
1025Germany2026-06-30
1026India2026-06-20
1027Canada2026-06-12
1028France2026-07-01
1029Argentina2026-06-15
1030Italy2026-06-13
1031Russia2026-06-14
1032Canada2026-06-27
1033Argentina2026-06-20
1034France2026-06-26
1035Russia2026-06-23
1036Australia2026-06-28
1037India2026-06-27
1038Brazil2026-07-01
1039Russia2026-06-11
1040Spain2026-06-18
1041Germany2026-06-13
1042Spain2026-07-05
1043Canada2026-06-18
1044Germany2026-06-23
1045France2026-07-05
1046Italy2026-06-26
1047Italy2026-06-27
1048Italy2026-06-28
1049India2026-06-11

On-Demand Data

NameIdCountryDate
David V Nestle1000Japan2026-07-04
Wickens F Gillian1001Spain2026-06-20
Isabel Z Butt1002Brazil2026-06-19
Leja Y Kolmetz1003Australia2026-06-10
Francesco T Poquette1004Germany2026-06-29
Ivar C Rulapaugh1005United Kingdom2026-07-01
Kaitlin G Rim1006India2026-06-22
Faith T Royster1007United Kingdom2026-06-28
Kadeem X Tollner1008Russia2026-06-19
Julie R Tollner1009United Kingdom2026-06-08
Mayumi Q Foller1010Spain2026-06-13
David Q Albares1011Brazil2026-06-24
Maisha L Briddick1012Japan2026-06-20
Johnson W Oldroyd1013Japan2026-06-23
Chavez D Whobrey1014Spain2026-07-07
Misaki O Dilliard1015United Kingdom2026-06-13
Clifford E Royster1016India2026-06-29
Misaki V Malet1017Australia2026-07-01
Murillo M Paprocki1018Brazil2026-07-04
Rodrigues K Kusko1019Germany2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio I ChuiGermanyIoni Bowcher NEW
Cody J KolmetzItalyBernardo Dominic QUALIFIED
Munro R FollerAustraliaIoni Bowcher UNQUALIFIED
Adams Y WieserArgentinaIoni Bowcher UNQUALIFIED
David W WieserRussiaAmy Elsner NEGOTIATION
Octavia U SlusarskiArgentinaAnna Fali RENEWAL
Julie W SlusarskiFranceIoni Bowcher UNQUALIFIED
Izzy O TollnerFranceElwin Sharvill NEW
Octavia K MaletFranceXuxue Feng RENEWAL
James T BologniaSpainXuxue Feng UNQUALIFIED
Tony H WaycottGermanyAnna Fali RENEWAL
Isabel S FlosiJapanXuxue Feng RENEWAL
Aditya Q MorascaRussiaIoni Bowcher NEGOTIATION
Alejandro D MacleadSpainAmy Elsner QUALIFIED
Sinclair W FerenczGermanyIoni Bowcher NEW
Greenwood T DilliardAustraliaBernardo Dominic UNQUALIFIED
Faith O SchemmerFranceOnyama Limba UNQUALIFIED
Nicolas X BowleyArgentinaAmy Elsner PROPOSAL
Cody X VocelkaFranceElwin Sharvill PROPOSAL
Kaitlin B AlbaresRussiaIvan Magalhaes UNQUALIFIED
Jefferson T SchemmerIndiaIvan Magalhaes NEW
Wickens F DilliardBrazilAnna Fali PROPOSAL
Leon S BowleyBrazilElwin Sharvill PROPOSAL
James E BowleyIndiaBernardo Dominic UNQUALIFIED
Leon I DarakjyGermanyXuxue Feng PROPOSAL
Jennifer X PaprockiGermanyAnna Fali QUALIFIED
Ricardo O CampainArgentinaElwin Sharvill QUALIFIED
Adams I FigeroaAustraliaOnyama Limba PROPOSAL
Nicolas W ShinkoFranceElwin Sharvill NEGOTIATION
Adams L GauchoAustraliaElwin Sharvill RENEWAL
Costa M KuskoItalyAnna Fali NEGOTIATION
Munro W KolmetzFranceIvan Magalhaes PROPOSAL
Kaitlin R SchemmerItalyElwin Sharvill QUALIFIED
Cody C FollerSpainAmy Elsner PROPOSAL
Francesco E NestleSpainOnyama Limba UNQUALIFIED
Julie I GarufiArgentinaOnyama Limba NEW
Arvin S SaylorsRussiaAnna Fali UNQUALIFIED
Clifford O MarrierGermanyOnyama Limba UNQUALIFIED
Misaki T MarrierRussiaAnna Fali RENEWAL
Leon R MarrierCanadaIoni 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>