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
Costa Z FlosiIndiaBernardo Dominic PROPOSAL
Cody D StensethUnited KingdomAnna Fali NEW
Sinclair D RulapaughFranceAsiya Javayant PROPOSAL
Claire T OldroydAustraliaAsiya Javayant NEGOTIATION
Darci H FlosiRussiaAmy Elsner NEW
Leon M WhobreyIndiaIoni Bowcher PROPOSAL
Murillo J SergiGermanyAsiya Javayant QUALIFIED
Stacey Y RoysterSpainOnyama Limba QUALIFIED
Jones W BriddickUnited KingdomAsiya Javayant PROPOSAL
Francesco A ButtArgentinaAnna Fali NEW
Johnson V DarakjyIndiaIvan Magalhaes RENEWAL
Ivar F PoquetteAustraliaAsiya Javayant PROPOSAL
Leon I MorascaGermanyAsiya Javayant UNQUALIFIED
Jefferson W AlbaresArgentinaAmy Elsner RENEWAL
Kadeem J RimGermanyIoni Bowcher NEGOTIATION
Ashley D SchemmerSpainElwin Sharvill PROPOSAL
Adams W ButtRussiaAmy Elsner NEGOTIATION
Claire L SaylorsRussiaIoni Bowcher UNQUALIFIED
Salvatore X FigeroaIndiaAsiya Javayant NEGOTIATION
Maria W WhobreyUnited KingdomIvan Magalhaes NEW
Francesco R MaletRussiaBernardo Dominic NEW
Claire V BowleyBrazilAmy Elsner PROPOSAL
Claire H RimFranceIvan Magalhaes NEGOTIATION
Ricardo R GarufiIndiaElwin Sharvill QUALIFIED
Darci X CaudyJapanElwin Sharvill QUALIFIED
Greenwood K KolmetzCanadaAsiya Javayant RENEWAL
Cody Q StensethRussiaAsiya Javayant UNQUALIFIED
Arvin K MacleadCanadaBernardo Dominic PROPOSAL
Silvio N BriddickAustraliaOnyama Limba NEW
Ivar P GauchoItalyXuxue Feng PROPOSAL
Arvin F CaudyItalyIvan Magalhaes QUALIFIED
Nicolas Z FigeroaIndiaOnyama Limba NEW
Munro Q SaylorsAustraliaIvan Magalhaes NEW
Stacey Y NickaGermanyXuxue Feng QUALIFIED
Maisha R KuskoSpainBernardo Dominic NEW
Smith T RoysterFranceStephen Shaw NEW
Maisha K SlusarskiRussiaOnyama Limba QUALIFIED
Aditya T MorascaUnited KingdomElwin Sharvill PROPOSAL
Mujtaba J CampainArgentinaIoni Bowcher QUALIFIED
Darci N StensethBrazilStephen Shaw NEW
Costa T StockhamArgentinaElwin Sharvill QUALIFIED
Darci G SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Izzy K OstroskyGermanyBernardo Dominic UNQUALIFIED
Wickens R FollerBrazilIvan Magalhaes NEGOTIATION
Tony Z PoquetteJapanStephen Shaw UNQUALIFIED
Izzy Q GarufiItalyIoni Bowcher RENEWAL
Faith Q GlickGermanyAsiya Javayant QUALIFIED
Kadeem J InouyeIndiaIvan Magalhaes QUALIFIED
Jennifer G DilliardAustraliaAnna Fali NEGOTIATION
Maria O MarrierGermanyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Smith U RimRussiaStephen Shaw NEW
Wickens V DoeJapanElwin Sharvill NEW
Aditya C ShinkoFranceAnna Fali NEGOTIATION
Darci T InouyeJapanAmy Elsner NEGOTIATION
Arvin L MaletRussiaElwin Sharvill NEGOTIATION
Maisha T MaletFranceXuxue Feng UNQUALIFIED
Sinclair V SlusarskiItalyBernardo Dominic UNQUALIFIED
Adams C DilliardGermanyStephen Shaw PROPOSAL
Stacey N CampainJapanElwin Sharvill PROPOSAL
Salvatore A TollnerArgentinaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Q CaldareraAustralia2026-07-11Buckley Miller Wright NEW55Ivan Magalhaes
1001Juan G ButtSpain2026-06-28Rangoni Of Florence QUALIFIED0Stephen Shaw
1002Izzy K BriddickSpain2026-07-02Chanay, Jeffrey A Esq RENEWAL85Amy Elsner
1003Salvatore F FlosiGermany2026-06-28Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1004Aika D BologniaBrazil2026-06-28Morlong Associates NEGOTIATION18Asiya Javayant
1005Adams Y CampainGermany2026-07-10Rangoni Of Florence QUALIFIED95Ivan Magalhaes
1006Deepesh D BologniaIndia2026-07-13Chemel, James L Cpa NEGOTIATION25Anna Fali
1007Stacey O SlusarskiFrance2026-07-16Dorl, James J Esq RENEWAL10Amy Elsner
1008Johnson T RimGermany2026-07-11Chapman, Ross E Esq UNQUALIFIED12Stephen Shaw
1009Aika C KolmetzSpain2026-07-15Benton, John B Jr UNQUALIFIED91Asiya Javayant
1010Leon X FerenczBrazil2026-06-23King, Christopher A Esq PROPOSAL67Asiya Javayant
1011Maisha R StensethGermany2026-07-03Truhlar And Truhlar Attys RENEWAL33Xuxue Feng
1012Kaitlin A KolmetzRussia2026-06-20Printing Dimensions RENEWAL15Asiya Javayant
1013Sinclair E GlickIndia2026-07-08Morlong Associates QUALIFIED58Ioni Bowcher
1014James K FollerRussia2026-06-26Feiner Bros NEW55Onyama Limba
1015Alejandro V RimIndia2026-07-09Rangoni Of Florence RENEWAL95Ioni Bowcher
1016Izzy G MarrierIndia2026-07-01Rangoni Of Florence NEGOTIATION16Elwin Sharvill
1017Arvin F BriddickJapan2026-07-06Benton, John B Jr PROPOSAL64Ioni Bowcher
1018Darci C RimRussia2026-06-18Feltz Printing Service NEW66Ivan Magalhaes
1019Kadeem W InouyeSpain2026-07-16Commercial Press NEW40Stephen Shaw
1020Izzy Z DoeGermany2026-07-14Buckley Miller Wright RENEWAL10Anna Fali
1021Misaki E ButtJapan2026-06-25King, Christopher A Esq UNQUALIFIED57Stephen Shaw
1022Ashley L WieserJapan2026-06-27Buckley Miller Wright QUALIFIED50Elwin Sharvill
1023Emily C NestleIndia2026-07-10King, Christopher A Esq PROPOSAL65Elwin Sharvill
1024Munro S SaylorsUnited Kingdom2026-06-30Chapman, Ross E Esq UNQUALIFIED8Amy Elsner
1025David W PaprockiCanada2026-07-15Buckley Miller Wright UNQUALIFIED23Asiya Javayant
1026Kadeem T GillianRussia2026-07-14Morlong Associates UNQUALIFIED20Onyama Limba
1027Juan W NestleJapan2026-07-05Rousseaux, Michael Esq UNQUALIFIED91Anna Fali
1028Julie I CaudyIndia2026-07-04Chanay, Jeffrey A Esq PROPOSAL90Elwin Sharvill
1029Aika X OldroydIndia2026-07-06Truhlar And Truhlar Attys RENEWAL89Anna Fali
1030Izzy M PaprockiArgentina2026-07-03King, Christopher A Esq RENEWAL45Amy Elsner
1031James G NestleFrance2026-06-26Chemel, James L Cpa QUALIFIED19Bernardo Dominic
1032Morrow Z ChuiArgentina2026-06-20Chapman, Ross E Esq RENEWAL16Amy Elsner
1033Juan X PerinGermany2026-07-08Feltz Printing Service RENEWAL82Asiya Javayant
1034Wickens I PoquetteBrazil2026-07-13Feltz Printing Service QUALIFIED71Anna Fali
1035Isabel Z GarufiSpain2026-07-01Rousseaux, Michael Esq RENEWAL17Ivan Magalhaes
1036Sinclair S IturbideUnited Kingdom2026-07-02Benton, John B Jr NEGOTIATION2Amy Elsner
1037Sinclair M WhobreyRussia2026-07-06Rangoni Of Florence UNQUALIFIED14Bernardo Dominic
1038Cody E MaletUnited Kingdom2026-06-27King, Christopher A Esq NEW44Asiya Javayant
1039Mujtaba G RoysterJapan2026-06-22Buckley Miller Wright NEGOTIATION90Elwin Sharvill
1040Wickens K MacleadSpain2026-07-01Benton, John B Jr UNQUALIFIED86Stephen Shaw
1041Jeanfrancois V DilliardAustralia2026-06-28Chanay, Jeffrey A Esq RENEWAL6Elwin Sharvill
1042Costa O FollerSpain2026-06-21Feltz Printing Service UNQUALIFIED59Ioni Bowcher
1043Stacey J MacleadUnited Kingdom2026-06-21Commercial Press PROPOSAL38Xuxue Feng
1044Jones H PerinUnited Kingdom2026-07-10Rousseaux, Michael Esq RENEWAL19Elwin Sharvill
1045Kadeem S VenereFrance2026-06-29Morlong Associates PROPOSAL53Elwin Sharvill
1046Chavez K RutaJapan2026-06-18Morlong Associates PROPOSAL21Ivan Magalhaes
1047Greenwood X NickaFrance2026-06-27Morlong Associates RENEWAL35Onyama Limba
1048Maria O RoysterUnited Kingdom2026-07-06Printing Dimensions PROPOSAL33Ivan Magalhaes
1049Aruna K FigeroaSpain2026-06-19Chapman, Ross E Esq QUALIFIED0Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair W KolmetzItalyOnyama Limba NEW
Silvio A BriddickBrazilIvan Magalhaes PROPOSAL
Arvin D MorascaItalyAnna Fali UNQUALIFIED
Faith C WieserIndiaIvan Magalhaes RENEWAL
Munro J NestleItalyStephen Shaw NEGOTIATION
Jennifer Q NestleItalyAmy Elsner RENEWAL
Wickens O WieserItalyAnna Fali NEW
Jennifer J ChuiArgentinaAmy Elsner PROPOSAL
Jefferson W WieserIndiaAmy Elsner PROPOSAL
Octavia P SchemmerItalyBernardo Dominic NEGOTIATION
Maisha X RimIndiaAsiya Javayant NEGOTIATION
Aruna I KolmetzFranceAnna Fali QUALIFIED
Juan D BriddickBrazilIoni Bowcher QUALIFIED
Jefferson K MaletRussiaXuxue Feng QUALIFIED
Aika R SaylorsFranceBernardo Dominic PROPOSAL
Salvatore Z DoeUnited KingdomAnna Fali NEW
Jefferson T AmigonIndiaXuxue Feng UNQUALIFIED
Aika V MaletIndiaAsiya Javayant NEW
James Q MacleadGermanyIoni Bowcher NEW
Rodrigues K WieserRussiaBernardo Dominic QUALIFIED
Ashley D RutaFranceOnyama Limba UNQUALIFIED
David I DarakjyJapanXuxue Feng NEW
Juan M DilliardArgentinaBernardo Dominic QUALIFIED
Faith A PoquetteBrazilOnyama Limba QUALIFIED
Juan G TollnerUnited KingdomIvan Magalhaes NEW
Mayumi P MorascaFranceIvan Magalhaes PROPOSAL
Jones U NickaCanadaAmy Elsner NEGOTIATION
David D FollerSpainStephen Shaw NEGOTIATION
Wickens Z GarufiSpainXuxue Feng NEGOTIATION
Aika C CampainAustraliaAsiya Javayant PROPOSAL
Kadeem N FlosiBrazilElwin Sharvill RENEWAL
Alejandro Q DilliardItalyIvan Magalhaes PROPOSAL
Leja N ShinkoIndiaBernardo Dominic RENEWAL
Murillo W MacleadItalyOnyama Limba UNQUALIFIED
Clifford G ChuiJapanOnyama Limba NEW
Munro N AmigonGermanyIoni Bowcher PROPOSAL
Smith Q StensethIndiaAsiya Javayant PROPOSAL
Darci T InouyeJapanXuxue Feng PROPOSAL
Octavia E MaletRussiaAmy Elsner RENEWAL
Isabel U SchemmerIndiaXuxue Feng RENEWAL
Jeanfrancois C ShinkoAustraliaAsiya Javayant NEW
Mujtaba U DarakjyJapanIvan Magalhaes RENEWAL
Nicolas J DoeFranceAsiya Javayant PROPOSAL
Wickens S GlickJapanElwin Sharvill NEGOTIATION
Tony Y MorascaGermanyElwin Sharvill PROPOSAL
Antonio L SlusarskiGermanyAsiya Javayant NEGOTIATION
Ashley F FollerRussiaAsiya Javayant UNQUALIFIED
Leon U OstroskyIndiaAsiya Javayant NEW
Aika O InouyeArgentinaOnyama Limba QUALIFIED
Francesco U FerenczAustraliaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Emily J Dilliard
Kadeem Y Schemmer
Morrow T Chui
Stacey W Tollner
Octavia M Paprocki
Cody H Figeroa
Sinclair Q Maclead
Antonio D Schemmer
Salvatore H Whobrey
Francesco Q Waycott
Johnson M Saylors
Jennifer Q Marrier
Smith Y Ferencz
Leon G Caldarera
Salvatore J Butt
Antonio F Gillian
Mujtaba C Figeroa
Jefferson J Venere
Wickens C Nicka
Tony Q Glick
Wickens F Albares
Wickens W Doe
Morrow F Darakjy
Emily U Slusarski
Nicolas Q Kolmetz
Clifford D Wieser
Clifford Q Ostrosky
Mayumi X Figeroa
Deepesh U Gaucho
Juan C Foller
Jefferson S Gaucho
Maria M Schemmer
Octavia O Waycott
Johnson K Caldarera
Juan S Nestle
Darci O Stockham
Leon G Foller
Smith J Saylors
Antonio Q Schemmer
Darci E Oldroyd
Faith S Royster
Maria W Marrier
Izzy Q Kusko
Rodrigues S Shinko
Greenwood P Sergi
Antonio J Oldroyd
Salvatore N Caldarera
Jeanfrancois W Gaucho
Mujtaba O Morasca
Murillo T Stockham
IdCountryDate
1000Italy2026-06-22
1001Italy2026-06-22
1002Spain2026-07-03
1003Germany2026-06-18
1004Brazil2026-07-12
1005Russia2026-07-14
1006Argentina2026-07-17
1007Brazil2026-06-29
1008Russia2026-07-12
1009Argentina2026-07-11
1010Russia2026-06-21
1011Japan2026-07-02
1012Brazil2026-07-17
1013France2026-07-09
1014Italy2026-07-02
1015Brazil2026-07-09
1016Brazil2026-06-20
1017Japan2026-07-05
1018India2026-07-16
1019Japan2026-07-08
1020Russia2026-07-16
1021United Kingdom2026-06-19
1022Australia2026-07-13
1023Australia2026-07-12
1024France2026-06-23
1025France2026-07-03
1026India2026-07-10
1027Brazil2026-06-27
1028Japan2026-07-13
1029Canada2026-07-02
1030Argentina2026-06-25
1031Spain2026-06-18
1032India2026-07-02
1033Japan2026-07-08
1034Canada2026-06-21
1035France2026-07-15
1036Japan2026-07-03
1037Canada2026-06-24
1038Argentina2026-07-07
1039Russia2026-07-01
1040Italy2026-06-19
1041Japan2026-06-24
1042United Kingdom2026-06-28
1043France2026-07-08
1044Russia2026-06-28
1045Italy2026-07-07
1046Russia2026-06-22
1047Italy2026-06-21
1048Canada2026-07-17
1049France2026-07-01

