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
Misaki M CaldareraCanadaElwin Sharvill NEGOTIATION
Antonio T ButtAustraliaAnna Fali PROPOSAL
Smith G GauchoItalyIvan Magalhaes QUALIFIED
Jeanfrancois G PerinCanadaAsiya Javayant NEW
Johnson F KolmetzCanadaElwin Sharvill RENEWAL
Alejandro F VocelkaRussiaElwin Sharvill PROPOSAL
Sinclair C RulapaughUnited KingdomOnyama Limba QUALIFIED
Francesco R FigeroaArgentinaXuxue Feng RENEWAL
Maisha P WhobreyUnited KingdomAnna Fali UNQUALIFIED
James A MaletAustraliaOnyama Limba UNQUALIFIED
Aika Y DoeIndiaBernardo Dominic NEW
Faith K FollerJapanStephen Shaw NEW
Mujtaba U OldroydSpainIoni Bowcher PROPOSAL
Kadeem Q BriddickRussiaStephen Shaw UNQUALIFIED
James T PerinBrazilBernardo Dominic NEGOTIATION
David C MarrierSpainElwin Sharvill RENEWAL
Arvin W BologniaIndiaIvan Magalhaes PROPOSAL
Alejandro R InouyeCanadaAmy Elsner UNQUALIFIED
Aruna M ChuiCanadaAnna Fali RENEWAL
Adams F RulapaughSpainAsiya Javayant QUALIFIED
Ricardo V SergiIndiaIoni Bowcher NEW
Jones R PoquetteFranceElwin Sharvill NEW
Alejandro I PoquetteRussiaBernardo Dominic RENEWAL
Izzy L AmigonSpainXuxue Feng NEW
Aruna D GillianJapanIvan Magalhaes NEW
Salvatore P WhobreyJapanIoni Bowcher QUALIFIED
Costa P AlbaresRussiaIoni Bowcher QUALIFIED
Mujtaba P SlusarskiBrazilIvan Magalhaes QUALIFIED
Deepesh Q OldroydFranceOnyama Limba QUALIFIED
Leja L SergiJapanAnna Fali PROPOSAL
Jeanfrancois C WieserGermanyOnyama Limba NEGOTIATION
Morrow A VocelkaGermanyIoni Bowcher RENEWAL
Ivar L StensethGermanyIvan Magalhaes UNQUALIFIED
Aika Q GlickJapanAmy Elsner RENEWAL
Kaitlin X DoeRussiaAnna Fali NEGOTIATION
Kaitlin U DilliardJapanAmy Elsner NEGOTIATION
Ashley R SaylorsBrazilElwin Sharvill QUALIFIED
Stacey C IturbideFranceBernardo Dominic RENEWAL
Juan R RoysterIndiaStephen Shaw NEGOTIATION
Munro P KolmetzIndiaAsiya Javayant RENEWAL
Aditya K MorascaGermanyAsiya Javayant RENEWAL
Antonio C RulapaughGermanyIoni Bowcher PROPOSAL
Chavez K NestleItalyIoni Bowcher QUALIFIED
Mujtaba X SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Isabel T IturbideBrazilXuxue Feng NEW
Salvatore E BologniaIndiaIvan Magalhaes RENEWAL
Tony M FerenczJapanElwin Sharvill NEGOTIATION
Rodrigues T BowleyItalyAnna Fali UNQUALIFIED
James X IturbideAustraliaXuxue Feng NEW
Misaki L BriddickItalyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford Y InouyeGermanyAnna Fali NEGOTIATION
Costa W DarakjyFranceAmy Elsner QUALIFIED
Morrow M WaycottAustraliaAmy Elsner RENEWAL
Misaki K BriddickJapanStephen Shaw UNQUALIFIED
Leja Y VocelkaFranceStephen Shaw QUALIFIED
Faith M GauchoJapanAsiya Javayant QUALIFIED
Aditya O RimAustraliaOnyama Limba PROPOSAL
Izzy N FollerIndiaOnyama Limba NEW
Adams T KuskoJapanElwin Sharvill PROPOSAL
Arvin M GlickGermanyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams A FerenczItaly2025-04-08Printing Dimensions UNQUALIFIED43Amy Elsner
1001Kadeem J MorascaIndia2025-04-07Commercial Press NEGOTIATION67Asiya Javayant
1002Ivar A FigeroaGermany2025-04-04Chemel, James L Cpa UNQUALIFIED53Xuxue Feng
1003Darci M TollnerArgentina2025-04-03Feiner Bros RENEWAL58Stephen Shaw
1004Kaitlin V FerenczUnited Kingdom2025-04-22King, Christopher A Esq RENEWAL26Elwin Sharvill
1005Misaki C AlbaresItaly2025-04-13Chemel, James L Cpa NEW18Stephen Shaw
1006Stacey V MacleadAustralia2025-04-07Benton, John B Jr NEGOTIATION31Elwin Sharvill
1007Antonio M AmigonAustralia2025-04-16Rangoni Of Florence NEW40Elwin Sharvill
1008Francesco T KolmetzItaly2025-04-19Feltz Printing Service RENEWAL35Onyama Limba
1009Jefferson L MorascaRussia2025-04-15Buckley Miller Wright NEGOTIATION44Elwin Sharvill
1010Claire D FollerSpain2025-04-23Chanay, Jeffrey A Esq RENEWAL74Elwin Sharvill
1011Aditya C RoysterFrance2025-04-16Chapman, Ross E Esq PROPOSAL31Ioni Bowcher
1012Ashley I CaudyAustralia2025-04-16Morlong Associates QUALIFIED77Stephen Shaw
1013Jeanfrancois Y SaylorsJapan2025-04-24Feiner Bros NEW21Stephen Shaw
1014Maria K GauchoBrazil2025-04-14Truhlar And Truhlar Attys NEGOTIATION25Asiya Javayant
1015Leon H CaudyAustralia2025-04-22Rousseaux, Michael Esq PROPOSAL45Stephen Shaw
1016Murillo F GillianCanada2025-04-08Feltz Printing Service NEGOTIATION25Elwin Sharvill
1017Antonio D StensethFrance2025-04-23Truhlar And Truhlar Attys NEW0Anna Fali
1018Johnson K MorascaRussia2025-04-10Rangoni Of Florence RENEWAL91Stephen Shaw
1019Stacey U CampainRussia2025-04-15Printing Dimensions NEGOTIATION66Bernardo Dominic
1020Deepesh J GillianSpain2025-03-31Chapman, Ross E Esq UNQUALIFIED53Elwin Sharvill
1021Cody A DoeBrazil2025-04-27Rangoni Of Florence NEGOTIATION3Onyama Limba
1022Jefferson O KolmetzGermany2025-04-06Truhlar And Truhlar Attys QUALIFIED59Bernardo Dominic
1023Munro J AmigonItaly2025-04-06King, Christopher A Esq QUALIFIED31Bernardo Dominic
1024Ashley G PoquetteArgentina2025-04-09King, Christopher A Esq PROPOSAL74Stephen Shaw
1025Morrow A FollerSpain2025-04-21Buckley Miller Wright PROPOSAL81Xuxue Feng
1026Julie B MaletFrance2025-04-11Printing Dimensions NEGOTIATION99Ioni Bowcher
1027Kaitlin K CaldareraCanada2025-04-16Printing Dimensions NEGOTIATION64Stephen Shaw
1028Rodrigues X FerenczGermany2025-04-11Dorl, James J Esq NEGOTIATION99Stephen Shaw
1029Alejandro G SchemmerSpain2025-04-25Rousseaux, Michael Esq RENEWAL48Ivan Magalhaes
1030Mayumi Z MacleadCanada2025-04-15Printing Dimensions QUALIFIED52Anna Fali
1031Maisha B VocelkaFrance2025-03-31Chemel, James L Cpa QUALIFIED58Onyama Limba
1032Costa Y MaletRussia2025-04-24Commercial Press UNQUALIFIED47Ioni Bowcher
1033Aruna R WhobreyBrazil2025-04-15Rangoni Of Florence NEGOTIATION22Anna Fali
1034Smith V RutaArgentina2025-04-22Feltz Printing Service UNQUALIFIED65Ioni Bowcher
1035James Z SaylorsUnited Kingdom2025-04-08Chapman, Ross E Esq QUALIFIED76Bernardo Dominic
1036Leon J RimUnited Kingdom2025-03-31Chemel, James L Cpa NEGOTIATION12Bernardo Dominic
1037Mujtaba Z MaletBrazil2025-04-29Rangoni Of Florence PROPOSAL45Ivan Magalhaes
1038Arvin H CaudyArgentina2025-04-21Chapman, Ross E Esq PROPOSAL55Xuxue Feng
1039Aruna N MacleadJapan2025-04-26Chapman, Ross E Esq PROPOSAL41Xuxue Feng
1040Maria M PoquetteArgentina2025-04-19Feltz Printing Service NEW88Elwin Sharvill
1041Mayumi N WieserSpain2025-04-14Dorl, James J Esq QUALIFIED76Anna Fali
1042Kadeem L GillianSpain2025-04-09Chapman, Ross E Esq QUALIFIED78Asiya Javayant
1043Johnson S FollerAustralia2025-04-06Buckley Miller Wright NEGOTIATION42Onyama Limba
1044Rodrigues M MarrierArgentina2025-04-28Truhlar And Truhlar Attys UNQUALIFIED30Stephen Shaw
1045Emily E GauchoSpain2025-04-27Commercial Press QUALIFIED81Anna Fali
1046Aditya O FerenczRussia2025-04-25Feltz Printing Service NEGOTIATION63Ivan Magalhaes
1047Octavia V WaycottAustralia2025-04-23King, Christopher A Esq PROPOSAL40Asiya Javayant
1048Leon Y AlbaresBrazil2025-04-22Printing Dimensions RENEWAL69Amy Elsner
1049Murillo N DilliardIndia2025-04-20Commercial Press NEW94Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson D MaletAustraliaBernardo Dominic UNQUALIFIED
Tony I MorascaUnited KingdomAmy Elsner RENEWAL
Rodrigues E InouyeItalyBernardo Dominic NEGOTIATION
Greenwood G FollerAustraliaAmy Elsner RENEWAL
Claire M VenereFranceOnyama Limba QUALIFIED
Ivar Z InouyeItalyOnyama Limba RENEWAL
Darci W RimUnited KingdomAnna Fali NEW
Julie K GauchoItalyAmy Elsner RENEWAL
Murillo N AlbaresCanadaElwin Sharvill NEW
Jeanfrancois Y MaletItalyAmy Elsner QUALIFIED
Misaki M ChuiUnited KingdomAnna Fali NEW
Nicolas H BowleyItalyBernardo Dominic RENEWAL
Mujtaba J GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin M FollerCanadaIvan Magalhaes NEGOTIATION
Misaki U RimRussiaElwin Sharvill RENEWAL
Ashley T PerinCanadaXuxue Feng NEGOTIATION
Stacey H GarufiIndiaStephen Shaw PROPOSAL
Mayumi C ButtIndiaBernardo Dominic QUALIFIED
Wickens R OstroskyFranceOnyama Limba PROPOSAL
Smith O MacleadSpainStephen Shaw PROPOSAL
Jefferson S PoquetteRussiaBernardo Dominic RENEWAL
Clifford D MarrierArgentinaOnyama Limba NEW
Juan M NickaJapanBernardo Dominic QUALIFIED
Sinclair T ChuiArgentinaIoni Bowcher NEW
Costa F OstroskyFranceIoni Bowcher NEGOTIATION
Arvin L GarufiBrazilXuxue Feng UNQUALIFIED
Mayumi L MaletArgentinaOnyama Limba NEGOTIATION
Jones I RutaRussiaIvan Magalhaes UNQUALIFIED
James J KuskoCanadaElwin Sharvill PROPOSAL
Maisha Q SchemmerGermanyIoni Bowcher RENEWAL
Jeanfrancois T MaletGermanyIvan Magalhaes NEGOTIATION
Chavez D FerenczBrazilStephen Shaw RENEWAL
David Q RulapaughFranceAnna Fali NEW
Misaki N GauchoRussiaStephen Shaw QUALIFIED
Maria T MarrierRussiaAsiya Javayant UNQUALIFIED
Isabel R TollnerRussiaIvan Magalhaes NEGOTIATION
Misaki L ShinkoIndiaIoni Bowcher RENEWAL
Sinclair O GarufiIndiaAnna Fali UNQUALIFIED
Cody X PerinUnited KingdomElwin Sharvill NEW
Isabel P RimArgentinaAsiya Javayant RENEWAL
Izzy C BowleyItalyAsiya Javayant NEW
Jeanfrancois L GillianAustraliaIoni Bowcher PROPOSAL
Antonio B CaudyArgentinaAmy Elsner UNQUALIFIED
Ivar Y BologniaItalyAmy Elsner RENEWAL
Chavez Y BriddickJapanStephen Shaw UNQUALIFIED
Claire K MacleadSpainElwin Sharvill PROPOSAL
Munro U StensethArgentinaStephen Shaw NEW
Antonio S AmigonSpainBernardo Dominic PROPOSAL
Greenwood J ButtUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois B DoeBrazilXuxue Feng QUALIFIED
Frozen Columns
Name
Isabel B Stenseth
Leon J Flosi
Smith W Venere
Johnson E Ferencz
Munro B Iturbide
Wickens E Inouye
Murillo V Perin
Jefferson L Inouye
Faith W Malet
Mayumi H Gaucho
Sinclair C Poquette
Alejandro D Stockham
Francesco L Malet
Octavia N Doe
Jefferson A Glick
Cody O Gaucho
Ivar N Briddick
Chavez O Malet
Alejandro U Bowley
Adams K Shinko
Murillo Y Paprocki
Smith W Wieser
Stacey M Saylors
Nicolas Z Rim
Aditya K Maclead
Mayumi D Inouye
Maisha F Glick
Jennifer O Doe
Aditya V Royster
Ivar X Maclead
Claire E Sergi
Tony F Figeroa
Rodrigues N Saylors
Emily S Kusko
Chavez Y Nicka
Ivar D Oldroyd
Maria Q Caldarera
Misaki V Nestle
Wickens W Glick
Mujtaba Z Iturbide
Costa A Dilliard
Kadeem B Chui
Johnson E Foller
David R Maclead
Stacey R Albares
Salvatore B Vocelka
Morrow E Glick
Sinclair Y Caudy
Leon D Flosi
Morrow G Poquette
IdCountryDate
1000Canada2025-04-15
1001France2025-04-24
1002Japan2025-04-25
1003Italy2025-04-03
1004Brazil2025-04-26
1005Russia2025-04-03
1006Italy2025-04-03
1007Italy2025-04-20
1008Canada2025-04-23
1009United Kingdom2025-04-09
1010Argentina2025-04-23
1011Germany2025-04-06
1012Japan2025-04-07
1013Australia2025-04-02
1014Argentina2025-04-29
1015Germany2025-04-11
1016Russia2025-04-04
1017Spain2025-04-07
1018Australia2025-04-10
1019France2025-04-12
1020Argentina2025-04-11
1021Germany2025-04-21
1022United Kingdom2025-04-07
1023United Kingdom2025-04-02
1024Australia2025-04-14
1025India2025-04-13
1026Canada2025-04-16
1027Italy2025-04-08
1028Japan2025-04-29
1029India2025-04-13
1030Japan2025-04-08
1031Argentina2025-04-01
1032Brazil2025-04-08
1033France2025-04-12
1034Japan2025-03-31
1035Australia2025-04-02
1036Australia2025-04-27
1037Canada2025-04-03
1038Germany2025-04-05
1039India2025-04-01
1040United Kingdom2025-04-11
1041Brazil2025-04-16
1042Brazil2025-04-27
1043Japan2025-04-21
1044United Kingdom2025-04-20
1045Argentina2025-04-02
1046Italy2025-04-11
1047Germany2025-04-24
1048France2025-04-25
1049Brazil2025-04-28

