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
Ashley Z RulapaughRussiaAsiya Javayant NEW
Salvatore S VocelkaGermanyElwin Sharvill UNQUALIFIED
Nicolas G StensethRussiaIoni Bowcher NEGOTIATION
Leja X WhobreyFranceIoni Bowcher UNQUALIFIED
Murillo C CampainCanadaAmy Elsner UNQUALIFIED
Aruna A CaldareraJapanIoni Bowcher PROPOSAL
Deepesh V AmigonBrazilIvan Magalhaes RENEWAL
Arvin A GillianGermanyXuxue Feng NEW
Maria D AlbaresBrazilAnna Fali UNQUALIFIED
Silvio X AlbaresIndiaXuxue Feng QUALIFIED
Deepesh R RoysterArgentinaBernardo Dominic UNQUALIFIED
Clifford N RutaUnited KingdomStephen Shaw UNQUALIFIED
Alejandro I FlosiCanadaIoni Bowcher UNQUALIFIED
Wickens R SaylorsItalyBernardo Dominic UNQUALIFIED
Izzy Y MaletGermanyAmy Elsner UNQUALIFIED
Kadeem W AlbaresBrazilAmy Elsner RENEWAL
Octavia F BowleyRussiaIvan Magalhaes PROPOSAL
Arvin H GauchoJapanAmy Elsner QUALIFIED
Aruna F KolmetzCanadaXuxue Feng NEW
Wickens O WieserItalyAsiya Javayant NEGOTIATION
Mujtaba P BowleyRussiaElwin Sharvill RENEWAL
Silvio Q StensethItalyIoni Bowcher PROPOSAL
Jennifer B GarufiRussiaStephen Shaw QUALIFIED
Murillo I SlusarskiAustraliaIvan Magalhaes NEW
Claire N MarrierItalyStephen Shaw PROPOSAL
Maisha A MacleadFranceAmy Elsner RENEWAL
Faith X PaprockiFranceAsiya Javayant PROPOSAL
James V KolmetzFranceAnna Fali PROPOSAL
Antonio L MaletFranceIoni Bowcher RENEWAL
Izzy A KolmetzUnited KingdomAsiya Javayant RENEWAL
Nicolas D ButtFranceAsiya Javayant PROPOSAL
Mayumi Q GauchoAustraliaAnna Fali NEGOTIATION
Misaki R PaprockiUnited KingdomBernardo Dominic QUALIFIED
Kadeem M SlusarskiIndiaElwin Sharvill QUALIFIED
Jeanfrancois B PaprockiFranceElwin Sharvill RENEWAL
Mujtaba E GlickItalyAmy Elsner NEW
Arvin T SaylorsSpainIoni Bowcher UNQUALIFIED
Claire M MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Emily M WaycottUnited KingdomAnna Fali UNQUALIFIED
David E MarrierItalyAsiya Javayant NEW
Antonio E AmigonArgentinaIoni Bowcher RENEWAL
Nicolas V SlusarskiRussiaElwin Sharvill NEW
Johnson V GarufiCanadaOnyama Limba NEW
David R FollerUnited KingdomElwin Sharvill PROPOSAL
Aruna Y ChuiIndiaAmy Elsner RENEWAL
Darci T BriddickUnited KingdomElwin Sharvill NEGOTIATION
Leon O ButtArgentinaAmy Elsner QUALIFIED
Darci Z BologniaUnited KingdomAmy Elsner NEW
Kaitlin A CampainIndiaAnna Fali QUALIFIED
Jeanfrancois X GarufiIndiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson Y CampainItalyAsiya Javayant PROPOSAL
Greenwood F DarakjyJapanElwin Sharvill UNQUALIFIED
Stacey Q AmigonCanadaOnyama Limba QUALIFIED
Jones V NestleCanadaXuxue Feng UNQUALIFIED
Izzy E BriddickCanadaIoni Bowcher PROPOSAL
Jeanfrancois C CaudyArgentinaIvan Magalhaes RENEWAL
Rodrigues L CaldareraAustraliaBernardo Dominic RENEWAL
Ricardo A DilliardUnited KingdomAnna Fali NEGOTIATION
Kadeem H FerenczItalyElwin Sharvill UNQUALIFIED
Greenwood A SaylorsArgentinaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem X RutaUnited Kingdom2024-06-13Benton, John B Jr PROPOSAL38Amy Elsner
1001Isabel M WhobreySpain2024-06-03Dorl, James J Esq QUALIFIED4Asiya Javayant
1002Costa E FigeroaItaly2024-06-04Morlong Associates NEW93Elwin Sharvill
1003Leon A PoquetteArgentina2024-06-01Buckley Miller Wright PROPOSAL25Stephen Shaw
1004Deepesh I VocelkaFrance2024-06-03Benton, John B Jr PROPOSAL57Onyama Limba
1005Misaki I IturbideAustralia2024-06-07Chanay, Jeffrey A Esq QUALIFIED65Elwin Sharvill
1006Kaitlin M WhobreyCanada2024-06-05Rousseaux, Michael Esq QUALIFIED30Anna Fali
1007Julie N StockhamArgentina2024-06-03Rangoni Of Florence NEGOTIATION6Bernardo Dominic
1008Leja R ShinkoFrance2024-06-02King, Christopher A Esq RENEWAL84Ivan Magalhaes
1009Jeanfrancois J FigeroaUnited Kingdom2024-06-04Morlong Associates UNQUALIFIED42Bernardo Dominic
1010Deepesh E RimGermany2024-06-03Rangoni Of Florence PROPOSAL83Ioni Bowcher
1011Adams V WieserArgentina2024-05-30Morlong Associates PROPOSAL25Anna Fali
1012Arvin J SchemmerIndia2024-05-24Truhlar And Truhlar Attys NEW23Amy Elsner
1013Mujtaba U KuskoUnited Kingdom2024-06-04Benton, John B Jr NEW15Ivan Magalhaes
1014Isabel X KolmetzSpain2024-06-09Chanay, Jeffrey A Esq NEW16Stephen Shaw
1015Juan I MorascaAustralia2024-06-05Chapman, Ross E Esq PROPOSAL79Stephen Shaw
1016Isabel B MarrierArgentina2024-06-01Benton, John B Jr PROPOSAL11Onyama Limba
1017Claire B MaletRussia2024-06-05Feiner Bros UNQUALIFIED4Bernardo Dominic
1018Salvatore M PerinAustralia2024-06-07Commercial Press PROPOSAL47Amy Elsner
1019Aika S RulapaughUnited Kingdom2024-05-28Chemel, James L Cpa QUALIFIED44Ioni Bowcher
1020Morrow H BriddickSpain2024-06-17Commercial Press NEGOTIATION60Asiya Javayant
1021Maisha U InouyeFrance2024-06-17Feiner Bros RENEWAL26Asiya Javayant
1022Aika M IturbideIndia2024-06-01Chapman, Ross E Esq NEW72Ivan Magalhaes
1023Antonio E OstroskySpain2024-05-28Rousseaux, Michael Esq QUALIFIED40Ioni Bowcher
1024Jefferson M VocelkaBrazil2024-05-29Rousseaux, Michael Esq NEGOTIATION4Amy Elsner
1025Clifford E WhobreyCanada2024-06-13Truhlar And Truhlar Attys QUALIFIED40Ivan Magalhaes
1026Clifford H SaylorsIndia2024-06-09Chemel, James L Cpa QUALIFIED23Onyama Limba
1027Murillo V ChuiItaly2024-06-07Rousseaux, Michael Esq NEW11Bernardo Dominic
1028Isabel Q RulapaughArgentina2024-06-09Chanay, Jeffrey A Esq NEGOTIATION73Bernardo Dominic
1029Mujtaba M StockhamIndia2024-06-04Chapman, Ross E Esq QUALIFIED30Onyama Limba
1030Darci T CaldareraCanada2024-05-29Commercial Press RENEWAL39Stephen Shaw
1031Kadeem G GillianBrazil2024-06-20Morlong Associates NEW97Xuxue Feng
1032Murillo L RutaUnited Kingdom2024-06-05Chanay, Jeffrey A Esq NEGOTIATION89Xuxue Feng
1033Greenwood N MaletBrazil2024-06-14Morlong Associates UNQUALIFIED82Xuxue Feng
1034Antonio A RulapaughGermany2024-06-13Benton, John B Jr PROPOSAL4Elwin Sharvill
1035Mayumi D SaylorsRussia2024-05-31King, Christopher A Esq RENEWAL69Ioni Bowcher
1036Misaki P TollnerItaly2024-06-05Commercial Press PROPOSAL59Stephen Shaw
1037Jeanfrancois A KolmetzFrance2024-05-23Buckley Miller Wright NEGOTIATION63Xuxue Feng
1038Isabel S CaudyFrance2024-06-07Printing Dimensions NEW90Anna Fali
1039Jeanfrancois Y SlusarskiItaly2024-06-07Benton, John B Jr NEGOTIATION60Amy Elsner
1040Salvatore D KuskoCanada2024-05-30Buckley Miller Wright UNQUALIFIED0Asiya Javayant
1041Aditya I SaylorsArgentina2024-05-30Feiner Bros NEW59Ivan Magalhaes
1042Mujtaba W RutaIndia2024-06-02King, Christopher A Esq NEGOTIATION88Bernardo Dominic
1043Claire Z SergiBrazil2024-05-27Truhlar And Truhlar Attys UNQUALIFIED99Ivan Magalhaes
1044Misaki Z SchemmerAustralia2024-05-25Dorl, James J Esq UNQUALIFIED97Xuxue Feng
1045Maisha W CampainJapan2024-05-27Chapman, Ross E Esq RENEWAL6Bernardo Dominic
1046Misaki K GarufiIndia2024-06-09Chanay, Jeffrey A Esq RENEWAL80Anna Fali
1047Greenwood I ChuiArgentina2024-06-15Rangoni Of Florence NEW49Stephen Shaw
1048Claire E MaletSpain2024-06-15Rangoni Of Florence NEGOTIATION16Xuxue Feng
1049Tony A KuskoGermany2024-06-12Chapman, Ross E Esq NEGOTIATION25Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Octavia W InouyeSpainAnna Fali NEW
Emily Q RoysterFranceXuxue Feng PROPOSAL
Maisha I TollnerRussiaAsiya Javayant RENEWAL
David Z PoquetteFranceIoni Bowcher RENEWAL
Adams E OstroskyFranceElwin Sharvill NEW
Octavia R MaletIndiaIvan Magalhaes UNQUALIFIED
Jones R SlusarskiItalyElwin Sharvill PROPOSAL
Jennifer Y RutaRussiaOnyama Limba NEW
Emily I AmigonRussiaAnna Fali PROPOSAL
Costa W GarufiFranceIoni Bowcher NEW
Salvatore N KolmetzCanadaIoni Bowcher UNQUALIFIED
Isabel F VocelkaUnited KingdomStephen Shaw RENEWAL
Jennifer A WaycottItalyXuxue Feng NEGOTIATION
Munro I RutaFranceBernardo Dominic NEW
Costa U MorascaCanadaAnna Fali UNQUALIFIED
Ricardo I AlbaresGermanyAnna Fali UNQUALIFIED
Jones I GarufiArgentinaIoni Bowcher RENEWAL
Johnson W SaylorsGermanyAsiya Javayant QUALIFIED
Maria S VenereFranceOnyama Limba NEGOTIATION
Adams P StensethJapanElwin Sharvill RENEWAL
Jennifer G RoysterSpainElwin Sharvill NEW
Leja Q GauchoArgentinaIoni Bowcher UNQUALIFIED
Tony F SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Nicolas F InouyeCanadaIvan Magalhaes PROPOSAL
Tony S GauchoRussiaIoni Bowcher NEW
Tony O VocelkaGermanyElwin Sharvill NEGOTIATION
Munro M GillianFranceStephen Shaw QUALIFIED
Francesco Y StensethBrazilIvan Magalhaes PROPOSAL
Darci X FigeroaIndiaElwin Sharvill RENEWAL
Mayumi I WaycottSpainIvan Magalhaes NEW
Emily N StockhamCanadaAmy Elsner NEGOTIATION
Greenwood J BowleyArgentinaAmy Elsner NEGOTIATION
Jones C RulapaughFranceElwin Sharvill PROPOSAL
Munro M VenereItalyBernardo Dominic UNQUALIFIED
Juan D KuskoUnited KingdomIvan Magalhaes RENEWAL
Cody V OldroydJapanAnna Fali UNQUALIFIED
Wickens Z StensethIndiaBernardo Dominic PROPOSAL
Jeanfrancois N CaldareraGermanyIoni Bowcher RENEWAL
Francesco E CaldareraBrazilAsiya Javayant PROPOSAL
Darci G InouyeFranceOnyama Limba PROPOSAL
Aditya A ChuiIndiaIoni Bowcher QUALIFIED
Mujtaba W StockhamUnited KingdomOnyama Limba UNQUALIFIED
Maisha F PoquetteIndiaAmy Elsner NEGOTIATION
Deepesh T SaylorsUnited KingdomAmy Elsner QUALIFIED
Leja C WaycottGermanyBernardo Dominic QUALIFIED
Chavez C WaycottIndiaOnyama Limba NEGOTIATION
Kaitlin Z FigeroaBrazilIoni Bowcher PROPOSAL
Sinclair B WaycottBrazilAnna Fali NEGOTIATION
Julie A ButtAustraliaIvan Magalhaes RENEWAL
Julie Y TollnerGermanyAnna Fali UNQUALIFIED
Frozen Columns
Name
Octavia S Butt
Munro G Oldroyd
Ivar U Schemmer
Alejandro R Wieser
Chavez J Ostrosky
Arvin H Stenseth
Emily G Perin
Ricardo C Vocelka
Mujtaba F Inouye
Mayumi G Malet
Wickens R Stenseth
Costa P Nicka
James H Whobrey
Misaki W Dilliard
Ricardo H Paprocki
Misaki S Glick
Chavez X Darakjy
Julie T Ruta
Mayumi M Rim
Adams I Kolmetz
James S Iturbide
Aika G Saylors
Izzy Y Whobrey
Chavez P Wieser
Costa I Schemmer
Leja J Caldarera
Jeanfrancois H Wieser
Rodrigues V Perin
Jennifer K Foller
Wickens V Nestle
Deepesh Z Shinko
Jones Q Morasca
Wickens W Oldroyd
Johnson Q Flosi
Jennifer Z Malet
Rodrigues P Poquette
Morrow T Butt
Misaki J Flosi
Jones F Maclead
Munro S Saylors
Chavez L Royster
James D Dilliard
Salvatore P Garufi
Jones S Ferencz
Octavia S Gaucho
Alejandro C Slusarski
Johnson Z Albares
Stacey O Perin
Cody L Gillian
Sinclair U Ferencz
IdCountryDate
1000Japan2024-05-26
1001Australia2024-06-09
1002France2024-06-03
1003United Kingdom2024-06-12
1004Australia2024-05-28
1005United Kingdom2024-05-23
1006Japan2024-06-06
1007Italy2024-06-16
1008United Kingdom2024-06-06
1009Russia2024-06-20
1010Australia2024-05-28
1011India2024-05-27
1012Argentina2024-06-21
1013Germany2024-06-17
1014Japan2024-05-25
1015Russia2024-06-13
1016Italy2024-06-15
1017Russia2024-06-08
1018Italy2024-05-23
1019India2024-06-10
1020India2024-06-18
1021Australia2024-06-04
1022France2024-05-27
1023Argentina2024-05-23
1024Germany2024-06-01
1025Russia2024-05-23
1026Russia2024-05-31
1027France2024-06-21
1028Germany2024-06-17
1029Brazil2024-06-12
1030Brazil2024-06-05
1031Spain2024-05-28
1032Australia2024-06-16
1033Australia2024-06-14
1034Canada2024-06-06
1035Russia2024-06-19
1036Canada2024-05-23
1037Spain2024-06-14
1038France2024-05-25
1039Japan2024-05-23
1040Australia2024-05-25
1041United Kingdom2024-06-07
1042France2024-06-07
1043Russia2024-06-21
1044Argentina2024-06-02
1045Spain2024-05-24
1046France2024-06-19
1047United Kingdom2024-06-17
1048Canada2024-05-24
1049Spain2024-06-20

