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
Johnson D AmigonCanadaXuxue Feng UNQUALIFIED
Izzy G ButtIndiaStephen Shaw RENEWAL
Stacey T OstroskyGermanyBernardo Dominic NEW
Chavez F VenereItalyElwin Sharvill NEGOTIATION
Clifford O StensethCanadaOnyama Limba NEW
Julie L CampainIndiaBernardo Dominic NEGOTIATION
Jones W KolmetzItalyElwin Sharvill PROPOSAL
Chavez H AlbaresRussiaOnyama Limba RENEWAL
Juan S FlosiSpainOnyama Limba NEW
Mayumi E FigeroaItalyIoni Bowcher QUALIFIED
Leon V TollnerAustraliaAnna Fali NEW
Francesco U ButtAustraliaIvan Magalhaes NEW
Munro P BowleyFranceElwin Sharvill NEW
Johnson U BriddickAustraliaElwin Sharvill UNQUALIFIED
Jefferson O OstroskyJapanBernardo Dominic QUALIFIED
Maria Q MaletBrazilStephen Shaw NEW
Aruna L ShinkoArgentinaStephen Shaw NEW
Aditya X MaletJapanElwin Sharvill PROPOSAL
Adams P FlosiAustraliaIoni Bowcher UNQUALIFIED
Maisha V AlbaresJapanIoni Bowcher QUALIFIED
Mujtaba T AmigonFranceAmy Elsner PROPOSAL
Maisha N DoeIndiaOnyama Limba NEGOTIATION
Morrow R RoysterFranceBernardo Dominic RENEWAL
Jones C MarrierIndiaOnyama Limba NEW
Ricardo A KuskoBrazilAsiya Javayant RENEWAL
Adams M FollerUnited KingdomXuxue Feng PROPOSAL
Misaki M StockhamBrazilElwin Sharvill NEW
Ricardo D VocelkaItalyElwin Sharvill NEGOTIATION
Maisha E GauchoUnited KingdomAnna Fali QUALIFIED
Antonio J PaprockiArgentinaIoni Bowcher PROPOSAL
Arvin Z GillianBrazilXuxue Feng UNQUALIFIED
Isabel A FerenczItalyAmy Elsner PROPOSAL
Deepesh A PaprockiFranceAsiya Javayant NEGOTIATION
Clifford I ShinkoFranceStephen Shaw NEW
Johnson M InouyeItalyIvan Magalhaes PROPOSAL
Clifford N SaylorsUnited KingdomBernardo Dominic QUALIFIED
Mayumi X KuskoArgentinaAmy Elsner RENEWAL
Mayumi Z SchemmerSpainAnna Fali UNQUALIFIED
Adams E StockhamCanadaXuxue Feng NEW
Silvio Y WaycottFranceBernardo Dominic QUALIFIED
Silvio L BologniaJapanAsiya Javayant RENEWAL
Adams K StensethItalyAnna Fali NEGOTIATION
Rodrigues F SchemmerBrazilIoni Bowcher PROPOSAL
Mayumi B IturbideJapanAnna Fali RENEWAL
Emily X RimSpainAsiya Javayant UNQUALIFIED
Jeanfrancois L KuskoIndiaElwin Sharvill UNQUALIFIED
Alejandro Y KolmetzIndiaBernardo Dominic UNQUALIFIED
Claire X GarufiBrazilBernardo Dominic NEGOTIATION
Kadeem I RoysterSpainElwin Sharvill NEGOTIATION
Deepesh V SaylorsArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba T WaycottCanadaOnyama Limba NEGOTIATION
Maria I DilliardCanadaOnyama Limba NEW
Ricardo A DilliardGermanyOnyama Limba RENEWAL
Murillo R GauchoItalyBernardo Dominic UNQUALIFIED
Maisha H MaletItalyAmy Elsner QUALIFIED
Smith F BologniaSpainAnna Fali NEGOTIATION
Francesco Z CaldareraItalyIoni Bowcher NEGOTIATION
Tony J FerenczFranceIvan Magalhaes RENEWAL
Jefferson G MaletRussiaOnyama Limba RENEWAL
Johnson N CampainAustraliaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna B FollerJapan2026-08-06Truhlar And Truhlar Attys PROPOSAL66Stephen Shaw
1001Rodrigues B FigeroaUnited Kingdom2026-07-28Benton, John B Jr UNQUALIFIED8Xuxue Feng
1002David G WieserSpain2026-07-12Chanay, Jeffrey A Esq NEGOTIATION66Xuxue Feng
1003Faith P NestleRussia2026-07-18King, Christopher A Esq QUALIFIED2Elwin Sharvill
1004Rodrigues D ChuiUnited Kingdom2026-07-13Commercial Press NEW60Xuxue Feng
1005Munro S SchemmerArgentina2026-08-05Truhlar And Truhlar Attys RENEWAL47Xuxue Feng
1006Deepesh Y MaletAustralia2026-07-14Truhlar And Truhlar Attys QUALIFIED48Xuxue Feng
1007Murillo J DarakjyRussia2026-07-24Benton, John B Jr PROPOSAL67Bernardo Dominic
1008Alejandro I GarufiFrance2026-07-23Feiner Bros QUALIFIED68Ivan Magalhaes
1009Misaki X PerinAustralia2026-08-01Chanay, Jeffrey A Esq NEW1Anna Fali
1010Murillo E MaletFrance2026-08-02Truhlar And Truhlar Attys NEGOTIATION17Bernardo Dominic
1011Wickens K CaudyCanada2026-07-28Rangoni Of Florence NEW98Amy Elsner
1012Aika N CaudyRussia2026-08-01Truhlar And Truhlar Attys UNQUALIFIED27Anna Fali
1013Adams R FlosiArgentina2026-07-20Chemel, James L Cpa NEW29Elwin Sharvill
1014Smith E MaletIndia2026-07-18Dorl, James J Esq UNQUALIFIED38Onyama Limba
1015Silvio H VocelkaRussia2026-07-25Commercial Press QUALIFIED36Stephen Shaw
1016Rodrigues G DoeItaly2026-07-19Chapman, Ross E Esq QUALIFIED95Stephen Shaw
1017Jennifer A SlusarskiBrazil2026-07-09Truhlar And Truhlar Attys NEW84Onyama Limba
1018Morrow N AmigonRussia2026-07-25Dorl, James J Esq UNQUALIFIED43Anna Fali
1019Costa I ButtCanada2026-07-18King, Christopher A Esq UNQUALIFIED70Elwin Sharvill
1020Mayumi F WieserGermany2026-08-06Morlong Associates QUALIFIED78Bernardo Dominic
1021Smith X DoeUnited Kingdom2026-08-05Feltz Printing Service NEW84Stephen Shaw
1022Adams M WieserSpain2026-07-15Commercial Press NEW43Asiya Javayant
1023Wickens V GarufiItaly2026-07-09Truhlar And Truhlar Attys NEGOTIATION89Stephen Shaw
1024Maisha H MacleadRussia2026-08-01Chemel, James L Cpa NEGOTIATION82Ivan Magalhaes
1025Kadeem O SaylorsIndia2026-07-29Rousseaux, Michael Esq NEW81Amy Elsner
1026Maisha J RulapaughItaly2026-07-14Printing Dimensions NEW75Stephen Shaw
1027Alejandro Q RimUnited Kingdom2026-08-03Rangoni Of Florence QUALIFIED65Amy Elsner
1028Octavia C MorascaCanada2026-08-02Dorl, James J Esq NEGOTIATION13Ivan Magalhaes
1029Antonio Q DoeBrazil2026-07-28Truhlar And Truhlar Attys QUALIFIED97Ioni Bowcher
1030Darci C FollerCanada2026-08-03Rousseaux, Michael Esq PROPOSAL86Anna Fali
1031Silvio G ButtItaly2026-08-01Chanay, Jeffrey A Esq QUALIFIED52Ioni Bowcher
1032Tony M BowleyUnited Kingdom2026-07-08Commercial Press RENEWAL45Asiya Javayant
1033Mayumi Y KuskoSpain2026-07-12Benton, John B Jr UNQUALIFIED54Ivan Magalhaes
1034Adams P SchemmerRussia2026-07-25Dorl, James J Esq NEGOTIATION32Elwin Sharvill
1035Francesco A BologniaCanada2026-08-02Benton, John B Jr NEW40Anna Fali
1036Jefferson A NickaSpain2026-07-12Morlong Associates QUALIFIED8Ivan Magalhaes
1037Greenwood T MorascaGermany2026-07-25Buckley Miller Wright NEW18Ioni Bowcher
1038Tony P MacleadRussia2026-07-11King, Christopher A Esq QUALIFIED78Ivan Magalhaes
1039Jeanfrancois M AmigonSpain2026-07-21King, Christopher A Esq NEW20Asiya Javayant
1040Deepesh Z PoquetteItaly2026-07-14Benton, John B Jr RENEWAL17Ioni Bowcher
1041Murillo T WhobreyGermany2026-07-31Feiner Bros QUALIFIED30Anna Fali
1042Mujtaba A MorascaCanada2026-07-25Rangoni Of Florence NEW89Elwin Sharvill
1043Jennifer Q BriddickBrazil2026-07-29Rangoni Of Florence NEGOTIATION19Asiya Javayant
1044David Z MacleadIndia2026-07-16Feiner Bros QUALIFIED91Bernardo Dominic
1045Isabel R BowleyCanada2026-07-31Chapman, Ross E Esq QUALIFIED9Elwin Sharvill
1046Ricardo C MaletFrance2026-07-12Morlong Associates UNQUALIFIED33Asiya Javayant
1047Arvin P NestleRussia2026-07-28Truhlar And Truhlar Attys RENEWAL91Stephen Shaw
1048Cody C CampainJapan2026-07-14Dorl, James J Esq QUALIFIED35Xuxue Feng
1049Maria C BowleyCanada2026-08-03Feiner Bros PROPOSAL21Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Murillo U WaycottFranceBernardo Dominic QUALIFIED
Cody V NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Juan F IturbideAustraliaIvan Magalhaes PROPOSAL
Julie N CaldareraGermanyStephen Shaw NEW
Ashley B BowleyBrazilOnyama Limba NEGOTIATION
Juan U BologniaArgentinaAmy Elsner NEW
Nicolas E GauchoCanadaBernardo Dominic PROPOSAL
Isabel B SlusarskiGermanyAmy Elsner NEGOTIATION
Smith B BriddickArgentinaIoni Bowcher PROPOSAL
Deepesh T OstroskyArgentinaAsiya Javayant QUALIFIED
Ivar U DoeAustraliaIoni Bowcher QUALIFIED
Mujtaba Q DoeRussiaIvan Magalhaes PROPOSAL
Mujtaba A KuskoIndiaAnna Fali RENEWAL
Johnson P IturbideArgentinaIoni Bowcher NEW
Faith C WaycottGermanyBernardo Dominic PROPOSAL
Aruna S NickaSpainIoni Bowcher UNQUALIFIED
Arvin S PerinAustraliaStephen Shaw RENEWAL
Stacey B PerinCanadaAnna Fali NEW
Silvio P DarakjyRussiaElwin Sharvill PROPOSAL
Ashley L MarrierSpainAmy Elsner NEGOTIATION
Jennifer M PoquetteArgentinaStephen Shaw QUALIFIED
Ashley J RoysterGermanyAsiya Javayant PROPOSAL
Rodrigues M PoquetteRussiaIoni Bowcher NEW
Ricardo J PaprockiAustraliaXuxue Feng RENEWAL
Alejandro V MacleadCanadaStephen Shaw NEW
Izzy F PaprockiAustraliaXuxue Feng PROPOSAL
Jennifer T PoquetteArgentinaAsiya Javayant RENEWAL
Antonio Z GlickJapanElwin Sharvill NEW
Darci O GauchoCanadaElwin Sharvill NEW
Aika O BowleySpainXuxue Feng PROPOSAL
Wickens T DilliardGermanyAmy Elsner UNQUALIFIED
Salvatore L DoeGermanyElwin Sharvill NEGOTIATION
Jeanfrancois E SergiFranceAmy Elsner NEW
Maria J FigeroaFranceElwin Sharvill UNQUALIFIED
Mayumi F WieserIndiaIoni Bowcher NEGOTIATION
Morrow F IturbideBrazilOnyama Limba RENEWAL
Emily C BriddickArgentinaAsiya Javayant QUALIFIED
Alejandro P SchemmerJapanIvan Magalhaes UNQUALIFIED
Alejandro C GarufiCanadaAmy Elsner NEGOTIATION
Munro B GarufiSpainStephen Shaw NEW
Darci V CaudyIndiaElwin Sharvill NEGOTIATION
Deepesh K MaletArgentinaIoni Bowcher NEW
Smith F FigeroaBrazilIvan Magalhaes NEGOTIATION
Leja O GarufiSpainIoni Bowcher NEGOTIATION
Tony O ShinkoGermanyAsiya Javayant NEW
Silvio A GlickFranceIvan Magalhaes UNQUALIFIED
Murillo B CaudyIndiaBernardo Dominic RENEWAL
David L RulapaughSpainAnna Fali PROPOSAL
David V MacleadGermanyXuxue Feng PROPOSAL
Leon R InouyeAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Kaitlin J Darakjy
Maria K Inouye
Rodrigues Z Perin
Deepesh H Tollner
Smith J Malet
Mayumi W Inouye
Octavia K Poquette
Silvio O Schemmer
Leja B Malet
Alejandro H Gillian
Chavez P Malet
Julie V Venere
Stacey X Ferencz
Deepesh A Gillian
Deepesh I Kusko
Chavez V Darakjy
Clifford X Albares
Kadeem G Briddick
Johnson S Waycott
Arvin A Doe
Morrow U Rulapaugh
Deepesh S Saylors
Kaitlin W Iturbide
Greenwood P Bolognia
Claire V Campain
Isabel L Rulapaugh
Misaki O Caldarera
Salvatore V Doe
Octavia K Kusko
Chavez Q Whobrey
Cody A Ostrosky
Tony E Morasca
Adams Z Paprocki
Claire N Venere
Maria P Nicka
Isabel I Garufi
Claire P Saylors
Ivar K Rim
Munro K Malet
Maisha X Bowley
Mayumi W Ostrosky
Faith H Rim
Stacey B Flosi
Costa M Saylors
Salvatore X Rulapaugh
Leon Y Gaucho
Murillo B Stockham
Izzy F Butt
Chavez X Rim
Wickens E Bolognia
IdCountryDate
1000Japan2026-07-16
1001Canada2026-07-10
1002Argentina2026-07-27
1003Spain2026-07-13
1004Brazil2026-08-04
1005Japan2026-07-27
1006Italy2026-07-17
1007India2026-07-15
1008France2026-08-02
1009Russia2026-07-09
1010Italy2026-07-28
1011United Kingdom2026-07-27
1012India2026-07-21
1013India2026-07-31
1014Spain2026-07-25
1015Brazil2026-08-02
1016France2026-07-26
1017Argentina2026-08-02
1018United Kingdom2026-08-03
1019Spain2026-07-25
1020Canada2026-07-26
1021France2026-07-21
1022Australia2026-07-26
1023India2026-08-01
1024Japan2026-07-15
1025Russia2026-07-24
1026Canada2026-08-02
1027Canada2026-08-04
1028Brazil2026-07-14
1029Australia2026-07-11
1030India2026-07-12
1031Brazil2026-07-09
1032India2026-07-10
1033France2026-07-24
1034Japan2026-07-21
1035India2026-07-18
1036France2026-07-29
1037India2026-07-24
1038Canada2026-07-21
1039Australia2026-07-14
1040Italy2026-07-23
1041India2026-07-24
1042Canada2026-07-21
1043Brazil2026-07-21
1044France2026-07-29
1045Italy2026-07-23
1046France2026-08-04
1047India2026-07-30
1048Italy2026-07-10
1049Canada2026-07-09

