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
Julie J TollnerItalyStephen Shaw QUALIFIED
Mujtaba L FigeroaCanadaIoni Bowcher QUALIFIED
Kadeem R VocelkaSpainAsiya Javayant PROPOSAL
James L RulapaughItalyXuxue Feng RENEWAL
David W FigeroaSpainElwin Sharvill PROPOSAL
Alejandro S KuskoIndiaAmy Elsner NEGOTIATION
Nicolas R VocelkaGermanyIvan Magalhaes UNQUALIFIED
Deepesh C RoysterSpainBernardo Dominic QUALIFIED
David K VenereFranceAsiya Javayant RENEWAL
Costa L StensethRussiaOnyama Limba NEW
Faith W BriddickAustraliaOnyama Limba NEW
Maria X RulapaughJapanElwin Sharvill QUALIFIED
Aditya X StockhamIndiaBernardo Dominic PROPOSAL
Aika C MorascaArgentinaOnyama Limba UNQUALIFIED
Ricardo I WaycottCanadaBernardo Dominic QUALIFIED
Juan W BriddickJapanAmy Elsner UNQUALIFIED
Maria D PaprockiJapanAmy Elsner UNQUALIFIED
Aika Q WieserCanadaIvan Magalhaes PROPOSAL
Leon I VenereCanadaStephen Shaw NEW
Morrow H BologniaIndiaBernardo Dominic RENEWAL
Claire N WhobreyGermanyBernardo Dominic RENEWAL
Ashley B RimGermanyElwin Sharvill UNQUALIFIED
Maria L WieserSpainAnna Fali NEGOTIATION
Costa U InouyeItalyIvan Magalhaes NEGOTIATION
Greenwood R AmigonAustraliaIoni Bowcher PROPOSAL
Isabel Z WhobreyJapanAsiya Javayant RENEWAL
Julie F AmigonCanadaOnyama Limba UNQUALIFIED
Leon O PoquetteJapanAsiya Javayant NEW
James Z BologniaGermanyElwin Sharvill PROPOSAL
Alejandro V VenereBrazilBernardo Dominic NEW
Tony V ChuiCanadaElwin Sharvill UNQUALIFIED
Isabel V IturbideSpainIvan Magalhaes PROPOSAL
Johnson U NickaGermanyIoni Bowcher UNQUALIFIED
Mayumi L DarakjySpainAsiya Javayant PROPOSAL
Maisha L SaylorsJapanXuxue Feng NEW
Tony Q InouyeCanadaAmy Elsner QUALIFIED
Johnson F SergiRussiaAsiya Javayant QUALIFIED
Sinclair I DilliardJapanXuxue Feng PROPOSAL
Adams W RutaRussiaOnyama Limba NEGOTIATION
Murillo T RulapaughGermanyIoni Bowcher NEW
Juan Q StensethGermanyStephen Shaw QUALIFIED
Mujtaba F AmigonBrazilElwin Sharvill QUALIFIED
Chavez M RimJapanBernardo Dominic NEW
Mujtaba V AmigonCanadaAmy Elsner UNQUALIFIED
Misaki X WaycottBrazilAsiya Javayant NEW
Wickens B PoquetteJapanAsiya Javayant UNQUALIFIED
Ashley S DilliardAustraliaOnyama Limba NEGOTIATION
Johnson A InouyeSpainXuxue Feng UNQUALIFIED
Izzy X RimBrazilBernardo Dominic NEW
Morrow O RutaFranceStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy P CaldareraItalyXuxue Feng PROPOSAL
Jeanfrancois D VenereIndiaStephen Shaw NEGOTIATION
Aditya H StockhamFranceBernardo Dominic UNQUALIFIED
Rodrigues M BologniaGermanyOnyama Limba UNQUALIFIED
Alejandro D MacleadFranceOnyama Limba UNQUALIFIED
Aditya V OldroydArgentinaStephen Shaw QUALIFIED
Kaitlin O RimCanadaBernardo Dominic QUALIFIED
Johnson E VocelkaItalyOnyama Limba QUALIFIED
Juan W OstroskyJapanAmy Elsner QUALIFIED
Greenwood F PaprockiGermanyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow M BowleyBrazil2025-05-26Rangoni Of Florence NEGOTIATION10Ioni Bowcher
1001Aruna S GillianJapan2025-05-31Truhlar And Truhlar Attys QUALIFIED21Xuxue Feng
1002Chavez C NestleSpain2025-05-19Rangoni Of Florence NEGOTIATION95Elwin Sharvill
1003Jones H RulapaughGermany2025-06-09Rousseaux, Michael Esq NEGOTIATION35Amy Elsner
1004Ricardo S ShinkoRussia2025-05-19Chemel, James L Cpa PROPOSAL21Xuxue Feng
1005Munro C DilliardUnited Kingdom2025-05-23Chapman, Ross E Esq QUALIFIED49Amy Elsner
1006Deepesh O BriddickCanada2025-05-19Buckley Miller Wright RENEWAL35Ivan Magalhaes
1007Alejandro U FlosiFrance2025-06-03Rangoni Of Florence NEW65Xuxue Feng
1008Aika G DilliardRussia2025-05-20Morlong Associates QUALIFIED35Anna Fali
1009Chavez K NickaCanada2025-05-19Chanay, Jeffrey A Esq NEGOTIATION19Amy Elsner
1010Silvio F BologniaUnited Kingdom2025-05-23Benton, John B Jr RENEWAL26Amy Elsner
1011Darci K FlosiArgentina2025-05-27Feiner Bros NEW83Amy Elsner
1012Aika D ChuiCanada2025-05-25Benton, John B Jr RENEWAL98Asiya Javayant
1013Mujtaba T GauchoFrance2025-06-06Truhlar And Truhlar Attys QUALIFIED75Ivan Magalhaes
1014Nicolas L CaldareraItaly2025-06-07Rangoni Of Florence QUALIFIED91Ivan Magalhaes
1015Mayumi N WieserAustralia2025-05-31Buckley Miller Wright NEGOTIATION47Ivan Magalhaes
1016Costa H StockhamGermany2025-06-07Chanay, Jeffrey A Esq NEGOTIATION45Stephen Shaw
1017Smith V SchemmerSpain2025-05-28Feiner Bros RENEWAL86Anna Fali
1018Morrow D PaprockiCanada2025-05-21Buckley Miller Wright NEW39Ivan Magalhaes
1019Aika R RoysterFrance2025-05-31Rousseaux, Michael Esq PROPOSAL15Anna Fali
1020Silvio G SergiUnited Kingdom2025-05-20Chemel, James L Cpa PROPOSAL78Anna Fali
1021Izzy X GlickJapan2025-06-04Rousseaux, Michael Esq RENEWAL63Amy Elsner
1022Salvatore J TollnerCanada2025-06-10Rangoni Of Florence QUALIFIED31Asiya Javayant
1023Jennifer J WhobreyUnited Kingdom2025-05-21Chanay, Jeffrey A Esq NEGOTIATION76Asiya Javayant
1024Johnson E OstroskyRussia2025-05-20Feiner Bros RENEWAL68Anna Fali
1025Mujtaba K FollerGermany2025-05-25Morlong Associates NEGOTIATION40Onyama Limba
1026Jeanfrancois M FerenczGermany2025-05-27Morlong Associates NEGOTIATION54Bernardo Dominic
1027Aika C VocelkaIndia2025-06-02Dorl, James J Esq PROPOSAL11Amy Elsner
1028Jeanfrancois Z WieserRussia2025-06-02Chanay, Jeffrey A Esq PROPOSAL25Ivan Magalhaes
1029Faith L PaprockiJapan2025-06-06Chanay, Jeffrey A Esq QUALIFIED54Ivan Magalhaes
1030Darci X ButtUnited Kingdom2025-05-25Chapman, Ross E Esq NEGOTIATION52Asiya Javayant
1031Maria E AmigonUnited Kingdom2025-05-26Rangoni Of Florence NEW89Stephen Shaw
1032Alejandro L InouyeJapan2025-05-26Morlong Associates RENEWAL35Elwin Sharvill
1033Mayumi G DoeBrazil2025-05-19Printing Dimensions NEGOTIATION76Ioni Bowcher
1034Chavez G DilliardJapan2025-05-22Chemel, James L Cpa PROPOSAL19Ioni Bowcher
1035Deepesh R PoquetteRussia2025-05-20Chemel, James L Cpa NEGOTIATION42Ivan Magalhaes
1036Silvio W KuskoIndia2025-05-30Rousseaux, Michael Esq NEW64Onyama Limba
1037Chavez A RulapaughRussia2025-06-14Rousseaux, Michael Esq QUALIFIED74Elwin Sharvill
1038Isabel W OldroydSpain2025-06-14Chemel, James L Cpa RENEWAL41Bernardo Dominic
1039Ashley G GillianArgentina2025-06-10King, Christopher A Esq PROPOSAL51Ivan Magalhaes
1040Smith B RutaRussia2025-06-12Chemel, James L Cpa RENEWAL35Bernardo Dominic
1041David H SchemmerIndia2025-05-31Truhlar And Truhlar Attys UNQUALIFIED77Elwin Sharvill
1042Salvatore N FerenczArgentina2025-06-03Morlong Associates NEGOTIATION54Stephen Shaw
1043Morrow U BologniaUnited Kingdom2025-05-24Morlong Associates PROPOSAL65Anna Fali
1044Kadeem N TollnerUnited Kingdom2025-05-22Rousseaux, Michael Esq PROPOSAL43Ivan Magalhaes
1045Sinclair G KolmetzUnited Kingdom2025-06-15Commercial Press RENEWAL53Anna Fali
1046Jones D FollerFrance2025-06-07Truhlar And Truhlar Attys NEGOTIATION38Asiya Javayant
1047Deepesh T CaldareraSpain2025-05-18Chanay, Jeffrey A Esq NEW96Anna Fali
1048Mujtaba K WhobreyArgentina2025-05-24Dorl, James J Esq RENEWAL85Ioni Bowcher
1049Alejandro H RulapaughGermany2025-06-13Feltz Printing Service NEGOTIATION48Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Morrow L FollerSpainIoni Bowcher PROPOSAL
Jones S ChuiCanadaIvan Magalhaes NEGOTIATION
Alejandro J GauchoGermanyElwin Sharvill RENEWAL
Alejandro A RimCanadaBernardo Dominic RENEWAL
Emily C KolmetzSpainElwin Sharvill UNQUALIFIED
Misaki F ShinkoIndiaBernardo Dominic NEGOTIATION
Alejandro E ShinkoFranceIoni Bowcher NEGOTIATION
Emily Y VenereJapanXuxue Feng PROPOSAL
Rodrigues S GauchoCanadaOnyama Limba PROPOSAL
Misaki G BowleyCanadaAnna Fali UNQUALIFIED
Cody Y BowleyGermanyStephen Shaw RENEWAL
Mujtaba P NickaBrazilXuxue Feng NEW
Wickens A MorascaFranceOnyama Limba RENEWAL
Leja A PoquetteFranceIoni Bowcher QUALIFIED
Julie X PoquetteAustraliaOnyama Limba RENEWAL
Tony Q AlbaresItalyIoni Bowcher QUALIFIED
Adams I FollerArgentinaElwin Sharvill QUALIFIED
Jeanfrancois R TollnerBrazilXuxue Feng NEGOTIATION
David D MarrierGermanyBernardo Dominic QUALIFIED
Francesco N MaletIndiaBernardo Dominic NEW
Smith O ButtRussiaAsiya Javayant NEGOTIATION
Maisha G MacleadItalyStephen Shaw PROPOSAL
Kaitlin L SchemmerFranceIoni Bowcher UNQUALIFIED
Jones Y BriddickArgentinaOnyama Limba PROPOSAL
Misaki W PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Jones W RoysterItalyElwin Sharvill RENEWAL
Adams E RimIndiaIvan Magalhaes UNQUALIFIED
Leon W FerenczSpainXuxue Feng QUALIFIED
Mujtaba P ShinkoAustraliaXuxue Feng NEW
Mayumi R CaldareraUnited KingdomBernardo Dominic QUALIFIED
Ashley B VocelkaBrazilOnyama Limba QUALIFIED
Jennifer V MarrierItalyAmy Elsner QUALIFIED
Jennifer M RulapaughJapanStephen Shaw RENEWAL
Johnson K WaycottRussiaXuxue Feng PROPOSAL
Murillo I FlosiUnited KingdomIoni Bowcher PROPOSAL
Kadeem O CampainSpainAmy Elsner NEGOTIATION
Munro S ButtIndiaAsiya Javayant NEGOTIATION
Adams K GarufiSpainAsiya Javayant RENEWAL
Juan Z CampainCanadaIoni Bowcher QUALIFIED
Kadeem F MacleadSpainIoni Bowcher NEW
Mayumi C PerinJapanElwin Sharvill UNQUALIFIED
Darci T WieserRussiaAmy Elsner RENEWAL
Izzy B WieserCanadaElwin Sharvill QUALIFIED
Wickens T MacleadUnited KingdomIvan Magalhaes QUALIFIED
Francesco T KolmetzSpainIoni Bowcher NEGOTIATION
David X GlickJapanIoni Bowcher UNQUALIFIED
Francesco D VocelkaGermanyAnna Fali RENEWAL
Munro D BriddickItalyBernardo Dominic NEGOTIATION
Emily E CampainAustraliaElwin Sharvill UNQUALIFIED
Tony F CampainArgentinaAmy Elsner NEW
Frozen Columns
Name
Munro U Iturbide
Aruna B Perin
Faith B Glick
Claire B Butt
Greenwood Z Glick
Chavez Z Perin
Alejandro I Malet
Aika J Garufi
Claire I Garufi
Maria D Figeroa
James F Vocelka
Mayumi S Whobrey
Jefferson C Slusarski
Jeanfrancois S Ruta
Tony K Venere
Sinclair Z Rulapaugh
Chavez E Flosi
Jones R Perin
Chavez I Butt
Arvin Z Darakjy
Murillo G Perin
Stacey Q Iturbide
Mujtaba K Stenseth
Octavia P Whobrey
Misaki B Bowley
Darci V Kusko
Mayumi G Nestle
Claire J Gillian
Kadeem P Marrier
Greenwood I Gillian
Silvio P Bolognia
Aditya R Dilliard
David W Kolmetz
Leja M Inouye
Francesco T Flosi
Jefferson Z Poquette
Aika A Gillian
Cody G Dilliard
Kadeem H Albares
Kadeem W Maclead
Kaitlin U Doe
James W Venere
Leja T Caudy
Wickens J Gaucho
Isabel S Figeroa
Silvio O Butt
Emily T Figeroa
Ivar O Gaucho
Juan J Dilliard
Julie E Caldarera
IdCountryDate
1000United Kingdom2025-06-13
1001Brazil2025-06-02
1002Canada2025-05-20
1003Brazil2025-06-06
1004United Kingdom2025-06-05
1005India2025-05-24
1006Brazil2025-05-19
1007Russia2025-05-22
1008Argentina2025-06-12
1009Japan2025-06-11
1010Russia2025-06-10
1011United Kingdom2025-06-01
1012Germany2025-05-17
1013Japan2025-06-07
1014France2025-06-11
1015Spain2025-05-19
1016Argentina2025-06-01
1017Argentina2025-06-13
1018Russia2025-05-27
1019Spain2025-05-22
1020Spain2025-06-10
1021Italy2025-05-25
1022Australia2025-06-05
1023Spain2025-06-13
1024Brazil2025-05-25
1025Japan2025-05-28
1026United Kingdom2025-06-08
1027Italy2025-06-07
1028Canada2025-05-29
1029United Kingdom2025-06-06
1030Germany2025-06-11
1031Canada2025-06-03
1032Spain2025-06-01
1033Japan2025-06-03
1034Australia2025-06-09
1035United Kingdom2025-06-02
1036Spain2025-06-10
1037Australia2025-06-10
1038Canada2025-05-27
1039Brazil2025-05-23
1040India2025-06-07
1041India2025-05-27
1042Japan2025-05-20
1043Germany2025-05-20
1044Russia2025-06-13
1045France2025-05-25
1046France2025-05-19
1047Canada2025-06-14
1048India2025-05-21
1049Germany2025-05-19

