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
Clifford D OstroskyUnited KingdomXuxue Feng QUALIFIED
Maisha W TollnerBrazilIvan Magalhaes NEW
Costa H TollnerArgentinaStephen Shaw NEGOTIATION
Tony K OldroydAustraliaAsiya Javayant NEGOTIATION
Wickens P SergiItalyOnyama Limba QUALIFIED
Mayumi Y PaprockiCanadaAmy Elsner NEGOTIATION
Julie X PerinJapanXuxue Feng QUALIFIED
Smith X BriddickBrazilAmy Elsner PROPOSAL
Aika J GarufiAustraliaStephen Shaw PROPOSAL
Mujtaba X MaletRussiaAmy Elsner RENEWAL
Mayumi G SaylorsBrazilAmy Elsner NEW
Leja Y SlusarskiRussiaStephen Shaw NEGOTIATION
Isabel O NestleFranceIoni Bowcher UNQUALIFIED
Stacey W DoeIndiaAsiya Javayant QUALIFIED
Salvatore S MacleadUnited KingdomOnyama Limba PROPOSAL
Kadeem E GauchoJapanIoni Bowcher NEGOTIATION
Claire A CaudyRussiaIvan Magalhaes NEW
Leja Z BriddickIndiaBernardo Dominic NEGOTIATION
Adams P SergiJapanIvan Magalhaes UNQUALIFIED
Salvatore O CampainSpainOnyama Limba NEGOTIATION
Wickens C FlosiRussiaIoni Bowcher NEGOTIATION
Julie Y CaudyArgentinaAmy Elsner NEW
Kaitlin Q StockhamBrazilAmy Elsner UNQUALIFIED
Mujtaba Z SlusarskiItalyAnna Fali UNQUALIFIED
Ivar V BriddickSpainElwin Sharvill QUALIFIED
Jennifer X KuskoGermanyOnyama Limba UNQUALIFIED
Greenwood B GlickJapanAsiya Javayant NEW
Kadeem Q BologniaArgentinaBernardo Dominic RENEWAL
Cody B GlickIndiaAnna Fali QUALIFIED
Kaitlin P SlusarskiRussiaAnna Fali PROPOSAL
Darci I FigeroaUnited KingdomAmy Elsner RENEWAL
Murillo H MaletFranceOnyama Limba PROPOSAL
Maria P WieserAustraliaIvan Magalhaes NEW
Clifford A FlosiUnited KingdomAmy Elsner NEGOTIATION
Adams K BriddickFranceIvan Magalhaes QUALIFIED
Aruna G PoquetteAustraliaOnyama Limba NEW
Antonio V RimItalyAnna Fali NEGOTIATION
Nicolas E KuskoArgentinaAsiya Javayant NEGOTIATION
Mujtaba C ChuiBrazilIvan Magalhaes UNQUALIFIED
Munro V WaycottCanadaStephen Shaw UNQUALIFIED
Johnson Y KolmetzBrazilAnna Fali RENEWAL
Ricardo E BologniaItalyAnna Fali UNQUALIFIED
Morrow H KuskoUnited KingdomElwin Sharvill PROPOSAL
Isabel I NestleCanadaAmy Elsner NEGOTIATION
Aditya T CaldareraIndiaBernardo Dominic QUALIFIED
Alejandro Z MorascaRussiaIoni Bowcher UNQUALIFIED
Wickens K WaycottGermanyIoni Bowcher NEGOTIATION
Misaki S AlbaresFranceElwin Sharvill NEGOTIATION
Francesco T VocelkaRussiaAnna Fali UNQUALIFIED
Sinclair F MaletItalyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria R ShinkoItalyXuxue Feng RENEWAL
Wickens A FigeroaSpainStephen Shaw NEW
Nicolas D RulapaughAustraliaIoni Bowcher UNQUALIFIED
Ivar H WhobreyArgentinaIoni Bowcher UNQUALIFIED
Munro B KuskoCanadaAsiya Javayant QUALIFIED
Nicolas C FlosiItalyAmy Elsner PROPOSAL
Murillo U KolmetzFranceXuxue Feng RENEWAL
Cody V ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Stacey M StensethRussiaXuxue Feng NEW
Jennifer I GillianFranceIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan A VenereGermany2025-05-11Rousseaux, Michael Esq QUALIFIED0Bernardo Dominic
1001Maisha R RimGermany2025-04-14Rousseaux, Michael Esq RENEWAL68Bernardo Dominic
1002Faith P BriddickFrance2025-04-30Buckley Miller Wright QUALIFIED40Asiya Javayant
1003Misaki Z SlusarskiFrance2025-05-02Commercial Press NEW20Xuxue Feng
1004Smith R ChuiJapan2025-05-01Truhlar And Truhlar Attys QUALIFIED3Bernardo Dominic
1005Ricardo P NestleRussia2025-04-20Morlong Associates QUALIFIED51Bernardo Dominic
1006Aditya Z CaldareraItaly2025-04-28Feiner Bros NEW76Onyama Limba
1007Maisha M SlusarskiFrance2025-05-04Printing Dimensions NEGOTIATION72Ioni Bowcher
1008Salvatore H GillianBrazil2025-04-14Commercial Press PROPOSAL48Ivan Magalhaes
1009Morrow Z VenereCanada2025-04-15Benton, John B Jr QUALIFIED16Ivan Magalhaes
1010Murillo Z PaprockiFrance2025-05-01Truhlar And Truhlar Attys RENEWAL83Bernardo Dominic
1011Claire T DarakjyItaly2025-05-05Truhlar And Truhlar Attys PROPOSAL62Stephen Shaw
1012Izzy F OldroydIndia2025-05-01Truhlar And Truhlar Attys RENEWAL12Stephen Shaw
1013Maria X KuskoIndia2025-05-10King, Christopher A Esq NEGOTIATION50Asiya Javayant
1014Jeanfrancois E CampainGermany2025-05-02King, Christopher A Esq UNQUALIFIED23Elwin Sharvill
1015Murillo H SaylorsCanada2025-04-13Commercial Press RENEWAL79Amy Elsner
1016Tony G MorascaCanada2025-04-30Feltz Printing Service NEW12Elwin Sharvill
1017Izzy U DarakjyJapan2025-05-09Dorl, James J Esq NEW35Ioni Bowcher
1018Arvin S ShinkoBrazil2025-04-18Chemel, James L Cpa PROPOSAL18Amy Elsner
1019Juan J GauchoGermany2025-05-06Chanay, Jeffrey A Esq NEW83Ivan Magalhaes
1020Maisha H FlosiIndia2025-04-24Chanay, Jeffrey A Esq NEGOTIATION15Asiya Javayant
1021Jeanfrancois X SchemmerJapan2025-04-15Benton, John B Jr NEW74Amy Elsner
1022Maria U WaycottGermany2025-04-18Buckley Miller Wright RENEWAL42Onyama Limba
1023Emily V AmigonGermany2025-05-03Feiner Bros NEGOTIATION70Asiya Javayant
1024Kaitlin D PerinBrazil2025-04-29Printing Dimensions NEGOTIATION93Onyama Limba
1025Julie C DoeSpain2025-04-22Printing Dimensions QUALIFIED74Elwin Sharvill
1026Clifford N GarufiItaly2025-04-26Feiner Bros PROPOSAL63Amy Elsner
1027Francesco F ButtCanada2025-04-25Truhlar And Truhlar Attys UNQUALIFIED79Anna Fali
1028Rodrigues V BowleyCanada2025-05-10Dorl, James J Esq PROPOSAL58Amy Elsner
1029Mayumi Y VenereItaly2025-04-19Chanay, Jeffrey A Esq UNQUALIFIED48Elwin Sharvill
1030Sinclair A VenereFrance2025-04-15Chemel, James L Cpa RENEWAL79Xuxue Feng
1031Faith L SergiRussia2025-04-12Printing Dimensions UNQUALIFIED42Onyama Limba
1032Adams U MaletJapan2025-04-25Chanay, Jeffrey A Esq UNQUALIFIED17Stephen Shaw
1033Leja H SlusarskiAustralia2025-04-18Buckley Miller Wright PROPOSAL12Ivan Magalhaes
1034Tony E BriddickGermany2025-04-16Feiner Bros UNQUALIFIED20Asiya Javayant
1035Kadeem G FerenczAustralia2025-04-29King, Christopher A Esq NEW38Bernardo Dominic
1036Arvin D FollerSpain2025-05-11Buckley Miller Wright PROPOSAL32Amy Elsner
1037Kaitlin I CampainFrance2025-04-26Morlong Associates NEGOTIATION68Elwin Sharvill
1038Silvio G KolmetzBrazil2025-05-09Chanay, Jeffrey A Esq NEW98Ivan Magalhaes
1039Adams F PerinArgentina2025-04-28Feltz Printing Service QUALIFIED55Asiya Javayant
1040Alejandro O RimBrazil2025-04-12Rousseaux, Michael Esq NEGOTIATION51Bernardo Dominic
1041Chavez H GarufiUnited Kingdom2025-05-09Chemel, James L Cpa NEW7Xuxue Feng
1042Maisha H FigeroaRussia2025-05-04Chanay, Jeffrey A Esq UNQUALIFIED36Ioni Bowcher
1043Octavia L FollerRussia2025-05-01Commercial Press NEW67Elwin Sharvill
1044Nicolas P ShinkoItaly2025-04-21King, Christopher A Esq NEGOTIATION33Amy Elsner
1045Izzy F FigeroaBrazil2025-04-28Buckley Miller Wright NEGOTIATION67Onyama Limba
1046Maisha M CampainItaly2025-05-01King, Christopher A Esq NEW9Stephen Shaw
1047Octavia Z DilliardArgentina2025-04-30Benton, John B Jr UNQUALIFIED90Xuxue Feng
1048Mujtaba J FollerUnited Kingdom2025-05-10Dorl, James J Esq NEGOTIATION87Asiya Javayant
1049Stacey M FigeroaBrazil2025-04-30Printing Dimensions NEW74Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson F ButtIndiaIoni Bowcher NEW
Ashley R WaycottRussiaIvan Magalhaes NEW
Octavia H DoeRussiaAnna Fali PROPOSAL
Ivar E BologniaCanadaIvan Magalhaes QUALIFIED
Deepesh Z AlbaresSpainAsiya Javayant PROPOSAL
Stacey L RoysterSpainOnyama Limba RENEWAL
Morrow S NickaAustraliaAnna Fali QUALIFIED
Julie X PoquetteSpainElwin Sharvill NEW
Izzy M SlusarskiGermanyOnyama Limba QUALIFIED
Nicolas H ChuiSpainBernardo Dominic NEW
Izzy K MaletFranceIvan Magalhaes QUALIFIED
Clifford Z BriddickSpainOnyama Limba UNQUALIFIED
Morrow X InouyeBrazilElwin Sharvill RENEWAL
Tony Y WaycottGermanyIvan Magalhaes NEW
Salvatore R BriddickBrazilAnna Fali UNQUALIFIED
Jones J RimGermanyStephen Shaw QUALIFIED
Smith S RimBrazilXuxue Feng UNQUALIFIED
Smith Q InouyeAustraliaIoni Bowcher NEGOTIATION
Kadeem O IturbideJapanIvan Magalhaes NEW
Antonio L WaycottItalyIoni Bowcher QUALIFIED
Silvio U SchemmerRussiaAmy Elsner RENEWAL
Francesco B FlosiBrazilElwin Sharvill PROPOSAL
Kaitlin F GlickSpainAnna Fali NEGOTIATION
Ivar C ButtJapanOnyama Limba QUALIFIED
Deepesh O RutaFranceIvan Magalhaes UNQUALIFIED
Julie Q ChuiIndiaXuxue Feng UNQUALIFIED
Smith B FlosiGermanyElwin Sharvill PROPOSAL
Costa Q SchemmerSpainAnna Fali RENEWAL
Adams R OldroydRussiaStephen Shaw UNQUALIFIED
Adams F RutaFranceIoni Bowcher QUALIFIED
Salvatore L AmigonBrazilElwin Sharvill UNQUALIFIED
Aruna Y GarufiJapanXuxue Feng RENEWAL
Leon G SergiBrazilIvan Magalhaes RENEWAL
Mujtaba Y BologniaRussiaStephen Shaw PROPOSAL
Morrow E IturbideArgentinaAsiya Javayant QUALIFIED
Arvin F CampainGermanyAsiya Javayant NEGOTIATION
Isabel G DilliardSpainStephen Shaw PROPOSAL
Claire N AlbaresGermanyStephen Shaw QUALIFIED
Tony J BriddickUnited KingdomAnna Fali UNQUALIFIED
Alejandro A CaldareraItalyIvan Magalhaes RENEWAL
Leon T WieserCanadaOnyama Limba PROPOSAL
Octavia R FlosiCanadaAsiya Javayant QUALIFIED
Clifford Y ChuiRussiaBernardo Dominic PROPOSAL
Jeanfrancois C CaldareraRussiaAmy Elsner UNQUALIFIED
Maisha A WieserCanadaIvan Magalhaes QUALIFIED
Isabel F StensethArgentinaIoni Bowcher NEW
Francesco M FigeroaGermanyAmy Elsner PROPOSAL
Aditya P DoeBrazilOnyama Limba UNQUALIFIED
Francesco R GarufiFranceBernardo Dominic PROPOSAL
Wickens X DoeIndiaStephen Shaw RENEWAL
Frozen Columns
Name
Alejandro X Amigon
Tony J Ruta
Maisha Q Gillian
Arvin H Perin
Costa M Glick
Sinclair N Kusko
Francesco O Tollner
Costa R Stenseth
Nicolas G Glick
Maria A Malet
Ricardo C Garufi
Arvin E Nicka
Octavia M Doe
Jones A Morasca
Murillo E Nestle
Costa W Ruta
Costa S Bowley
Salvatore T Stockham
Darci G Garufi
Adams Y Glick
Munro O Maclead
Emily D Marrier
Tony X Schemmer
Kaitlin C Nestle
Ivar G Rim
Maria H Ferencz
Misaki O Schemmer
Sinclair O Darakjy
Adams B Stenseth
Tony D Slusarski
Mayumi K Campain
Julie X Amigon
Murillo P Nestle
Aruna U Ruta
Maisha S Ruta
Stacey F Glick
Jennifer Y Campain
Francesco K Malet
Adams A Saylors
Clifford T Kusko
Ashley M Saylors
Kaitlin D Darakjy
David H Figeroa
Jefferson G Rulapaugh
Kaitlin U Stockham
Alejandro B Royster
Darci U Sergi
Aditya V Paprocki
David L Royster
Cody H Glick
IdCountryDate
1000Italy2025-04-24
1001Canada2025-05-01
1002Australia2025-04-13
1003Italy2025-04-30
1004Japan2025-05-01
1005Argentina2025-05-10
1006France2025-05-10
1007Spain2025-05-07
1008Australia2025-04-28
1009Japan2025-05-01
1010Russia2025-04-16
1011Australia2025-04-19
1012Russia2025-04-23
1013Italy2025-04-13
1014India2025-04-29
1015India2025-05-01
1016France2025-04-17
1017Canada2025-04-17
1018Italy2025-05-02
1019Australia2025-04-23
1020Japan2025-04-15
1021Argentina2025-05-02
1022Italy2025-05-02
1023Spain2025-05-03
1024Australia2025-05-02
1025United Kingdom2025-04-30
1026Canada2025-04-20
1027Italy2025-05-09
1028United Kingdom2025-04-15
1029Germany2025-04-18
1030Italy2025-05-04
1031Canada2025-05-07
1032Japan2025-05-04
1033Canada2025-04-19
1034Brazil2025-04-16
1035France2025-04-12
1036Australia2025-05-01
1037Argentina2025-05-04
1038Japan2025-05-08
1039Argentina2025-04-29
1040Brazil2025-05-03
1041United Kingdom2025-05-10
1042France2025-04-19
1043France2025-04-17
1044Brazil2025-04-16
1045India2025-04-13
1046France2025-04-24
1047Russia2025-04-15
1048Italy2025-05-04
1049Brazil2025-04-30