On-Demand Data

NameIdCountryDate
Kaitlin E Rim1000Canada2026-08-01
Maria P Gaucho1001Australia2026-07-10
Munro B Nicka1002Japan2026-07-19
Francesco X Slusarski1003Australia2026-07-16
Ivar A Oldroyd1004Japan2026-07-30
Mujtaba J Royster1005Germany2026-07-26
Jennifer B Sergi1006Brazil2026-07-15
Jefferson M Malet1007India2026-07-23
Murillo Y Dilliard1008Brazil2026-08-04
Maria W Campain1009Russia2026-07-22
Ashley D Perin1010Brazil2026-07-16
Octavia E Bolognia1011India2026-07-20
Isabel H Butt1012Spain2026-08-06
Clifford Y Caldarera1013Japan2026-07-16
Murillo O Saylors1014Argentina2026-07-28
Leja P Amigon1015Italy2026-07-08
Smith X Bowley1016United Kingdom2026-08-05
Nicolas X Malet1017Australia2026-07-29
Juan T Nicka1018Australia2026-07-10
Octavia B Doe1019Argentina2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie B AmigonGermanyOnyama Limba RENEWAL
Juan E SchemmerGermanyBernardo Dominic NEGOTIATION
James L MaletIndiaAmy Elsner NEW
Deepesh A ShinkoBrazilStephen Shaw NEW
Deepesh Y SergiCanadaAnna Fali NEW
Faith G KolmetzCanadaBernardo Dominic UNQUALIFIED
Deepesh Z AmigonSpainAsiya Javayant QUALIFIED
Ivar C RutaCanadaAsiya Javayant UNQUALIFIED
Stacey N FigeroaArgentinaAsiya Javayant PROPOSAL
Johnson O VocelkaItalyIvan Magalhaes NEW
Aditya K RutaIndiaStephen Shaw PROPOSAL
Cody N GillianBrazilIoni Bowcher UNQUALIFIED
Morrow L FigeroaBrazilAmy Elsner RENEWAL
Kadeem O BowleyJapanAmy Elsner PROPOSAL
Nicolas Z PoquetteIndiaAsiya Javayant QUALIFIED
Antonio H KuskoBrazilAsiya Javayant RENEWAL
Leja X PoquetteSpainIoni Bowcher NEGOTIATION
Stacey M OldroydFranceXuxue Feng NEGOTIATION
Clifford V FollerItalyXuxue Feng QUALIFIED
Silvio I SergiGermanyAnna Fali NEGOTIATION
Silvio Z MaletUnited KingdomElwin Sharvill NEGOTIATION
Silvio G BriddickAustraliaElwin Sharvill UNQUALIFIED
Aika B SlusarskiArgentinaXuxue Feng UNQUALIFIED
Mujtaba B OstroskyAustraliaOnyama Limba RENEWAL
Jennifer O FerenczIndiaOnyama Limba UNQUALIFIED
Stacey S VocelkaRussiaElwin Sharvill PROPOSAL
Johnson F OldroydCanadaOnyama Limba RENEWAL
Morrow Z MarrierRussiaAsiya Javayant UNQUALIFIED
Ashley U NickaRussiaStephen Shaw NEGOTIATION
Aika M PerinAustraliaIoni Bowcher NEGOTIATION
Jones E GauchoCanadaElwin Sharvill PROPOSAL
Chavez N StockhamFranceAmy Elsner QUALIFIED
Emily H RimArgentinaAmy Elsner NEW
Ricardo C MorascaFranceAnna Fali QUALIFIED
Leon A SergiJapanAmy Elsner NEGOTIATION
Claire S StensethArgentinaOnyama Limba UNQUALIFIED
Greenwood U CaudyFranceStephen Shaw UNQUALIFIED
Jefferson S ChuiBrazilOnyama Limba NEW
Francesco O DarakjyGermanyXuxue Feng RENEWAL
Jones R SaylorsUnited KingdomStephen Shaw 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>