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
Murillo X BologniaCanadaAsiya Javayant UNQUALIFIED
Leon T DilliardCanadaIoni Bowcher RENEWAL
Chavez X RoysterGermanyIvan Magalhaes UNQUALIFIED
Morrow T SaylorsBrazilXuxue Feng NEGOTIATION
James F GauchoRussiaOnyama Limba RENEWAL
Maria U WhobreyCanadaIvan Magalhaes NEGOTIATION
Silvio V AmigonCanadaAmy Elsner UNQUALIFIED
Jones O BowleyJapanXuxue Feng UNQUALIFIED
Faith C GillianFranceAnna Fali UNQUALIFIED
Ashley V MaletBrazilIoni Bowcher PROPOSAL
Tony L WaycottCanadaBernardo Dominic NEGOTIATION
Kaitlin L IturbideAustraliaAmy Elsner NEW
Aditya L PaprockiIndiaAnna Fali PROPOSAL
Mayumi U KuskoGermanyBernardo Dominic NEGOTIATION
Johnson R ShinkoAustraliaAsiya Javayant UNQUALIFIED
Ivar J SergiArgentinaOnyama Limba PROPOSAL
James U PaprockiRussiaElwin Sharvill QUALIFIED
Johnson S RimIndiaXuxue Feng NEW
Faith G GillianFranceElwin Sharvill NEW
Mujtaba W SergiItalyIoni Bowcher RENEWAL
Antonio W SaylorsGermanyBernardo Dominic RENEWAL
Jennifer Y FollerRussiaAmy Elsner QUALIFIED
Jefferson G StockhamRussiaStephen Shaw QUALIFIED
Francesco R PaprockiItalyXuxue Feng QUALIFIED
Silvio R NickaUnited KingdomAnna Fali QUALIFIED
Wickens F RoysterAustraliaXuxue Feng RENEWAL
Murillo S OstroskyIndiaAnna Fali QUALIFIED
Ivar V CaldareraRussiaIvan Magalhaes RENEWAL
Salvatore Q CaldareraGermanyAnna Fali UNQUALIFIED
Kadeem C SergiJapanAmy Elsner NEGOTIATION
Jones X OstroskyFranceAmy Elsner NEGOTIATION
Clifford M DarakjyItalyIvan Magalhaes QUALIFIED
Nicolas M PerinIndiaXuxue Feng PROPOSAL
Aditya W ChuiAustraliaAsiya Javayant NEW
Misaki W ShinkoUnited KingdomIoni Bowcher QUALIFIED
Greenwood C FerenczRussiaOnyama Limba NEGOTIATION
Deepesh C WieserCanadaAnna Fali NEW
Leja H InouyeFranceBernardo Dominic PROPOSAL
Deepesh Y DilliardGermanyAnna Fali UNQUALIFIED
Cody M AlbaresJapanElwin Sharvill PROPOSAL
Arvin S VocelkaAustraliaAnna Fali QUALIFIED
Silvio V StensethSpainIoni Bowcher NEW
Jeanfrancois D RutaItalyIvan Magalhaes QUALIFIED
Darci U FlosiBrazilIoni Bowcher QUALIFIED
Alejandro N VenereCanadaStephen Shaw QUALIFIED
Munro M FlosiRussiaElwin Sharvill NEGOTIATION
Silvio H CampainItalyOnyama Limba NEW
Mujtaba M GauchoFranceIvan Magalhaes QUALIFIED
Izzy S GarufiIndiaElwin Sharvill QUALIFIED
Francesco E PoquetteArgentinaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Izzy V CaldareraCanadaBernardo Dominic QUALIFIED
Aruna T MorascaAustraliaOnyama Limba RENEWAL
Adams O PaprockiArgentinaAmy Elsner NEW
Murillo Y GillianFranceXuxue Feng NEW
Izzy Q KuskoUnited KingdomAsiya Javayant PROPOSAL
Costa T DarakjyRussiaBernardo Dominic PROPOSAL
Ricardo M VenereAustraliaOnyama Limba NEW
Jones N OldroydRussiaAmy Elsner PROPOSAL
Mayumi U CampainArgentinaAnna Fali UNQUALIFIED
Leon G SaylorsRussiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey T OstroskyItaly2026-08-25Rangoni Of Florence NEGOTIATION2Amy Elsner
1001Aika D ChuiFrance2026-09-01Rousseaux, Michael Esq RENEWAL48Xuxue Feng
1002Nicolas A GillianSpain2026-08-14Truhlar And Truhlar Attys NEW17Anna Fali
1003Ivar H VocelkaCanada2026-09-01Commercial Press NEW42Asiya Javayant
1004Darci K DoeSpain2026-08-08Feltz Printing Service QUALIFIED97Asiya Javayant
1005Nicolas C DarakjyRussia2026-08-06Chanay, Jeffrey A Esq NEW26Stephen Shaw
1006Adams Z CaudyJapan2026-08-21Chapman, Ross E Esq UNQUALIFIED20Elwin Sharvill
1007Murillo W CaldareraCanada2026-08-14Buckley Miller Wright RENEWAL23Stephen Shaw
1008Munro D SlusarskiIndia2026-08-04Buckley Miller Wright PROPOSAL42Amy Elsner
1009Deepesh H FigeroaFrance2026-08-16Chemel, James L Cpa RENEWAL87Stephen Shaw
1010Darci O StockhamUnited Kingdom2026-08-05Benton, John B Jr UNQUALIFIED76Stephen Shaw
1011Silvio F NickaRussia2026-08-03Buckley Miller Wright PROPOSAL76Ivan Magalhaes
1012Izzy U WaycottGermany2026-08-17Buckley Miller Wright QUALIFIED16Anna Fali
1013Tony S DilliardArgentina2026-08-04Chapman, Ross E Esq PROPOSAL12Xuxue Feng
1014Isabel M NickaItaly2026-09-01Commercial Press PROPOSAL11Ioni Bowcher
1015Wickens O CampainRussia2026-08-18Rousseaux, Michael Esq UNQUALIFIED50Stephen Shaw
1016Jefferson C OstroskyUnited Kingdom2026-08-12Feiner Bros NEGOTIATION69Xuxue Feng
1017Nicolas F NickaGermany2026-08-09Chanay, Jeffrey A Esq NEW92Anna Fali
1018Julie Y OldroydCanada2026-08-26Morlong Associates PROPOSAL4Asiya Javayant
1019Aditya G VenereUnited Kingdom2026-08-10Commercial Press NEW11Bernardo Dominic
1020Smith K WhobreyJapan2026-08-17Feiner Bros PROPOSAL7Anna Fali
1021Antonio I WhobreyFrance2026-08-06Buckley Miller Wright PROPOSAL92Ioni Bowcher
1022Isabel M WaycottSpain2026-08-03King, Christopher A Esq NEGOTIATION7Ioni Bowcher
1023Claire Z VenereAustralia2026-08-13Commercial Press NEGOTIATION58Asiya Javayant
1024Maria A DarakjyAustralia2026-08-30Rangoni Of Florence NEGOTIATION62Onyama Limba
1025Kadeem K DilliardRussia2026-08-08Feltz Printing Service NEW39Bernardo Dominic
1026Maisha S GarufiSpain2026-08-06Chemel, James L Cpa PROPOSAL48Stephen Shaw
1027Silvio S BologniaRussia2026-08-03Rangoni Of Florence QUALIFIED22Stephen Shaw
1028Clifford J RutaGermany2026-08-11Printing Dimensions NEGOTIATION29Xuxue Feng
1029Francesco S VenereIndia2026-08-19Chapman, Ross E Esq NEW20Xuxue Feng
1030Isabel W DoeJapan2026-08-28Feiner Bros NEGOTIATION32Stephen Shaw
1031Deepesh D ChuiSpain2026-08-09King, Christopher A Esq QUALIFIED74Asiya Javayant
1032Clifford P AlbaresJapan2026-08-07Rousseaux, Michael Esq NEW68Ivan Magalhaes
1033Ricardo Y GauchoRussia2026-08-06Truhlar And Truhlar Attys NEGOTIATION7Ioni Bowcher
1034Kaitlin F ShinkoJapan2026-08-31Commercial Press NEGOTIATION99Onyama Limba
1035Antonio Q IturbideAustralia2026-09-01Feltz Printing Service QUALIFIED51Anna Fali
1036Ricardo P GlickSpain2026-08-15Morlong Associates RENEWAL57Anna Fali
1037Smith D GarufiUnited Kingdom2026-08-25Rangoni Of Florence PROPOSAL57Onyama Limba
1038Murillo L PaprockiIndia2026-08-14Chemel, James L Cpa PROPOSAL84Elwin Sharvill
1039Faith K VocelkaBrazil2026-08-09Benton, John B Jr PROPOSAL33Xuxue Feng
1040Tony F IturbideSpain2026-08-18Truhlar And Truhlar Attys QUALIFIED69Stephen Shaw
1041Misaki F GillianGermany2026-08-31Chemel, James L Cpa QUALIFIED25Asiya Javayant
1042Darci R NickaArgentina2026-08-05Chanay, Jeffrey A Esq QUALIFIED71Xuxue Feng
1043Antonio W PaprockiAustralia2026-08-21Rangoni Of Florence UNQUALIFIED57Xuxue Feng
1044David S SchemmerItaly2026-08-10Dorl, James J Esq PROPOSAL42Xuxue Feng
1045Mayumi P MacleadFrance2026-08-21Buckley Miller Wright UNQUALIFIED79Asiya Javayant
1046Johnson X RutaArgentina2026-08-17Dorl, James J Esq RENEWAL10Bernardo Dominic
1047Claire E KolmetzCanada2026-08-19Chanay, Jeffrey A Esq QUALIFIED22Stephen Shaw
1048Silvio M NickaBrazil2026-09-01Buckley Miller Wright NEGOTIATION26Elwin Sharvill
1049Julie C FollerFrance2026-08-30Rousseaux, Michael Esq NEW30Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar R SlusarskiCanadaIoni Bowcher NEW
Maisha T PoquetteRussiaAmy Elsner PROPOSAL
Cody D SaylorsItalyIoni Bowcher QUALIFIED
Emily A PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Stacey U PerinItalyAmy Elsner QUALIFIED
Nicolas W RimUnited KingdomXuxue Feng NEW
Juan T GillianBrazilStephen Shaw NEGOTIATION
Munro V AmigonArgentinaIvan Magalhaes RENEWAL
Julie Q RimJapanStephen Shaw NEGOTIATION
Darci M GauchoItalyStephen Shaw QUALIFIED
Stacey V FigeroaItalyAmy Elsner NEGOTIATION
Morrow V SergiItalyAnna Fali UNQUALIFIED
Claire H DarakjyCanadaOnyama Limba PROPOSAL
Mujtaba U MaletFranceXuxue Feng NEGOTIATION
Arvin T GillianSpainAmy Elsner RENEWAL
Smith K KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba Y StensethItalyAnna Fali UNQUALIFIED
Isabel N FlosiArgentinaAmy Elsner QUALIFIED
Greenwood M MaletJapanIvan Magalhaes QUALIFIED
Jones C MorascaGermanyXuxue Feng QUALIFIED
Silvio E TollnerBrazilAnna Fali QUALIFIED
Arvin Q StockhamFranceElwin Sharvill PROPOSAL
Arvin W InouyeArgentinaIoni Bowcher QUALIFIED
Aditya I MaletItalyStephen Shaw NEW
Jeanfrancois O CampainGermanyAsiya Javayant NEGOTIATION
Chavez W BowleyCanadaOnyama Limba QUALIFIED
Rodrigues G StensethRussiaOnyama Limba NEW
Morrow X WieserItalyIvan Magalhaes PROPOSAL
Antonio S SchemmerJapanIvan Magalhaes QUALIFIED
Claire A DilliardIndiaOnyama Limba NEGOTIATION
Claire L NestleUnited KingdomAmy Elsner NEW
Ashley G ShinkoJapanAsiya Javayant NEW
Murillo V BologniaBrazilIvan Magalhaes NEW
Aika X MarrierUnited KingdomStephen Shaw QUALIFIED
Rodrigues M PerinCanadaAnna Fali NEW
James R WhobreyJapanAsiya Javayant NEGOTIATION
Mayumi F MaletBrazilAmy Elsner UNQUALIFIED
Ashley M MaletRussiaStephen Shaw NEGOTIATION
Maisha M CaudyArgentinaAnna Fali NEGOTIATION
Leon L RulapaughBrazilBernardo Dominic NEGOTIATION
Emily L MarrierSpainAmy Elsner PROPOSAL
Costa U StockhamSpainAsiya Javayant UNQUALIFIED
Aruna O PaprockiFranceIvan Magalhaes NEW
David R ButtGermanyIoni Bowcher QUALIFIED
Ivar G RimBrazilOnyama Limba NEGOTIATION
Mujtaba W GauchoBrazilOnyama Limba QUALIFIED
Stacey N FlosiUnited KingdomIvan Magalhaes QUALIFIED
Leon C MorascaAustraliaIvan Magalhaes NEW
Ashley H SergiBrazilAmy Elsner PROPOSAL
Ricardo H GlickUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Aika B Malet
Julie H Caldarera
Arvin G Whobrey
Chavez Q Glick
Maria Q Maclead
Kaitlin Z Wieser
Alejandro Y Shinko
Costa Z Figeroa
Nicolas I Ruta
Clifford L Schemmer
Wickens E Flosi
Mujtaba F Malet
Mayumi A Tollner
Munro Q Inouye
Kaitlin N Rim
Mujtaba C Iturbide
Nicolas E Malet
Leon U Gillian
Alejandro M Kusko
Morrow Y Bolognia
Jefferson D Caudy
Nicolas H Bowley
Sinclair L Stenseth
Stacey P Doe
Leja Z Figeroa
Julie N Malet
Ivar S Amigon
Smith G Kusko
Emily X Vocelka
Cody O Tollner
Wickens Q Figeroa
Izzy I Glick
Chavez M Schemmer
Morrow G Doe
Stacey R Royster
Faith I Ostrosky
Octavia U Stenseth
Jefferson O Caldarera
Aditya M Amigon
Emily F Garufi
Adams I Gaucho
Mayumi Q Vocelka
Johnson G Bolognia
Mayumi M Royster
Murillo J Nestle
Clifford Q Whobrey
Faith E Oldroyd
Smith K Ferencz
Ricardo I Stenseth
Ashley R Tollner
IdCountryDate
1000Italy2026-08-19
1001Japan2026-08-15
1002Japan2026-08-27
1003Japan2026-08-28
1004Russia2026-08-30
1005United Kingdom2026-08-06
1006Argentina2026-08-10
1007Germany2026-08-18
1008Italy2026-08-19
1009Spain2026-08-23
1010France2026-08-20
1011Japan2026-08-13
1012India2026-08-11
1013Japan2026-08-25
1014Australia2026-08-20
1015India2026-08-17
1016Canada2026-08-28
1017Germany2026-08-16
1018Germany2026-08-03
1019Australia2026-09-01
1020Germany2026-08-04
1021Japan2026-08-12
1022Japan2026-08-16
1023France2026-08-16
1024Australia2026-08-11
1025India2026-08-13
1026Japan2026-08-21
1027Argentina2026-08-07
1028Spain2026-08-22
1029India2026-08-14
1030India2026-08-11
1031Canada2026-08-15
1032Brazil2026-08-31
1033United Kingdom2026-08-28
1034Australia2026-08-28
1035Australia2026-08-25
1036Canada2026-08-10
1037Canada2026-08-24
1038India2026-08-11
1039Australia2026-08-20
1040Spain2026-08-03
1041Spain2026-08-25
1042France2026-08-25
1043Brazil2026-08-15
1044India2026-08-20
1045India2026-08-16
1046Argentina2026-09-01
1047India2026-08-24
1048Canada2026-08-17
1049United Kingdom2026-08-25

