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 U ChuiAustraliaAnna Fali UNQUALIFIED
Kaitlin M IturbideBrazilXuxue Feng PROPOSAL
Cody Y BriddickCanadaAnna Fali PROPOSAL
Alejandro A FigeroaIndiaIvan Magalhaes QUALIFIED
Isabel A TollnerUnited KingdomIvan Magalhaes QUALIFIED
Darci R SlusarskiItalyXuxue Feng NEGOTIATION
Sinclair L CampainAustraliaStephen Shaw UNQUALIFIED
Isabel C InouyeSpainIoni Bowcher QUALIFIED
Kadeem U MorascaIndiaElwin Sharvill NEGOTIATION
Kadeem F BriddickIndiaAmy Elsner RENEWAL
Jefferson J CampainUnited KingdomBernardo Dominic NEGOTIATION
Maisha R FollerJapanBernardo Dominic PROPOSAL
Ricardo P BriddickRussiaAmy Elsner PROPOSAL
Emily Y MarrierItalyElwin Sharvill NEW
Jennifer S InouyeCanadaAsiya Javayant PROPOSAL
Kaitlin J NickaSpainStephen Shaw NEGOTIATION
Francesco B GauchoAustraliaAnna Fali RENEWAL
Julie Z FollerAustraliaIoni Bowcher NEGOTIATION
Aruna Q ShinkoItalyBernardo Dominic NEGOTIATION
Jones O MaletFranceElwin Sharvill NEGOTIATION
David D SergiBrazilAnna Fali NEW
Misaki I OstroskyAustraliaOnyama Limba RENEWAL
Misaki S GarufiGermanyAsiya Javayant NEW
Aditya Z SergiAustraliaIvan Magalhaes NEW
Maria G VenereJapanStephen Shaw NEGOTIATION
Smith A CaldareraItalyElwin Sharvill NEGOTIATION
Costa D BologniaCanadaIvan Magalhaes QUALIFIED
Nicolas V CaudyItalyIvan Magalhaes RENEWAL
Octavia X AlbaresUnited KingdomAnna Fali QUALIFIED
Jefferson E GauchoFranceIvan Magalhaes RENEWAL
Rodrigues T SergiAustraliaIoni Bowcher NEGOTIATION
Kaitlin L VocelkaRussiaIoni Bowcher NEW
Costa T WaycottRussiaXuxue Feng PROPOSAL
Jones I DarakjyItalyIoni Bowcher NEW
Mayumi K DarakjyIndiaAnna Fali NEW
Aditya E RoysterFranceElwin Sharvill PROPOSAL
Octavia A AlbaresBrazilElwin Sharvill PROPOSAL
Izzy J RoysterAustraliaAsiya Javayant NEW
Silvio O CampainCanadaOnyama Limba QUALIFIED
Morrow T WhobreyJapanElwin Sharvill RENEWAL
Arvin F ChuiItalyIoni Bowcher NEGOTIATION
Munro T ShinkoGermanyIoni Bowcher NEW
Ivar J VenereRussiaIvan Magalhaes PROPOSAL
Chavez K WaycottCanadaOnyama Limba NEW
Jones Y OstroskyItalyAsiya Javayant UNQUALIFIED
Wickens G WhobreyGermanyXuxue Feng QUALIFIED
Stacey E PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Tony E KuskoBrazilElwin Sharvill NEGOTIATION
Jeanfrancois K CaudyItalyStephen Shaw NEW
Ricardo P MacleadIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore T CaudySpainBernardo Dominic NEW
Jennifer G GillianAustraliaBernardo Dominic UNQUALIFIED
Deepesh J ShinkoRussiaStephen Shaw NEW
Juan N InouyeUnited KingdomXuxue Feng UNQUALIFIED
Juan G WaycottAustraliaXuxue Feng PROPOSAL
Julie T SaylorsCanadaOnyama Limba NEW
Adams Y StockhamUnited KingdomIoni Bowcher NEW
Rodrigues W OldroydIndiaOnyama Limba UNQUALIFIED
Kaitlin P AmigonArgentinaBernardo Dominic NEGOTIATION
Octavia Q FollerIndiaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James V DarakjyBrazil2024-06-12Printing Dimensions QUALIFIED40Asiya Javayant
1001Tony V GillianIndia2024-06-01Chapman, Ross E Esq UNQUALIFIED20Ioni Bowcher
1002Salvatore R CaldareraGermany2024-06-04Truhlar And Truhlar Attys UNQUALIFIED9Bernardo Dominic
1003Maria W WaycottAustralia2024-06-01Truhlar And Truhlar Attys RENEWAL40Ivan Magalhaes
1004James O ShinkoBrazil2024-06-03Dorl, James J Esq UNQUALIFIED1Elwin Sharvill
1005Ricardo F KolmetzFrance2024-06-17Buckley Miller Wright QUALIFIED5Stephen Shaw
1006Jennifer W ShinkoArgentina2024-06-03Feiner Bros QUALIFIED93Ioni Bowcher
1007Leon H SergiCanada2024-06-21Benton, John B Jr QUALIFIED36Asiya Javayant
1008Leon X OstroskyAustralia2024-06-17King, Christopher A Esq NEW13Asiya Javayant
1009Ricardo V KuskoArgentina2024-05-31Printing Dimensions NEW17Xuxue Feng
1010Clifford L BowleyUnited Kingdom2024-06-01Benton, John B Jr UNQUALIFIED1Bernardo Dominic
1011Juan A DarakjyFrance2024-06-12Rangoni Of Florence NEW94Onyama Limba
1012Mujtaba N FigeroaRussia2024-05-25Chapman, Ross E Esq PROPOSAL73Elwin Sharvill
1013Octavia T SergiSpain2024-06-17Buckley Miller Wright PROPOSAL42Stephen Shaw
1014David H FollerBrazil2024-06-07Rangoni Of Florence QUALIFIED93Anna Fali
1015Jefferson K WhobreyGermany2024-06-11Benton, John B Jr QUALIFIED51Anna Fali
1016Adams Q WaycottJapan2024-06-14Rousseaux, Michael Esq RENEWAL91Asiya Javayant
1017Alejandro Q KolmetzBrazil2024-05-28Benton, John B Jr NEW70Asiya Javayant
1018Adams Y MaletSpain2024-06-05Morlong Associates NEW25Amy Elsner
1019Ashley G DarakjyGermany2024-05-25Dorl, James J Esq NEGOTIATION80Amy Elsner
1020Darci W BriddickArgentina2024-06-01King, Christopher A Esq QUALIFIED75Onyama Limba
1021Nicolas Q FlosiJapan2024-06-12Rousseaux, Michael Esq QUALIFIED72Xuxue Feng
1022Tony U OstroskyFrance2024-06-01Rangoni Of Florence QUALIFIED33Ivan Magalhaes
1023Johnson N ButtUnited Kingdom2024-06-12Benton, John B Jr UNQUALIFIED76Amy Elsner
1024Kadeem L MorascaJapan2024-06-10Morlong Associates NEW78Ivan Magalhaes
1025Mujtaba C TollnerSpain2024-06-12King, Christopher A Esq QUALIFIED70Xuxue Feng
1026Stacey W OldroydFrance2024-06-17Benton, John B Jr UNQUALIFIED13Ioni Bowcher
1027Faith H RimIndia2024-06-12Chapman, Ross E Esq RENEWAL49Amy Elsner
1028Maisha E ButtGermany2024-05-31Printing Dimensions NEW77Bernardo Dominic
1029Claire F KolmetzRussia2024-06-17Benton, John B Jr UNQUALIFIED70Amy Elsner
1030Costa D FlosiUnited Kingdom2024-06-06Printing Dimensions UNQUALIFIED0Stephen Shaw
1031Morrow S GarufiCanada2024-06-03Feiner Bros QUALIFIED29Bernardo Dominic
1032Kaitlin E OldroydArgentina2024-06-16Benton, John B Jr RENEWAL11Xuxue Feng
1033Leon U ButtIndia2024-06-06Buckley Miller Wright RENEWAL9Xuxue Feng
1034Juan O SaylorsUnited Kingdom2024-06-20Morlong Associates UNQUALIFIED0Asiya Javayant
1035Deepesh R GarufiItaly2024-05-26Feltz Printing Service UNQUALIFIED57Asiya Javayant
1036Wickens R BologniaBrazil2024-06-12Truhlar And Truhlar Attys NEW9Amy Elsner
1037Salvatore S MacleadRussia2024-06-06Buckley Miller Wright NEW7Asiya Javayant
1038Johnson A OstroskyRussia2024-06-02King, Christopher A Esq PROPOSAL36Anna Fali
1039Jeanfrancois S DoeIndia2024-06-12Rangoni Of Florence NEW19Asiya Javayant
1040Maisha O SchemmerBrazil2024-05-24King, Christopher A Esq NEW63Ioni Bowcher
1041Rodrigues Y ChuiUnited Kingdom2024-06-22King, Christopher A Esq NEGOTIATION88Anna Fali
1042Johnson J KuskoRussia2024-05-28Truhlar And Truhlar Attys RENEWAL34Anna Fali
1043Clifford D RulapaughRussia2024-05-24Morlong Associates RENEWAL61Onyama Limba
1044Francesco O PoquetteGermany2024-05-30Feiner Bros RENEWAL24Bernardo Dominic
1045Costa Q StockhamUnited Kingdom2024-06-16Feltz Printing Service PROPOSAL77Elwin Sharvill
1046David I GauchoFrance2024-06-20Feiner Bros NEGOTIATION6Xuxue Feng
1047Antonio A OstroskyRussia2024-06-22Commercial Press RENEWAL23Amy Elsner
1048Clifford T FlosiSpain2024-06-05Chanay, Jeffrey A Esq UNQUALIFIED83Stephen Shaw
1049Salvatore P MaletItaly2024-06-11Benton, John B Jr QUALIFIED45Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire U FigeroaGermanyXuxue Feng NEW
Jeanfrancois S WaycottSpainAmy Elsner QUALIFIED
Munro R VenereGermanyStephen Shaw NEW
Mujtaba X TollnerRussiaIoni Bowcher RENEWAL
Deepesh L StockhamGermanyStephen Shaw RENEWAL
Stacey B VenereIndiaAmy Elsner RENEWAL
Cody S CampainItalyAmy Elsner RENEWAL
Adams B WaycottArgentinaAmy Elsner NEGOTIATION
Ivar L GarufiFranceOnyama Limba NEW
Greenwood K CampainUnited KingdomIoni Bowcher NEW
Costa E BowleyRussiaXuxue Feng QUALIFIED
Ivar S KuskoCanadaIoni Bowcher QUALIFIED
Jeanfrancois F RulapaughGermanyOnyama Limba RENEWAL
Cody S AmigonGermanyIvan Magalhaes PROPOSAL
Costa J GauchoBrazilAmy Elsner NEW
Mayumi S KolmetzJapanStephen Shaw NEW
Maria Z FigeroaGermanyIvan Magalhaes QUALIFIED
Jones K VocelkaAustraliaAmy Elsner NEW
Kaitlin F CaudyAustraliaAnna Fali NEW
Alejandro E DarakjyFranceAmy Elsner QUALIFIED
Misaki X FigeroaBrazilBernardo Dominic RENEWAL
Maisha J FigeroaSpainElwin Sharvill NEW
Costa I NickaBrazilStephen Shaw QUALIFIED
Jones U OldroydFranceAnna Fali NEW
Faith V GillianRussiaAsiya Javayant NEGOTIATION
Murillo J KuskoAustraliaAmy Elsner NEW
Faith V WaycottSpainIvan Magalhaes PROPOSAL
Maisha B OstroskyBrazilAnna Fali NEW
Izzy W BologniaGermanyAsiya Javayant UNQUALIFIED
Chavez N DoeSpainElwin Sharvill PROPOSAL
Claire U GlickRussiaAnna Fali PROPOSAL
Adams R DarakjyGermanyXuxue Feng PROPOSAL
Kaitlin V ShinkoUnited KingdomAmy Elsner NEGOTIATION
Smith M IturbideRussiaAnna Fali UNQUALIFIED
Kaitlin J FollerSpainBernardo Dominic NEGOTIATION
Maria T FollerBrazilOnyama Limba NEGOTIATION
Deepesh J KolmetzGermanyXuxue Feng NEW
Jefferson B DilliardBrazilElwin Sharvill NEW
Antonio Q CampainBrazilIoni Bowcher QUALIFIED
Kaitlin M SergiUnited KingdomAsiya Javayant QUALIFIED
Claire Q OldroydGermanyAmy Elsner NEGOTIATION
Rodrigues D OstroskyGermanyIoni Bowcher PROPOSAL
Jennifer A GauchoBrazilAnna Fali QUALIFIED
Morrow J StockhamUnited KingdomBernardo Dominic NEGOTIATION
Octavia E PoquetteUnited KingdomIoni Bowcher QUALIFIED
Antonio P AmigonSpainIoni Bowcher QUALIFIED
Ricardo W NestleFranceStephen Shaw NEW
Kadeem F FerenczGermanyAmy Elsner UNQUALIFIED
Ashley F NestleSpainAnna Fali RENEWAL
Leja U NickaGermanyAmy Elsner QUALIFIED
Frozen Columns
Name
Cody Z Doe
Salvatore O Foller
Ashley R Wieser
Claire B Perin
Francesco P Briddick
Murillo X Dilliard
Clifford V Campain
Tony O Kusko
Alejandro F Campain
Mayumi P Iturbide
Julie I Gillian
Stacey G Chui
Alejandro Q Paprocki
Isabel R Schemmer
Greenwood F Tollner
Clifford G Schemmer
Julie Z Campain
Aruna Y Ostrosky
Stacey F Bolognia
Julie E Bolognia
Adams U Caudy
Ashley H Ruta
Emily F Sergi
Kaitlin P Shinko
Misaki F Stenseth
Tony C Flosi
Cody W Shinko
Octavia P Darakjy
Julie W Briddick
Leon O Bolognia
Misaki N Shinko
Ivar Z Vocelka
Ashley H Shinko
Emily M Slusarski
Smith O Butt
Cody A Slusarski
Darci O Schemmer
Alejandro A Oldroyd
Aruna E Darakjy
Kadeem Q Ostrosky
Leon L Dilliard
Kadeem K Venere
Francesco I Slusarski
Ivar T Shinko
Munro T Rulapaugh
Leja M Amigon
Johnson Q Foller
Silvio J Flosi
James O Gaucho
Jefferson H Amigon
IdCountryDate
1000Japan2024-06-16
1001Russia2024-06-19
1002Argentina2024-05-30
1003France2024-05-25
1004Italy2024-05-26
1005Australia2024-05-30
1006United Kingdom2024-06-07
1007Australia2024-06-18
1008France2024-06-10
1009Argentina2024-05-24
1010United Kingdom2024-06-09
1011Germany2024-06-14
1012France2024-06-21
1013United Kingdom2024-06-17
1014Canada2024-06-08
1015United Kingdom2024-06-09
1016Brazil2024-06-03
1017Germany2024-06-21
1018Spain2024-06-19
1019Brazil2024-06-22
1020Italy2024-06-13
1021United Kingdom2024-06-20
1022Italy2024-06-05
1023Italy2024-05-30
1024Spain2024-06-06
1025Spain2024-06-17
1026United Kingdom2024-05-26
1027Italy2024-06-14
1028France2024-06-01
1029India2024-05-27
1030Spain2024-06-12
1031Argentina2024-06-03
1032United Kingdom2024-05-26
1033Argentina2024-06-02
1034Germany2024-05-26
1035Italy2024-06-21
1036Canada2024-05-26
1037France2024-06-12
1038Canada2024-06-03
1039United Kingdom2024-05-27
1040Russia2024-06-18
1041Canada2024-06-09
1042Spain2024-06-16
1043Spain2024-06-04
1044Japan2024-06-18
1045Canada2024-06-13
1046France2024-05-30
1047Argentina2024-05-25
1048Russia2024-06-20
1049Japan2024-05-25

