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
Aruna O MaletFranceIoni Bowcher QUALIFIED
Jennifer B NickaBrazilIoni Bowcher NEGOTIATION
Ivar P BriddickUnited KingdomElwin Sharvill NEGOTIATION
Tony Q GauchoGermanyAnna Fali QUALIFIED
Emily A RutaUnited KingdomOnyama Limba PROPOSAL
Faith K KuskoSpainIoni Bowcher QUALIFIED
Kaitlin Y GillianJapanIvan Magalhaes RENEWAL
Aruna U DilliardUnited KingdomAsiya Javayant RENEWAL
Kaitlin S WhobreyCanadaElwin Sharvill RENEWAL
Juan L GarufiJapanAmy Elsner NEGOTIATION
Aruna L SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Faith V KuskoFranceElwin Sharvill RENEWAL
Misaki W CampainRussiaIvan Magalhaes QUALIFIED
Nicolas N SlusarskiFranceStephen Shaw NEGOTIATION
Octavia U RutaBrazilStephen Shaw PROPOSAL
Aruna A GillianGermanyBernardo Dominic NEGOTIATION
Chavez M GarufiIndiaXuxue Feng UNQUALIFIED
Octavia R MaletIndiaAnna Fali NEW
Claire P FlosiBrazilOnyama Limba NEGOTIATION
Darci K VenereItalyAsiya Javayant NEW
Murillo A BriddickRussiaElwin Sharvill RENEWAL
Kadeem J ChuiGermanyStephen Shaw QUALIFIED
Mayumi L SlusarskiJapanAsiya Javayant NEGOTIATION
Leja A GarufiAustraliaBernardo Dominic UNQUALIFIED
Isabel W SchemmerRussiaXuxue Feng QUALIFIED
Deepesh Q GauchoGermanyBernardo Dominic NEGOTIATION
Kadeem N BologniaRussiaIoni Bowcher NEW
Rodrigues M MaletUnited KingdomAmy Elsner UNQUALIFIED
Octavia Z CampainRussiaBernardo Dominic NEW
Leon L KuskoUnited KingdomIoni Bowcher NEGOTIATION
Ashley G DarakjyJapanBernardo Dominic RENEWAL
Jones M StensethRussiaAnna Fali NEGOTIATION
Wickens J NickaFranceAsiya Javayant NEGOTIATION
Nicolas B WaycottIndiaAsiya Javayant UNQUALIFIED
Nicolas R ShinkoArgentinaBernardo Dominic UNQUALIFIED
Morrow P GarufiAustraliaIvan Magalhaes RENEWAL
Emily B NestleJapanAsiya Javayant NEW
Kaitlin J BologniaCanadaOnyama Limba NEGOTIATION
Alejandro C KolmetzCanadaIvan Magalhaes RENEWAL
Smith Y DarakjyFranceAmy Elsner RENEWAL
Misaki E SergiCanadaAnna Fali QUALIFIED
Rodrigues K CaldareraUnited KingdomAsiya Javayant RENEWAL
Aditya V AlbaresItalyOnyama Limba QUALIFIED
Costa T WaycottBrazilXuxue Feng PROPOSAL
Kadeem Z TollnerIndiaOnyama Limba NEGOTIATION
Aruna C VocelkaJapanAnna Fali QUALIFIED
David I DarakjyBrazilBernardo Dominic RENEWAL
Arvin Y PerinJapanAmy Elsner RENEWAL
Silvio M CaldareraSpainIvan Magalhaes NEGOTIATION
Wickens Q RoysterGermanyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi L FlosiCanadaIoni Bowcher UNQUALIFIED
Adams G SlusarskiRussiaStephen Shaw PROPOSAL
Francesco E MacleadItalyAmy Elsner NEGOTIATION
Johnson M TollnerUnited KingdomOnyama Limba RENEWAL
Kadeem B SaylorsFranceAsiya Javayant RENEWAL
Nicolas Z AlbaresSpainIoni Bowcher QUALIFIED
Costa D WieserRussiaXuxue Feng NEGOTIATION
Kadeem K WhobreyUnited KingdomAnna Fali NEGOTIATION
Leja Q BologniaIndiaBernardo Dominic QUALIFIED
Jones H WaycottIndiaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio B ChuiCanada2024-05-31Commercial Press PROPOSAL51Ivan Magalhaes
1001Claire W OstroskySpain2024-06-19Chemel, James L Cpa UNQUALIFIED18Ivan Magalhaes
1002Izzy K NickaUnited Kingdom2024-05-29Feltz Printing Service PROPOSAL72Anna Fali
1003Arvin T AmigonArgentina2024-06-17Benton, John B Jr NEGOTIATION14Xuxue Feng
1004Claire Q FlosiItaly2024-05-25Rangoni Of Florence NEGOTIATION62Ioni Bowcher
1005Chavez E GlickSpain2024-05-24Truhlar And Truhlar Attys QUALIFIED5Amy Elsner
1006Murillo C BriddickCanada2024-06-13Buckley Miller Wright NEGOTIATION22Ivan Magalhaes
1007Julie F MacleadJapan2024-05-31Rangoni Of Florence NEW91Anna Fali
1008Juan Z CaudyGermany2024-06-18Morlong Associates NEGOTIATION35Amy Elsner
1009Adams J MaletIndia2024-05-29Chapman, Ross E Esq NEGOTIATION46Ioni Bowcher
1010Jennifer B PaprockiArgentina2024-06-18Feiner Bros NEW62Asiya Javayant
1011Izzy X WaycottItaly2024-05-31Morlong Associates PROPOSAL58Xuxue Feng
1012Darci N KolmetzUnited Kingdom2024-05-25Buckley Miller Wright NEW99Amy Elsner
1013Johnson Q VocelkaBrazil2024-06-21Truhlar And Truhlar Attys RENEWAL42Anna Fali
1014Sinclair E VenereSpain2024-05-25Feiner Bros QUALIFIED57Anna Fali
1015Greenwood K WieserSpain2024-06-05Truhlar And Truhlar Attys NEW95Elwin Sharvill
1016Nicolas X KuskoCanada2024-06-08Truhlar And Truhlar Attys NEW58Asiya Javayant
1017Aruna H BowleyJapan2024-06-05Feltz Printing Service UNQUALIFIED89Asiya Javayant
1018Kadeem L GillianCanada2024-06-15Benton, John B Jr QUALIFIED41Asiya Javayant
1019Costa U InouyeUnited Kingdom2024-06-10Printing Dimensions NEW69Xuxue Feng
1020Wickens U MarrierArgentina2024-06-10Rousseaux, Michael Esq NEGOTIATION4Onyama Limba
1021Nicolas A BriddickFrance2024-06-13Rangoni Of Florence QUALIFIED72Ivan Magalhaes
1022Emily A KolmetzUnited Kingdom2024-05-31Feiner Bros QUALIFIED18Ivan Magalhaes
1023James A DarakjySpain2024-06-12Chapman, Ross E Esq RENEWAL82Bernardo Dominic
1024Darci W RimArgentina2024-06-21Rousseaux, Michael Esq RENEWAL7Anna Fali
1025Sinclair G AlbaresArgentina2024-06-13Commercial Press PROPOSAL40Anna Fali
1026Izzy I AlbaresSpain2024-05-24Commercial Press QUALIFIED99Anna Fali
1027Emily A DoeIndia2024-06-07Rangoni Of Florence NEW4Asiya Javayant
1028James A OstroskyIndia2024-05-27Morlong Associates RENEWAL98Stephen Shaw
1029Johnson S MorascaFrance2024-06-07Dorl, James J Esq QUALIFIED27Ivan Magalhaes
1030Deepesh E DoeArgentina2024-06-19Benton, John B Jr QUALIFIED44Asiya Javayant
1031Tony Q NestleAustralia2024-05-31Commercial Press UNQUALIFIED47Asiya Javayant
1032Jeanfrancois K GauchoRussia2024-06-04Printing Dimensions QUALIFIED88Amy Elsner
1033Jeanfrancois U OstroskyArgentina2024-06-16Truhlar And Truhlar Attys QUALIFIED63Onyama Limba
1034Costa S FerenczIndia2024-06-19Chapman, Ross E Esq QUALIFIED46Amy Elsner
1035Johnson V ShinkoSpain2024-06-18Rousseaux, Michael Esq QUALIFIED63Anna Fali
1036Johnson U GauchoIndia2024-06-16Rousseaux, Michael Esq PROPOSAL52Asiya Javayant
1037Julie M RoysterUnited Kingdom2024-06-01Chapman, Ross E Esq NEW33Ivan Magalhaes
1038Alejandro F RimCanada2024-05-31Truhlar And Truhlar Attys PROPOSAL65Ivan Magalhaes
1039Murillo O SergiBrazil2024-06-01Printing Dimensions PROPOSAL26Ioni Bowcher
1040Kadeem C DarakjyFrance2024-05-23Rousseaux, Michael Esq RENEWAL73Onyama Limba
1041Arvin P MorascaFrance2024-06-02Commercial Press PROPOSAL65Anna Fali
1042Mujtaba W SaylorsUnited Kingdom2024-05-23Buckley Miller Wright NEGOTIATION61Asiya Javayant
1043Aika M MacleadRussia2024-06-13Feltz Printing Service PROPOSAL0Ivan Magalhaes
1044Smith N InouyeItaly2024-06-11Printing Dimensions UNQUALIFIED30Ioni Bowcher
1045Greenwood E AmigonFrance2024-06-10Buckley Miller Wright PROPOSAL43Stephen Shaw
1046Kadeem E PerinGermany2024-05-29Truhlar And Truhlar Attys NEGOTIATION22Ivan Magalhaes
1047Izzy F FlosiAustralia2024-06-05Buckley Miller Wright QUALIFIED56Onyama Limba
1048James A BologniaUnited Kingdom2024-05-25Truhlar And Truhlar Attys NEGOTIATION86Ivan Magalhaes
1049Jennifer V OldroydFrance2024-06-14Buckley Miller Wright QUALIFIED89Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Salvatore P NestleBrazilElwin Sharvill QUALIFIED
Mayumi C GlickJapanOnyama Limba NEW
Wickens K PoquetteUnited KingdomAmy Elsner PROPOSAL
Nicolas Y MorascaGermanyXuxue Feng QUALIFIED
Francesco X DilliardSpainAsiya Javayant PROPOSAL
Kaitlin E PaprockiArgentinaOnyama Limba QUALIFIED
Ashley C GarufiBrazilAnna Fali RENEWAL
Kaitlin G SlusarskiSpainIoni Bowcher QUALIFIED
Mayumi C SchemmerAustraliaStephen Shaw NEGOTIATION
Francesco Y RutaAustraliaIvan Magalhaes PROPOSAL
Maisha L KuskoFranceElwin Sharvill QUALIFIED
Salvatore K BowleyUnited KingdomAnna Fali NEW
Mujtaba D BriddickItalyAsiya Javayant NEW
James L RimBrazilElwin Sharvill QUALIFIED
Greenwood Y FigeroaSpainXuxue Feng RENEWAL
Alejandro S GlickBrazilXuxue Feng UNQUALIFIED
Tony T FerenczUnited KingdomIoni Bowcher RENEWAL
James T FerenczUnited KingdomIoni Bowcher NEGOTIATION
Salvatore C FollerIndiaIoni Bowcher NEGOTIATION
Nicolas U WaycottUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba J SergiFranceElwin Sharvill QUALIFIED
Aruna E ChuiArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois Q CaudyIndiaElwin Sharvill RENEWAL
Aika S SchemmerBrazilIoni Bowcher QUALIFIED
Kaitlin M ShinkoSpainAsiya Javayant NEW
Murillo M RoysterAustraliaAsiya Javayant NEGOTIATION
Kaitlin V WaycottSpainAsiya Javayant PROPOSAL
Ivar G MacleadItalyXuxue Feng UNQUALIFIED
Faith B MacleadAustraliaBernardo Dominic UNQUALIFIED
Smith G ShinkoItalyStephen Shaw RENEWAL
Smith F RoysterItalyStephen Shaw NEGOTIATION
Jefferson M PerinItalyAnna Fali PROPOSAL
Darci N OstroskyCanadaBernardo Dominic NEGOTIATION
James K CampainRussiaXuxue Feng RENEWAL
Octavia V StensethItalyOnyama Limba QUALIFIED
Octavia C RulapaughJapanElwin Sharvill NEGOTIATION
Wickens Z CaudyCanadaElwin Sharvill NEW
Stacey I VocelkaAustraliaAnna Fali QUALIFIED
Ricardo J CampainAustraliaXuxue Feng RENEWAL
Claire X OldroydUnited KingdomOnyama Limba RENEWAL
Isabel G PerinBrazilAsiya Javayant QUALIFIED
Kaitlin J WhobreyAustraliaIvan Magalhaes RENEWAL
Chavez U RimSpainElwin Sharvill RENEWAL
Julie H FigeroaJapanAmy Elsner NEGOTIATION
Mayumi C AlbaresBrazilIvan Magalhaes UNQUALIFIED
Aditya N ChuiJapanBernardo Dominic NEW
Francesco U WieserBrazilIoni Bowcher UNQUALIFIED
Ricardo F WhobreyRussiaAmy Elsner NEW
Darci A MacleadBrazilIoni Bowcher UNQUALIFIED
Greenwood M FerenczGermanyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Greenwood R Whobrey
Arvin H Doe
Jefferson T Caudy
Maisha E Briddick
Murillo P Ostrosky
Adams E Morasca
Kaitlin I Chui
Salvatore E Bolognia
Mujtaba O Perin
Jeanfrancois B Shinko
Francesco P Campain
Mayumi U Kolmetz
Antonio M Marrier
Octavia U Tollner
Julie U Dilliard
Silvio W Rim
David B Doe
Mujtaba C Rim
Stacey Z Dilliard
Emily D Nestle
Antonio X Garufi
Salvatore X Nestle
Munro U Stenseth
Deepesh G Ostrosky
Aika B Flosi
Isabel N Wieser
Deepesh F Maclead
Jefferson B Venere
Claire N Glick
Kaitlin B Poquette
Leja G Nestle
Alejandro I Foller
Murillo O Doe
Alejandro J Garufi
Sinclair A Kusko
Misaki X Tollner
Stacey K Malet
Clifford B Darakjy
Julie L Gillian
Jefferson R Sergi
Julie I Caldarera
Sinclair A Stenseth
Maria E Darakjy
Chavez A Malet
Alejandro B Schemmer
Munro X Nestle
James C Gillian
Jefferson E Albares
Wickens H Iturbide
Ivar I Dilliard
IdCountryDate
1000Canada2024-06-14
1001United Kingdom2024-06-03
1002Brazil2024-06-01
1003Spain2024-06-20
1004Japan2024-06-18
1005Brazil2024-06-12
1006Russia2024-06-03
1007Russia2024-06-13
1008Argentina2024-06-09
1009Italy2024-06-13
1010Japan2024-05-24
1011Germany2024-05-26
1012Italy2024-06-02
1013Italy2024-06-11
1014Japan2024-06-10
1015Canada2024-06-15
1016Germany2024-06-09
1017Japan2024-05-29
1018India2024-06-06
1019Italy2024-06-03
1020Spain2024-06-18
1021Australia2024-05-29
1022Russia2024-06-13
1023Italy2024-05-23
1024Argentina2024-06-20
1025Brazil2024-06-17
1026Brazil2024-06-11
1027Canada2024-06-03
1028India2024-06-05
1029United Kingdom2024-05-26
1030India2024-06-01
1031Italy2024-06-06
1032Russia2024-06-08
1033France2024-06-13
1034Canada2024-05-30
1035Canada2024-06-01
1036France2024-06-18
1037Japan2024-06-20
1038Russia2024-05-24
1039Argentina2024-05-29
1040United Kingdom2024-05-26
1041Canada2024-06-14
1042Germany2024-06-19
1043United Kingdom2024-05-30
1044Brazil2024-06-01
1045Argentina2024-06-14
1046Argentina2024-06-16
1047India2024-06-09
1048Brazil2024-06-20
1049Germany2024-05-29