On-Demand Data

NameIdCountryDate
Salvatore B Marrier1000Canada2025-04-26
Sinclair T Figeroa1001France2025-04-14
Faith Q Foller1002United Kingdom2025-04-27
Wickens J Kusko1003Russia2025-04-14
Ivar V Rulapaugh1004Canada2025-04-03
Faith C Rim1005Argentina2025-04-05
Jefferson Z Whobrey1006Japan2025-04-06
Maisha N Morasca1007Australia2025-04-11
Mujtaba M Rim1008France2025-04-15
Alejandro V Malet1009Brazil2025-04-09
David R Rulapaugh1010India2025-04-16
Kadeem L Kolmetz1011Spain2025-04-07
Tony O Poquette1012United Kingdom2025-04-20
Jennifer Y Briddick1013Canada2025-04-06
Johnson O Whobrey1014Spain2025-04-19
Adams T Albares1015Russia2025-04-20
Jennifer Y Chui1016Russia2025-04-17
Leon B Waycott1017Brazil2025-04-23
Clifford A Stenseth1018France2025-04-29
Maria D Oldroyd1019Brazil2025-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith Y TollnerGermanyAmy Elsner NEGOTIATION
Maria A SaylorsGermanyStephen Shaw NEGOTIATION
Antonio S SergiAustraliaXuxue Feng UNQUALIFIED
Tony V SaylorsIndiaAnna Fali PROPOSAL
Claire J NickaIndiaAnna Fali RENEWAL
Murillo P KolmetzSpainOnyama Limba NEW
Aditya S StensethBrazilXuxue Feng UNQUALIFIED
Kadeem F MaletAustraliaElwin Sharvill NEW
Maria L OstroskyGermanyOnyama Limba NEW
Sinclair F BriddickAustraliaOnyama Limba PROPOSAL
Munro U ChuiIndiaBernardo Dominic QUALIFIED
Deepesh Y NickaFranceElwin Sharvill UNQUALIFIED
Munro W StensethAustraliaAnna Fali NEW
Darci P MarrierFranceAmy Elsner NEGOTIATION
Jefferson Q MaletGermanyAmy Elsner RENEWAL
David X BologniaArgentinaIoni Bowcher UNQUALIFIED
Stacey G FigeroaCanadaElwin Sharvill NEW
Stacey G PoquetteIndiaAnna Fali NEW
Jeanfrancois Z AlbaresIndiaAnna Fali NEGOTIATION
Jeanfrancois U FerenczArgentinaOnyama Limba UNQUALIFIED
Arvin O FerenczIndiaStephen Shaw PROPOSAL
Costa N GauchoGermanyBernardo Dominic NEW
Claire I MaletJapanIoni Bowcher UNQUALIFIED
Juan Q TollnerItalyIoni Bowcher QUALIFIED
Mujtaba J NickaFranceIoni Bowcher PROPOSAL
Julie I FigeroaGermanyAnna Fali UNQUALIFIED
Wickens T InouyeBrazilXuxue Feng PROPOSAL
Greenwood U KuskoIndiaElwin Sharvill NEGOTIATION
Murillo X GlickSpainAnna Fali QUALIFIED
Antonio E RimRussiaAnna Fali UNQUALIFIED
Mayumi X ChuiJapanStephen Shaw UNQUALIFIED
Arvin Y VenereBrazilOnyama Limba PROPOSAL
Adams H WaycottSpainStephen Shaw NEW
Misaki O RutaIndiaIvan Magalhaes RENEWAL
Emily S CaldareraRussiaAsiya Javayant PROPOSAL
Stacey P BriddickJapanBernardo Dominic UNQUALIFIED
Ricardo C FigeroaBrazilOnyama Limba PROPOSAL
Alejandro K WaycottIndiaIvan Magalhaes NEGOTIATION
Antonio S BologniaGermanyIvan Magalhaes PROPOSAL
Greenwood I ChuiIndiaIvan Magalhaes 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>