On-Demand Data

NameIdCountryDate
Sinclair X Vocelka1000Germany2024-05-29
Julie T Briddick1001Brazil2024-06-19
Jeanfrancois F Waycott1002United Kingdom2024-06-04
Isabel T Maclead1003Italy2024-05-29
Stacey E Shinko1004Spain2024-06-19
Munro T Malet1005Russia2024-06-15
Claire G Bowley1006India2024-06-14
Leon B Ferencz1007Spain2024-06-09
Chavez E Marrier1008United Kingdom2024-06-16
Aruna W Darakjy1009United Kingdom2024-05-30
Juan U Garufi1010Brazil2024-06-14
Ashley V Inouye1011Germany2024-06-03
Jeanfrancois L Maclead1012Canada2024-06-21
Clifford W Glick1013Australia2024-06-20
Silvio O Oldroyd1014Argentina2024-06-05
Misaki L Caudy1015Spain2024-06-03
Stacey P Caldarera1016Russia2024-06-17
Salvatore T Flosi1017Germany2024-06-13
Jennifer S Flosi1018Russia2024-05-29
Claire Z Stenseth1019Germany2024-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo W RutaJapanIoni Bowcher RENEWAL
Deepesh R SchemmerJapanAmy Elsner PROPOSAL
Costa Y VenereRussiaIoni Bowcher NEW
Maisha A PerinAustraliaAnna Fali RENEWAL
Jones X PoquetteItalyAsiya Javayant UNQUALIFIED
Francesco P RimArgentinaXuxue Feng QUALIFIED
Sinclair O NestleSpainOnyama Limba NEW
Chavez C AlbaresSpainAnna Fali PROPOSAL
Izzy Z StensethRussiaBernardo Dominic QUALIFIED
Clifford B StockhamFranceOnyama Limba UNQUALIFIED
Greenwood S DilliardIndiaAmy Elsner NEGOTIATION
Antonio J CaldareraArgentinaAnna Fali UNQUALIFIED
Darci N WaycottAustraliaOnyama Limba UNQUALIFIED
Deepesh T BowleyIndiaXuxue Feng UNQUALIFIED
Sinclair O RutaRussiaXuxue Feng QUALIFIED
Tony V CaldareraIndiaOnyama Limba UNQUALIFIED
Deepesh Q MorascaSpainStephen Shaw PROPOSAL
Alejandro M BologniaGermanyAmy Elsner NEGOTIATION
Emily U SchemmerBrazilElwin Sharvill QUALIFIED
Silvio L PerinUnited KingdomIoni Bowcher UNQUALIFIED
David J MaletCanadaOnyama Limba PROPOSAL
Johnson V StockhamRussiaAnna Fali QUALIFIED
Stacey U AmigonSpainStephen Shaw NEW
James R SlusarskiItalyStephen Shaw QUALIFIED
Tony E AlbaresItalyStephen Shaw NEW
Smith M GlickItalyXuxue Feng QUALIFIED
Mayumi G BriddickSpainIoni Bowcher PROPOSAL
Salvatore Q OldroydFranceStephen Shaw UNQUALIFIED
David S AlbaresBrazilXuxue Feng QUALIFIED
Octavia Z VocelkaFranceXuxue Feng UNQUALIFIED
Adams N RimSpainStephen Shaw PROPOSAL
Smith I RimCanadaAmy Elsner NEW
Julie V InouyeRussiaAnna Fali QUALIFIED
Octavia K PoquetteUnited KingdomStephen Shaw QUALIFIED
Isabel G CaudyJapanXuxue Feng NEGOTIATION
Greenwood B SlusarskiJapanBernardo Dominic NEW
Antonio O StensethAustraliaOnyama Limba UNQUALIFIED
Aika Q RimBrazilAmy Elsner QUALIFIED
Munro R OstroskyJapanOnyama Limba PROPOSAL
Kadeem D InouyeAustraliaAmy Elsner 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>