On-Demand Data

NameIdCountryDate
Smith X Dilliard1000Russia2026-07-04
Francesco F Ferencz1001Italy2026-07-12
Sinclair N Kusko1002Argentina2026-06-20
Claire E Bowley1003Italy2026-06-21
Aruna N Rim1004Canada2026-07-01
Claire B Amigon1005France2026-07-16
Clifford J Marrier1006United Kingdom2026-07-09
Jones Y Kusko1007India2026-06-27
Maisha S Amigon1008India2026-07-03
Leon Y Tollner1009Russia2026-07-12
Deepesh I Darakjy1010France2026-06-26
Stacey D Malet1011Russia2026-07-10
Aruna H Bolognia1012Spain2026-07-11
Jones V Chui1013Brazil2026-06-20
Aruna B Dilliard1014Germany2026-07-10
Tony S Malet1015France2026-06-23
Julie H Inouye1016Australia2026-06-26
Tony D Doe1017Japan2026-07-08
David B Bowley1018India2026-06-19
Nicolas C Marrier1019Argentina2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem N SlusarskiSpainXuxue Feng UNQUALIFIED
Salvatore Q MorascaIndiaBernardo Dominic RENEWAL
Rodrigues B DarakjyCanadaIoni Bowcher RENEWAL
Johnson F BriddickIndiaIoni Bowcher RENEWAL
Sinclair B MorascaItalyIvan Magalhaes NEGOTIATION
Alejandro Z OstroskyRussiaAnna Fali QUALIFIED
Izzy W DoeIndiaBernardo Dominic PROPOSAL
Johnson X MaletArgentinaElwin Sharvill QUALIFIED
Deepesh C GarufiUnited KingdomBernardo Dominic QUALIFIED
Francesco C DilliardArgentinaAnna Fali QUALIFIED
James S MaletRussiaXuxue Feng QUALIFIED
Clifford M FollerArgentinaBernardo Dominic NEGOTIATION
Chavez V RoysterGermanyOnyama Limba UNQUALIFIED
Sinclair C OstroskySpainOnyama Limba UNQUALIFIED
Claire S FerenczIndiaOnyama Limba QUALIFIED
Murillo E BriddickUnited KingdomIvan Magalhaes RENEWAL
Kadeem H VenereRussiaStephen Shaw QUALIFIED
Clifford M KuskoUnited KingdomXuxue Feng UNQUALIFIED
Greenwood A CaudyArgentinaAnna Fali PROPOSAL
Ivar S StockhamFranceAnna Fali NEGOTIATION
Aika K InouyeAustraliaStephen Shaw RENEWAL
James R FerenczArgentinaStephen Shaw RENEWAL
Maisha E OstroskySpainBernardo Dominic QUALIFIED
Octavia M GarufiGermanyElwin Sharvill PROPOSAL
Isabel N OstroskyUnited KingdomAsiya Javayant NEW
David S PaprockiGermanyIvan Magalhaes PROPOSAL
Julie U SchemmerAustraliaOnyama Limba NEW
Leon L MacleadGermanyIoni Bowcher NEGOTIATION
Jefferson H AlbaresGermanyStephen Shaw RENEWAL
Greenwood X VenereJapanAmy Elsner PROPOSAL
Rodrigues B SlusarskiCanadaOnyama Limba UNQUALIFIED
Aruna Z ChuiItalyIvan Magalhaes NEW
Jeanfrancois D MaletRussiaXuxue Feng UNQUALIFIED
Murillo S WhobreyArgentinaAmy Elsner UNQUALIFIED
Adams P GauchoJapanAnna Fali QUALIFIED
Mayumi K FigeroaItalyBernardo Dominic NEW
Rodrigues G StensethCanadaIoni Bowcher UNQUALIFIED
Leja M OstroskyCanadaAnna Fali NEW
Octavia A WaycottItalyIoni Bowcher QUALIFIED
Emily O SergiFranceAsiya Javayant 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>