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
Kaitlin W SergiGermanyXuxue Feng PROPOSAL
Murillo B WhobreyJapanAmy Elsner PROPOSAL
Munro A OstroskyItalyXuxue Feng RENEWAL
Cody Z BologniaCanadaIoni Bowcher UNQUALIFIED
Antonio O WieserFranceAnna Fali RENEWAL
Leja Z BriddickBrazilIoni Bowcher QUALIFIED
Chavez R DilliardRussiaOnyama Limba NEGOTIATION
Nicolas T KolmetzAustraliaStephen Shaw PROPOSAL
Misaki T RoysterJapanIvan Magalhaes PROPOSAL
David J WaycottIndiaIoni Bowcher RENEWAL
Maria Z GlickArgentinaBernardo Dominic QUALIFIED
Izzy N WhobreyCanadaIoni Bowcher NEW
Jennifer L RutaJapanOnyama Limba NEGOTIATION
Jefferson F TollnerCanadaOnyama Limba RENEWAL
Silvio C RulapaughFranceOnyama Limba NEW
Ivar L AmigonSpainAnna Fali NEW
Aditya Q SaylorsFranceAnna Fali RENEWAL
Claire N MaletItalyAmy Elsner PROPOSAL
Aruna I FerenczFranceAnna Fali PROPOSAL
Jones H PaprockiFranceAnna Fali QUALIFIED
Darci K FerenczJapanIoni Bowcher RENEWAL
James Z NickaAustraliaAsiya Javayant PROPOSAL
Octavia X PaprockiBrazilStephen Shaw UNQUALIFIED
Costa U BriddickBrazilAmy Elsner UNQUALIFIED
Morrow E DoeJapanIoni Bowcher PROPOSAL
Mayumi J MacleadFranceElwin Sharvill UNQUALIFIED
Stacey A RoysterBrazilXuxue Feng NEGOTIATION
Maria G MaletItalyAnna Fali QUALIFIED
Clifford O AmigonJapanBernardo Dominic RENEWAL
Jeanfrancois L GlickJapanAnna Fali NEGOTIATION
Cody L GillianFranceAnna Fali UNQUALIFIED
Emily H BologniaFranceBernardo Dominic NEGOTIATION
Leon J KuskoJapanStephen Shaw NEW
Johnson F RutaCanadaXuxue Feng RENEWAL
Salvatore N MorascaSpainXuxue Feng QUALIFIED
Greenwood R GauchoJapanAnna Fali QUALIFIED
Arvin B VocelkaUnited KingdomOnyama Limba RENEWAL
Izzy K KuskoFranceBernardo Dominic UNQUALIFIED
Stacey K GillianArgentinaStephen Shaw UNQUALIFIED
Mujtaba H ChuiIndiaXuxue Feng NEGOTIATION
Faith M WaycottUnited KingdomElwin Sharvill RENEWAL
Misaki U DoeAustraliaXuxue Feng RENEWAL
Silvio J BriddickGermanyElwin Sharvill UNQUALIFIED
Nicolas P AlbaresArgentinaIoni Bowcher RENEWAL
Nicolas P WaycottAustraliaIvan Magalhaes UNQUALIFIED
Aruna K SergiGermanyXuxue Feng RENEWAL
Francesco M SaylorsIndiaXuxue Feng UNQUALIFIED
Stacey D FerenczItalyAsiya Javayant PROPOSAL
Emily U GauchoFranceAnna Fali PROPOSAL
Francesco D AlbaresBrazilIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco N RutaCanadaAnna Fali PROPOSAL
Juan E AlbaresSpainIoni Bowcher NEGOTIATION
Tony H OstroskyJapanStephen Shaw PROPOSAL
Cody T MacleadIndiaAsiya Javayant QUALIFIED
Leon B GillianArgentinaAnna Fali UNQUALIFIED
Costa B OldroydItalyOnyama Limba PROPOSAL
Costa T RoysterCanadaIvan Magalhaes QUALIFIED
Morrow V TollnerCanadaIoni Bowcher UNQUALIFIED
Maisha W WaycottSpainOnyama Limba QUALIFIED
Greenwood Q SchemmerIndiaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson B NestleBrazil2024-06-15Truhlar And Truhlar Attys NEW56Ioni Bowcher
1001Emily F PoquetteFrance2024-06-03King, Christopher A Esq QUALIFIED63Amy Elsner
1002Darci Y BologniaJapan2024-05-23Truhlar And Truhlar Attys UNQUALIFIED92Anna Fali
1003Izzy S NestleUnited Kingdom2024-05-20Chanay, Jeffrey A Esq UNQUALIFIED99Elwin Sharvill
1004Julie U VenereJapan2024-05-19Rousseaux, Michael Esq UNQUALIFIED66Bernardo Dominic
1005Ricardo B BowleyItaly2024-05-28King, Christopher A Esq RENEWAL52Amy Elsner
1006Francesco U CaudyBrazil2024-05-25Feltz Printing Service RENEWAL47Asiya Javayant
1007Izzy E WieserRussia2024-06-07Commercial Press NEGOTIATION9Anna Fali
1008Smith F ShinkoGermany2024-05-23Rangoni Of Florence QUALIFIED55Bernardo Dominic
1009Maisha Y CampainCanada2024-05-20Rangoni Of Florence QUALIFIED36Ivan Magalhaes
1010Silvio J AlbaresSpain2024-06-09Printing Dimensions NEGOTIATION34Asiya Javayant
1011Mayumi N RoysterIndia2024-05-24Chemel, James L Cpa QUALIFIED31Asiya Javayant
1012James H IturbideCanada2024-05-29Rangoni Of Florence UNQUALIFIED25Xuxue Feng
1013Salvatore B RulapaughJapan2024-06-02Commercial Press NEW40Onyama Limba
1014Jennifer Z RulapaughItaly2024-06-01Feiner Bros RENEWAL75Onyama Limba
1015Arvin K NickaCanada2024-05-23Dorl, James J Esq NEW81Ivan Magalhaes
1016Leja U FigeroaJapan2024-06-12Chapman, Ross E Esq NEGOTIATION81Elwin Sharvill
1017Wickens V TollnerFrance2024-05-22Dorl, James J Esq NEW29Anna Fali
1018Jones T MaletItaly2024-06-05Rousseaux, Michael Esq NEW39Onyama Limba
1019Claire K WieserRussia2024-05-20Truhlar And Truhlar Attys QUALIFIED50Amy Elsner
1020Johnson N MaletItaly2024-06-12Buckley Miller Wright RENEWAL46Anna Fali
1021Ashley B BriddickItaly2024-06-03Morlong Associates QUALIFIED98Stephen Shaw
1022Isabel B StockhamItaly2024-05-19Rousseaux, Michael Esq RENEWAL84Bernardo Dominic
1023Jennifer M MaletGermany2024-05-24Dorl, James J Esq NEGOTIATION78Ivan Magalhaes
1024Ashley G PaprockiFrance2024-05-23Commercial Press NEGOTIATION77Stephen Shaw
1025Johnson S StockhamRussia2024-06-07Morlong Associates UNQUALIFIED49Asiya Javayant
1026Stacey Q GarufiArgentina2024-06-10Printing Dimensions RENEWAL68Stephen Shaw
1027Johnson F WieserCanada2024-06-04Dorl, James J Esq QUALIFIED49Onyama Limba
1028Emily P VocelkaArgentina2024-05-26Chapman, Ross E Esq UNQUALIFIED35Anna Fali
1029Emily R VenereIndia2024-05-29Rousseaux, Michael Esq NEGOTIATION99Ioni Bowcher
1030Wickens J AmigonCanada2024-06-11Chanay, Jeffrey A Esq QUALIFIED69Elwin Sharvill
1031Greenwood M TollnerCanada2024-05-25Rangoni Of Florence UNQUALIFIED37Xuxue Feng
1032Jeanfrancois V TollnerRussia2024-06-12Morlong Associates UNQUALIFIED43Asiya Javayant
1033Jones P TollnerBrazil2024-06-01Commercial Press PROPOSAL18Amy Elsner
1034Antonio J BowleyAustralia2024-05-21Chanay, Jeffrey A Esq PROPOSAL1Elwin Sharvill
1035Francesco E RutaFrance2024-05-27Chapman, Ross E Esq RENEWAL12Ioni Bowcher
1036Jeanfrancois R OstroskyArgentina2024-06-15Truhlar And Truhlar Attys RENEWAL24Ioni Bowcher
1037Salvatore F CaudyBrazil2024-05-29Commercial Press QUALIFIED40Stephen Shaw
1038Aika I InouyeBrazil2024-06-05Chanay, Jeffrey A Esq PROPOSAL27Elwin Sharvill
1039Isabel R NickaItaly2024-06-10Chapman, Ross E Esq NEW72Elwin Sharvill
1040Costa W GauchoIndia2024-06-06Chemel, James L Cpa NEW30Anna Fali
1041Nicolas K NestleAustralia2024-06-04Rousseaux, Michael Esq QUALIFIED98Xuxue Feng
1042Greenwood N AmigonUnited Kingdom2024-06-13Buckley Miller Wright PROPOSAL33Bernardo Dominic
1043Johnson A BologniaArgentina2024-06-13Morlong Associates QUALIFIED35Ivan Magalhaes
1044Octavia S KuskoRussia2024-06-01Dorl, James J Esq UNQUALIFIED43Ioni Bowcher
1045Octavia L GlickFrance2024-05-22Commercial Press UNQUALIFIED29Ioni Bowcher
1046Jeanfrancois E RulapaughGermany2024-05-22Chapman, Ross E Esq NEGOTIATION71Ioni Bowcher
1047Darci T RutaArgentina2024-06-15Feltz Printing Service UNQUALIFIED79Ioni Bowcher
1048Leja L FerenczGermany2024-05-25Chapman, Ross E Esq NEGOTIATION6Elwin Sharvill
1049Aditya X DoeSpain2024-05-18Dorl, James J Esq RENEWAL80Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Greenwood J OstroskyUnited KingdomBernardo Dominic NEW
Nicolas D MacleadBrazilIoni Bowcher PROPOSAL
Ricardo V VenereSpainIvan Magalhaes NEGOTIATION
Leja M AmigonGermanyXuxue Feng NEGOTIATION
Ricardo X ShinkoFranceAmy Elsner UNQUALIFIED
Ricardo D RulapaughUnited KingdomAmy Elsner NEGOTIATION
Costa T DarakjyCanadaAmy Elsner PROPOSAL
Mujtaba O RulapaughGermanyOnyama Limba QUALIFIED
Claire B MacleadCanadaIvan Magalhaes PROPOSAL
Ricardo E MaletCanadaOnyama Limba QUALIFIED
Wickens Y VenereItalyAmy Elsner QUALIFIED
Clifford R PoquetteArgentinaAnna Fali NEW
Silvio V IturbideIndiaBernardo Dominic RENEWAL
Munro V VenereUnited KingdomOnyama Limba UNQUALIFIED
Jones S MarrierArgentinaStephen Shaw NEW
Morrow U StockhamIndiaBernardo Dominic NEW
Juan Q BriddickRussiaOnyama Limba UNQUALIFIED
Mujtaba P ButtGermanyElwin Sharvill RENEWAL
Jeanfrancois I VenereJapanAsiya Javayant PROPOSAL
Stacey E RutaRussiaAmy Elsner UNQUALIFIED
Aika W VocelkaCanadaAmy Elsner QUALIFIED
Kaitlin P SchemmerArgentinaAmy Elsner PROPOSAL
Ashley I PoquetteJapanOnyama Limba NEGOTIATION
Ashley O PaprockiBrazilElwin Sharvill PROPOSAL
Greenwood R MorascaAustraliaBernardo Dominic UNQUALIFIED
Johnson X RoysterUnited KingdomStephen Shaw QUALIFIED
David D IturbideUnited KingdomBernardo Dominic QUALIFIED
Ivar J RoysterIndiaXuxue Feng UNQUALIFIED
Adams U VocelkaAustraliaIoni Bowcher UNQUALIFIED
Arvin V NestleIndiaAmy Elsner UNQUALIFIED
Clifford Q BologniaGermanyAmy Elsner NEW
Maisha C CaldareraBrazilIoni Bowcher UNQUALIFIED
Aruna C KuskoFranceIvan Magalhaes PROPOSAL
Costa W SlusarskiBrazilStephen Shaw UNQUALIFIED
Jennifer G ButtFranceIoni Bowcher NEW
Jones M GauchoRussiaBernardo Dominic QUALIFIED
Mujtaba N FollerCanadaIvan Magalhaes RENEWAL
Mayumi W MacleadArgentinaAmy Elsner UNQUALIFIED
Kadeem H StockhamCanadaStephen Shaw NEW
Cody G FollerAustraliaOnyama Limba NEGOTIATION
Misaki R FollerArgentinaAsiya Javayant UNQUALIFIED
Murillo A SchemmerItalyBernardo Dominic RENEWAL
Octavia N MaletGermanyXuxue Feng NEGOTIATION
Maria X KuskoSpainBernardo Dominic QUALIFIED
Cody M VocelkaFranceXuxue Feng PROPOSAL
Arvin J OstroskyIndiaElwin Sharvill UNQUALIFIED
Aika Y AmigonIndiaXuxue Feng NEGOTIATION
Claire M BowleyCanadaIoni Bowcher UNQUALIFIED
Nicolas A PaprockiJapanAmy Elsner QUALIFIED
Aika K OldroydArgentinaAsiya Javayant RENEWAL
Frozen Columns
Name
Sinclair J Vocelka
Munro Q Perin
Kaitlin C Ruta
Julie P Slusarski
Jones G Kusko
Jefferson X Paprocki
Isabel E Malet
Jones A Nestle
Jefferson I Waycott
Jefferson F Sergi
Aditya C Flosi
Wickens F Albares
David C Ostrosky
Murillo E Marrier
Silvio M Marrier
Salvatore B Vocelka
Murillo I Rulapaugh
Juan N Stenseth
Silvio B Butt
Kadeem S Gaucho
Greenwood X Marrier
David Y Saylors
Tony N Bowley
Leja U Vocelka
Alejandro B Nicka
Claire I Gaucho
Silvio F Sergi
Stacey T Venere
Mayumi Q Kusko
Ricardo M Slusarski
David M Stockham
Silvio W Ruta
Antonio P Ferencz
Jeanfrancois J Flosi
Murillo C Albares
Wickens P Albares
Ashley M Nicka
Kadeem T Gillian
Jennifer S Malet
Claire Z Ruta
Jefferson D Maclead
Arvin M Marrier
Leja E Rulapaugh
Emily W Kusko
Faith W Royster
Sinclair J Bolognia
Murillo W Inouye
James U Rulapaugh
Morrow A Ostrosky
Maria C Flosi
IdCountryDate
1000Australia2024-06-06
1001France2024-06-11
1002United Kingdom2024-05-20
1003Spain2024-06-05
1004Spain2024-06-16
1005Argentina2024-06-08
1006Italy2024-05-25
1007Australia2024-05-25
1008Japan2024-06-15
1009Italy2024-05-18
1010Italy2024-06-12
1011Japan2024-06-12
1012Spain2024-05-24
1013France2024-06-15
1014Italy2024-05-20
1015United Kingdom2024-05-24
1016Australia2024-05-30
1017Spain2024-06-14
1018Italy2024-06-08
1019Spain2024-05-29
1020Canada2024-06-15
1021Argentina2024-05-28
1022Brazil2024-05-27
1023Russia2024-06-16
1024Spain2024-06-08
1025Brazil2024-06-08
1026France2024-06-14
1027Japan2024-05-20
1028Germany2024-06-06
1029United Kingdom2024-06-02
1030Spain2024-06-05
1031Germany2024-05-25
1032Argentina2024-05-31
1033Brazil2024-05-22
1034Russia2024-05-31
1035Germany2024-06-15
1036Italy2024-05-22
1037Argentina2024-06-08
1038France2024-05-23
1039France2024-06-14
1040Germany2024-06-13
1041Japan2024-06-06
1042India2024-05-28
1043India2024-06-10
1044Argentina2024-05-20
1045India2024-06-11
1046India2024-06-06
1047Germany2024-05-23
1048United Kingdom2024-05-29
1049Argentina2024-06-16