On-Demand Data

NameIdCountryDate
Arvin K Gillian1000Canada2024-05-23
James L Flosi1001Australia2024-06-17
Aditya L Ferencz1002Spain2024-06-16
Ivar S Briddick1003Spain2024-05-26
Tony P Venere1004United Kingdom2024-05-29
Jeanfrancois B Bowley1005Japan2024-06-19
Costa O Oldroyd1006Russia2024-06-02
Claire M Stockham1007France2024-05-28
Chavez U Oldroyd1008India2024-06-11
Munro M Figeroa1009Australia2024-05-23
Mujtaba V Stenseth1010Russia2024-06-14
James E Iturbide1011Canada2024-06-19
Adams N Oldroyd1012Spain2024-06-13
Cody W Bolognia1013United Kingdom2024-06-12
Darci G Slusarski1014Spain2024-05-28
David C Paprocki1015Japan2024-06-09
Mujtaba L Rim1016Italy2024-06-09
Nicolas D Maclead1017Japan2024-05-31
Antonio C Chui1018Italy2024-05-29
Aditya W Slusarski1019Canada2024-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith H StockhamJapanBernardo Dominic NEGOTIATION
Leon Y CaudyFranceElwin Sharvill PROPOSAL
Isabel O ChuiArgentinaElwin Sharvill PROPOSAL
Jeanfrancois E MaletRussiaBernardo Dominic QUALIFIED
Mayumi V MaletBrazilXuxue Feng PROPOSAL
James A BologniaIndiaElwin Sharvill UNQUALIFIED
Jones A RulapaughUnited KingdomStephen Shaw RENEWAL
Murillo P PaprockiIndiaOnyama Limba PROPOSAL
Darci G MorascaRussiaAmy Elsner UNQUALIFIED
Cody T RoysterUnited KingdomAsiya Javayant RENEWAL
Juan S SergiFranceXuxue Feng RENEWAL
Jennifer Z WieserRussiaElwin Sharvill UNQUALIFIED
Jefferson Q InouyeRussiaAnna Fali NEW
Isabel F GlickBrazilXuxue Feng PROPOSAL
Julie F RoysterUnited KingdomXuxue Feng UNQUALIFIED
Salvatore T PoquetteItalyXuxue Feng NEW
Juan A SlusarskiArgentinaAmy Elsner NEW
Aruna M PaprockiItalyAmy Elsner NEGOTIATION
Misaki X StensethCanadaStephen Shaw UNQUALIFIED
Mayumi V BowleyItalyIvan Magalhaes UNQUALIFIED
Ricardo O KuskoFranceAsiya Javayant PROPOSAL
Stacey H DilliardJapanElwin Sharvill QUALIFIED
Silvio V MaletCanadaAsiya Javayant UNQUALIFIED
Adams S GarufiSpainElwin Sharvill NEW
Leon K SlusarskiGermanyStephen Shaw UNQUALIFIED
Juan F ChuiGermanyElwin Sharvill UNQUALIFIED
Mayumi A PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Morrow L FlosiItalyAnna Fali NEGOTIATION
Ivar D BowleySpainXuxue Feng UNQUALIFIED
Jeanfrancois U PaprockiBrazilStephen Shaw RENEWAL
Jeanfrancois B PerinAustraliaAmy Elsner RENEWAL
Leon V AlbaresSpainAmy Elsner PROPOSAL
Chavez P ButtFranceBernardo Dominic NEGOTIATION
Jones K IturbideGermanyAnna Fali PROPOSAL
Francesco I OstroskyFranceAsiya Javayant PROPOSAL
Izzy Y InouyeAustraliaAmy Elsner RENEWAL
Munro Q RutaAustraliaElwin Sharvill QUALIFIED
Ricardo W RutaSpainAsiya Javayant NEGOTIATION
James I VenereRussiaStephen Shaw UNQUALIFIED
Alejandro Y NestleBrazilStephen Shaw PROPOSAL

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