On-Demand Data

NameIdCountryDate
Deepesh Z Butt1000Canada2026-08-10
Darci F Kusko1001Canada2026-08-11
David Q Doe1002Germany2026-08-26
Darci H Gaucho1003Russia2026-08-20
Cody K Chui1004Australia2026-08-11
Maria L Doe1005Canada2026-08-22
Claire Y Marrier1006France2026-08-17
Adams L Tollner1007Australia2026-08-12
Tony S Paprocki1008France2026-08-13
Murillo J Venere1009Russia2026-08-04
Claire Q Glick1010Argentina2026-08-26
Rodrigues K Oldroyd1011Spain2026-08-31
Wickens P Kolmetz1012Brazil2026-08-17
Jefferson H Poquette1013Australia2026-08-15
Antonio B Saylors1014Canada2026-08-13
Clifford O Whobrey1015Italy2026-08-23
Kadeem Y Nicka1016Germany2026-08-18
Chavez U Doe1017Argentina2026-08-07
Jeanfrancois T Shinko1018Australia2026-08-31
Silvio Z Oldroyd1019Argentina2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin L FigeroaGermanyStephen Shaw RENEWAL
Jeanfrancois P KuskoCanadaIvan Magalhaes RENEWAL
Mayumi F AlbaresSpainXuxue Feng NEW
Morrow U BowleySpainOnyama Limba QUALIFIED
Aruna D FigeroaIndiaBernardo Dominic NEGOTIATION
Octavia A PoquetteRussiaBernardo Dominic NEW
Aika W StensethGermanyBernardo Dominic NEW
Arvin F ButtRussiaBernardo Dominic QUALIFIED
Jefferson M SergiCanadaElwin Sharvill NEGOTIATION
Emily H DarakjyCanadaAmy Elsner UNQUALIFIED
Murillo I MarrierBrazilIoni Bowcher PROPOSAL
Misaki Q MaletBrazilAmy Elsner NEW
Costa H GillianFranceOnyama Limba UNQUALIFIED
Silvio V WieserSpainIoni Bowcher NEGOTIATION
Kaitlin M VenereItalyAnna Fali UNQUALIFIED
Claire S StensethCanadaOnyama Limba UNQUALIFIED
Aditya J StockhamIndiaXuxue Feng RENEWAL
Stacey Z BologniaRussiaBernardo Dominic NEW
Stacey K CampainGermanyStephen Shaw QUALIFIED
Johnson N AmigonBrazilIoni Bowcher NEW
Jefferson Y MaletIndiaIvan Magalhaes PROPOSAL
Claire J SlusarskiItalyIvan Magalhaes RENEWAL
Sinclair E WhobreyGermanyAmy Elsner NEW
Deepesh G MorascaSpainXuxue Feng PROPOSAL
Julie B ButtIndiaIvan Magalhaes QUALIFIED
Munro J NestleAustraliaIoni Bowcher RENEWAL
Arvin L GlickArgentinaIoni Bowcher UNQUALIFIED
Julie Y NestleSpainAnna Fali NEGOTIATION
Johnson G BowleyBrazilIoni Bowcher NEGOTIATION
Clifford B WieserRussiaIoni Bowcher NEW
Stacey F RutaFranceAsiya Javayant PROPOSAL
Octavia T SchemmerGermanyAsiya Javayant NEW
Aruna Q InouyeRussiaOnyama Limba UNQUALIFIED
Mayumi K AlbaresFranceStephen Shaw PROPOSAL
Wickens C RimAustraliaAsiya Javayant UNQUALIFIED
Aruna G FigeroaArgentinaElwin Sharvill RENEWAL
Leon G GlickSpainIoni Bowcher NEGOTIATION
Jefferson W StockhamIndiaAnna Fali QUALIFIED
Adams D OstroskyFranceIvan Magalhaes RENEWAL
Wickens T GlickItalyOnyama Limba QUALIFIED

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