On-Demand Data

NameIdCountryDate
Aruna U Iturbide1000Japan2024-05-26
Octavia Z Ruta1001India2024-06-09
Julie H Dilliard1002Australia2024-06-16
Murillo L Foller1003France2024-05-29
Aruna U Sergi1004United Kingdom2024-06-04
Ashley A Whobrey1005Brazil2024-06-21
Clifford L Whobrey1006Spain2024-06-12
Jeanfrancois Q Wieser1007Australia2024-06-07
Kaitlin Y Tollner1008Australia2024-06-16
Greenwood F Foller1009Argentina2024-06-12
Alejandro S Bowley1010Spain2024-06-03
Munro C Gaucho1011Argentina2024-05-31
Misaki C Gaucho1012Russia2024-06-16
Ivar T Saylors1013France2024-05-23
Murillo J Stenseth1014Australia2024-06-08
Jones J Slusarski1015India2024-06-16
Misaki J Caudy1016Italy2024-06-07
Aika D Malet1017France2024-05-25
Nicolas Q Garufi1018Italy2024-06-07
David S Doe1019Italy2024-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna R SaylorsRussiaAnna Fali PROPOSAL
Francesco L MorascaArgentinaOnyama Limba UNQUALIFIED
Rodrigues Y SergiJapanAmy Elsner PROPOSAL
Costa O NickaAustraliaBernardo Dominic PROPOSAL
Kadeem S PaprockiArgentinaAmy Elsner QUALIFIED
Smith Z SergiAustraliaElwin Sharvill QUALIFIED
Maisha P WhobreyBrazilAmy Elsner QUALIFIED
Johnson J RoysterSpainStephen Shaw QUALIFIED
Aruna K VenereUnited KingdomBernardo Dominic NEGOTIATION
Deepesh B SaylorsCanadaElwin Sharvill RENEWAL
Aika A DoeGermanyOnyama Limba QUALIFIED
Emily F KuskoRussiaOnyama Limba QUALIFIED
Francesco X SaylorsFranceIvan Magalhaes RENEWAL
Darci X GarufiItalyStephen Shaw NEGOTIATION
Clifford P StensethRussiaIoni Bowcher NEW
Emily I BriddickBrazilIvan Magalhaes NEGOTIATION
James U MaletRussiaBernardo Dominic PROPOSAL
Leja A StensethAustraliaAmy Elsner PROPOSAL
Julie Z MaletSpainIvan Magalhaes NEGOTIATION
Jefferson U ChuiItalyStephen Shaw NEGOTIATION
Tony P ShinkoSpainAnna Fali NEGOTIATION
Johnson F DilliardRussiaStephen Shaw UNQUALIFIED
Rodrigues O FigeroaRussiaOnyama Limba RENEWAL
Antonio U MacleadRussiaStephen Shaw NEGOTIATION
Wickens Q PerinIndiaElwin Sharvill UNQUALIFIED
Maisha Q ButtJapanAsiya Javayant UNQUALIFIED
Ivar Y GarufiItalyElwin Sharvill QUALIFIED
James E NickaSpainStephen Shaw QUALIFIED
Silvio T MaletGermanyStephen Shaw PROPOSAL
Emily K BowleyGermanyElwin Sharvill PROPOSAL
Murillo B AmigonAustraliaAmy Elsner PROPOSAL
Adams X StensethArgentinaIvan Magalhaes RENEWAL
Mujtaba P NestleSpainIoni Bowcher PROPOSAL
Tony L CampainArgentinaAsiya Javayant NEW
Aika J OstroskyRussiaIvan Magalhaes QUALIFIED
Smith E OldroydBrazilBernardo Dominic NEGOTIATION
James F NestleItalyAnna Fali NEGOTIATION
Salvatore B IturbideFranceIvan Magalhaes RENEWAL
Ivar H OstroskyCanadaAsiya Javayant NEGOTIATION
Julie P IturbideBrazilIvan Magalhaes 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>