On-Demand Data

NameIdCountryDate
Johnson R Bowley1000Argentina2025-04-16
Tony Q Maclead1001Germany2025-04-15
Costa Y Butt1002Italy2025-05-05
Costa H Gillian1003Argentina2025-05-04
Greenwood A Maclead1004France2025-04-15
Jennifer D Albares1005France2025-05-08
Ricardo F Gillian1006Canada2025-05-09
Morrow R Ferencz1007Russia2025-04-27
Mujtaba W Iturbide1008Spain2025-05-05
Julie F Inouye1009Italy2025-04-17
Ivar N Malet1010Canada2025-04-16
James A Rim1011France2025-04-15
Stacey E Malet1012Japan2025-04-26
Mayumi G Glick1013Canada2025-04-29
Sinclair B Glick1014Canada2025-04-14
Cody Y Malet1015Germany2025-05-01
Ashley J Poquette1016France2025-04-17
Rodrigues O Morasca1017Canada2025-04-14
Claire U Oldroyd1018Australia2025-04-15
Tony Q Schemmer1019France2025-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin Y CaudyArgentinaBernardo Dominic PROPOSAL
Mayumi Y RulapaughGermanyStephen Shaw PROPOSAL
Aika D NickaAustraliaAnna Fali RENEWAL
Julie E PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Mayumi M MaletFranceAmy Elsner NEGOTIATION
Munro J NickaCanadaBernardo Dominic RENEWAL
Juan O WhobreyUnited KingdomStephen Shaw RENEWAL
Julie S SlusarskiJapanIvan Magalhaes PROPOSAL
Maisha H BologniaUnited KingdomStephen Shaw NEGOTIATION
Ivar D MaletCanadaAnna Fali QUALIFIED
Octavia S CaldareraSpainIoni Bowcher PROPOSAL
Stacey T MacleadArgentinaAnna Fali NEGOTIATION
Greenwood R BowleyUnited KingdomAsiya Javayant RENEWAL
Ivar R SchemmerGermanyAmy Elsner UNQUALIFIED
Salvatore J RoysterSpainStephen Shaw RENEWAL
Adams P PaprockiGermanyIoni Bowcher QUALIFIED
Jeanfrancois A GarufiGermanyAnna Fali PROPOSAL
Claire H VocelkaIndiaIvan Magalhaes NEW
Jefferson P WhobreyUnited KingdomOnyama Limba RENEWAL
Jones M KolmetzFranceAsiya Javayant NEGOTIATION
Emily G MaletGermanyIvan Magalhaes QUALIFIED
Maria X StockhamRussiaElwin Sharvill NEGOTIATION
Jefferson S RulapaughFranceAsiya Javayant NEW
Costa P VenereArgentinaAnna Fali UNQUALIFIED
Costa A GlickArgentinaAnna Fali UNQUALIFIED
Adams P SchemmerRussiaStephen Shaw UNQUALIFIED
Silvio W IturbideArgentinaXuxue Feng UNQUALIFIED
Murillo I ShinkoFranceBernardo Dominic RENEWAL
Cody N FlosiIndiaStephen Shaw NEW
Greenwood C ButtRussiaIoni Bowcher NEW
Arvin C MorascaCanadaOnyama Limba UNQUALIFIED
Claire U MacleadArgentinaStephen Shaw RENEWAL
Maria Z BologniaArgentinaStephen Shaw QUALIFIED
Kadeem A WieserFranceStephen Shaw NEW
Jeanfrancois K BowleyCanadaIoni Bowcher RENEWAL
Leon G BriddickFranceAsiya Javayant NEW
Morrow Z RimBrazilAsiya Javayant NEW
Izzy D PerinUnited KingdomStephen Shaw QUALIFIED
Munro U OldroydRussiaAnna Fali NEW
Faith B InouyeAustraliaAnna Fali UNQUALIFIED

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