On-Demand Data

NameIdCountryDate
Munro F Caudy1000United Kingdom2024-06-10
Aika P Butt1001India2024-06-15
Claire I Malet1002Germany2024-06-01
Izzy Y Bolognia1003United Kingdom2024-06-10
Jennifer S Bowley1004Spain2024-06-03
Tony I Morasca1005Japan2024-06-03
Arvin X Marrier1006Italy2024-06-08
Izzy B Sergi1007Spain2024-05-26
Johnson Q Gaucho1008Spain2024-06-16
Jones X Rim1009Russia2024-05-21
Maria K Glick1010Canada2024-05-31
Johnson K Caldarera1011Australia2024-05-28
Kaitlin D Garufi1012Australia2024-05-27
Antonio G Garufi1013Canada2024-05-22
Octavia C Caudy1014Japan2024-06-06
Sinclair P Maclead1015Brazil2024-05-30
Sinclair C Malet1016Brazil2024-05-18
Adams K Kusko1017Australia2024-06-11
Silvio P Sergi1018Russia2024-05-18
Deepesh G Malet1019Spain2024-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois N GauchoFranceStephen Shaw RENEWAL
Kaitlin C IturbideIndiaStephen Shaw NEW
Isabel R BriddickJapanXuxue Feng NEW
Alejandro N GarufiAustraliaAsiya Javayant NEGOTIATION
Wickens A SaylorsSpainAnna Fali RENEWAL
Faith C DoeCanadaAmy Elsner PROPOSAL
Jeanfrancois Q VenereUnited KingdomBernardo Dominic NEGOTIATION
Octavia D KuskoArgentinaStephen Shaw NEGOTIATION
David Y FlosiIndiaAnna Fali PROPOSAL
Aika T AmigonArgentinaAnna Fali NEW
Greenwood D GlickBrazilElwin Sharvill UNQUALIFIED
Stacey B GauchoItalyIvan Magalhaes NEW
Leja S VenereSpainXuxue Feng RENEWAL
Ashley L DarakjyFranceOnyama Limba NEW
Deepesh M BriddickJapanOnyama Limba NEGOTIATION
Mujtaba U GarufiFranceElwin Sharvill PROPOSAL
David J DilliardRussiaElwin Sharvill NEW
Aditya H PaprockiAustraliaAsiya Javayant NEGOTIATION
Arvin Y PaprockiBrazilAsiya Javayant QUALIFIED
Faith L IturbideBrazilBernardo Dominic RENEWAL
Murillo H SchemmerArgentinaXuxue Feng NEGOTIATION
Claire S FigeroaArgentinaAnna Fali QUALIFIED
Adams U WaycottBrazilAmy Elsner UNQUALIFIED
Mayumi Y CampainGermanyOnyama Limba PROPOSAL
Ricardo Q SchemmerItalyBernardo Dominic QUALIFIED
Morrow W SchemmerSpainIvan Magalhaes NEGOTIATION
Rodrigues S ShinkoRussiaElwin Sharvill UNQUALIFIED
Rodrigues B RutaJapanAnna Fali NEW
Tony K IturbideArgentinaStephen Shaw NEW
Munro I InouyeJapanIvan Magalhaes RENEWAL
Silvio F KuskoFranceBernardo Dominic NEW
Ivar G TollnerBrazilXuxue Feng PROPOSAL
Misaki V GauchoUnited KingdomAnna Fali UNQUALIFIED
Ricardo P TollnerSpainBernardo Dominic QUALIFIED
Kadeem N MorascaArgentinaBernardo Dominic PROPOSAL
Cody A ShinkoCanadaAnna Fali QUALIFIED
Mayumi T BriddickArgentinaAmy Elsner PROPOSAL
Nicolas H RimBrazilAsiya Javayant NEGOTIATION
Kaitlin T BriddickArgentinaElwin Sharvill PROPOSAL
Claire V OstroskyGermanyElwin Sharvill 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>