On-Demand Data

NameIdCountryDate
Morrow R Stockham1000India2025-06-10
Aruna I Garufi1001Russia2025-06-07
Antonio I Amigon1002Spain2025-05-22
Kaitlin L Amigon1003Spain2025-05-18
Murillo M Venere1004Argentina2025-05-17
Leon I Briddick1005Italy2025-05-26
Adams L Rulapaugh1006India2025-05-22
Maisha P Rim1007Australia2025-06-13
Ricardo R Rulapaugh1008Brazil2025-05-21
Wickens K Bolognia1009Italy2025-05-17
Leja P Whobrey1010Canada2025-05-28
Izzy X Whobrey1011United Kingdom2025-06-10
Izzy Q Rim1012Russia2025-06-11
Munro N Waycott1013Russia2025-06-12
Leon C Foller1014Argentina2025-05-31
Kaitlin F Caudy1015Japan2025-06-10
Ashley O Stenseth1016Italy2025-05-25
Francesco S Perin1017Germany2025-06-15
Antonio S Figeroa1018Japan2025-06-03
Tony L Oldroyd1019France2025-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo Y BologniaItalyStephen Shaw UNQUALIFIED
Leon E AmigonBrazilXuxue Feng QUALIFIED
Isabel S MorascaBrazilBernardo Dominic NEW
Alejandro S PoquetteBrazilIvan Magalhaes NEGOTIATION
Johnson K GauchoItalyBernardo Dominic RENEWAL
Kadeem B ChuiIndiaIoni Bowcher RENEWAL
Aruna B DarakjyFranceAmy Elsner NEGOTIATION
Greenwood D AmigonUnited KingdomIoni Bowcher QUALIFIED
Munro M FerenczRussiaOnyama Limba PROPOSAL
Greenwood J CampainBrazilAsiya Javayant UNQUALIFIED
Cody S KolmetzFranceIoni Bowcher NEW
Murillo T NestleRussiaAsiya Javayant NEW
Leja D InouyeGermanyAsiya Javayant UNQUALIFIED
Julie L CaudyBrazilElwin Sharvill RENEWAL
Jennifer Y PerinCanadaElwin Sharvill PROPOSAL
Cody X SergiGermanyAmy Elsner NEW
Mayumi F MaletFranceStephen Shaw NEGOTIATION
Juan O StockhamItalyXuxue Feng UNQUALIFIED
Chavez A RulapaughBrazilXuxue Feng NEW
Murillo T GillianRussiaAnna Fali NEGOTIATION
Smith J StockhamJapanIvan Magalhaes NEGOTIATION
Stacey X CampainCanadaXuxue Feng RENEWAL
Antonio B KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Smith M CaldareraJapanStephen Shaw NEW
Faith O DarakjyItalyAnna Fali UNQUALIFIED
Tony F PerinIndiaIvan Magalhaes PROPOSAL
Juan D MaletItalyIoni Bowcher UNQUALIFIED
Ricardo K BowleyItalyIvan Magalhaes NEGOTIATION
Rodrigues Q StockhamFranceAsiya Javayant UNQUALIFIED
Faith K VocelkaAustraliaAnna Fali RENEWAL
Claire K StockhamSpainIoni Bowcher PROPOSAL
Rodrigues Q ShinkoRussiaAsiya Javayant NEW
Emily M CampainGermanyIoni Bowcher NEGOTIATION
Faith W VocelkaArgentinaAnna Fali UNQUALIFIED
Chavez Q FollerUnited KingdomStephen Shaw NEGOTIATION
Mayumi U KolmetzRussiaElwin Sharvill NEGOTIATION
Aruna P AlbaresUnited KingdomStephen Shaw NEW
Jones J DoeFranceStephen Shaw NEW
Chavez C GlickCanadaOnyama Limba PROPOSAL
Kaitlin C SlusarskiCanadaOnyama Limba NEGOTIATION

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