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
Clifford J FigeroaIndiaIvan Magalhaes NEGOTIATION
Nicolas Y CaldareraCanadaAnna Fali RENEWAL
Francesco K KuskoUnited KingdomStephen Shaw QUALIFIED
David U AmigonSpainAmy Elsner RENEWAL
Morrow Q BowleyItalyStephen Shaw NEGOTIATION
Julie Z DoeFranceAsiya Javayant NEGOTIATION
Jeanfrancois J ButtIndiaAmy Elsner NEGOTIATION
Maisha F OstroskyGermanyAnna Fali NEGOTIATION
David W BowleyJapanStephen Shaw PROPOSAL
Leon O OstroskyBrazilIoni Bowcher PROPOSAL
Leja E FollerArgentinaBernardo Dominic RENEWAL
Sinclair H DarakjyCanadaAsiya Javayant QUALIFIED
Misaki X NestleAustraliaAnna Fali RENEWAL
Tony I InouyeFranceStephen Shaw NEGOTIATION
Aditya T PoquetteItalyStephen Shaw QUALIFIED
Claire E ShinkoFranceOnyama Limba NEGOTIATION
Cody N MorascaGermanyIvan Magalhaes QUALIFIED
Isabel H OstroskyRussiaAsiya Javayant NEGOTIATION
Nicolas W MarrierCanadaOnyama Limba RENEWAL
Salvatore Z FigeroaRussiaXuxue Feng UNQUALIFIED
Stacey I FerenczUnited KingdomAmy Elsner NEW
Izzy X SergiCanadaStephen Shaw RENEWAL
Rodrigues I InouyeIndiaIoni Bowcher RENEWAL
Ashley N KolmetzIndiaIvan Magalhaes NEGOTIATION
Mayumi K PerinSpainIoni Bowcher UNQUALIFIED
Kadeem X PerinIndiaStephen Shaw UNQUALIFIED
Arvin X KolmetzJapanStephen Shaw UNQUALIFIED
James H MacleadAustraliaXuxue Feng UNQUALIFIED
Octavia D PaprockiJapanXuxue Feng RENEWAL
Rodrigues K KuskoGermanyAmy Elsner NEW
Nicolas A OstroskyAustraliaAmy Elsner UNQUALIFIED
Mujtaba O CaudyBrazilAsiya Javayant NEW
Ricardo T DilliardArgentinaXuxue Feng UNQUALIFIED
Jennifer X TollnerUnited KingdomXuxue Feng UNQUALIFIED
Claire G CaudyJapanStephen Shaw UNQUALIFIED
Maria U PaprockiItalyStephen Shaw NEGOTIATION
Kaitlin N ButtGermanyIoni Bowcher QUALIFIED
Cody Z StockhamUnited KingdomAsiya Javayant NEGOTIATION
James J WhobreyRussiaIoni Bowcher RENEWAL
Adams Z SlusarskiBrazilStephen Shaw NEW
Salvatore T SergiJapanIoni Bowcher NEGOTIATION
Ricardo A CaudyAustraliaAnna Fali NEW
Stacey G StockhamCanadaOnyama Limba RENEWAL
Antonio K PaprockiGermanyIvan Magalhaes UNQUALIFIED
Francesco L FlosiJapanBernardo Dominic RENEWAL
Murillo O AlbaresRussiaIoni Bowcher NEW
Julie C KolmetzArgentinaAsiya Javayant UNQUALIFIED
Costa W StockhamBrazilBernardo Dominic QUALIFIED
Chavez J VenereGermanyStephen Shaw PROPOSAL
Deepesh K PerinFranceAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh B GlickArgentinaAsiya Javayant NEW
Juan X DilliardGermanyIoni Bowcher RENEWAL
Smith W OstroskyIndiaOnyama Limba QUALIFIED
Rodrigues A MaletIndiaStephen Shaw RENEWAL
Jeanfrancois Q AlbaresJapanAmy Elsner NEW
Maisha X RulapaughBrazilAnna Fali QUALIFIED
Murillo A DarakjyIndiaAsiya Javayant UNQUALIFIED
Octavia T KuskoItalyStephen Shaw UNQUALIFIED
Silvio E GauchoUnited KingdomOnyama Limba QUALIFIED
Kadeem B StockhamCanadaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba Y MaletArgentina2026-07-05King, Christopher A Esq PROPOSAL84Stephen Shaw
1001Mayumi F SlusarskiUnited Kingdom2026-07-06Buckley Miller Wright QUALIFIED22Onyama Limba
1002Octavia G PaprockiArgentina2026-06-28Truhlar And Truhlar Attys PROPOSAL87Anna Fali
1003Deepesh T FollerGermany2026-06-30Feiner Bros QUALIFIED86Ivan Magalhaes
1004Ivar J RutaFrance2026-06-29Truhlar And Truhlar Attys UNQUALIFIED91Ioni Bowcher
1005Juan P ShinkoUnited Kingdom2026-07-06Chapman, Ross E Esq RENEWAL72Elwin Sharvill
1006Jeanfrancois O WhobreySpain2026-07-17Morlong Associates NEW4Anna Fali
1007Kadeem F SchemmerBrazil2026-07-01Feltz Printing Service NEW98Asiya Javayant
1008Chavez W VocelkaRussia2026-07-19Benton, John B Jr NEW76Asiya Javayant
1009Aruna Z FlosiRussia2026-06-27King, Christopher A Esq NEW25Amy Elsner
1010Salvatore Y FerenczRussia2026-06-25Rangoni Of Florence PROPOSAL78Elwin Sharvill
1011Kaitlin O MaletCanada2026-07-22Feiner Bros RENEWAL22Elwin Sharvill
1012Antonio D ChuiArgentina2026-07-14Chapman, Ross E Esq PROPOSAL6Xuxue Feng
1013Cody K MarrierGermany2026-07-17Buckley Miller Wright NEGOTIATION6Amy Elsner
1014Jeanfrancois A GlickItaly2026-07-12Feiner Bros UNQUALIFIED56Ioni Bowcher
1015Antonio L FerenczItaly2026-07-12Chapman, Ross E Esq PROPOSAL35Elwin Sharvill
1016Julie W IturbideRussia2026-06-24Dorl, James J Esq QUALIFIED52Ioni Bowcher
1017Aika Z RulapaughItaly2026-07-04Printing Dimensions QUALIFIED37Bernardo Dominic
1018Costa M MarrierArgentina2026-07-10King, Christopher A Esq PROPOSAL55Ivan Magalhaes
1019Silvio D BriddickFrance2026-06-28Chanay, Jeffrey A Esq QUALIFIED52Anna Fali
1020Leon V MacleadFrance2026-07-02Chapman, Ross E Esq NEGOTIATION24Xuxue Feng
1021Salvatore S SaylorsUnited Kingdom2026-07-02Benton, John B Jr QUALIFIED39Xuxue Feng
1022Maisha M MorascaArgentina2026-06-27Printing Dimensions RENEWAL86Amy Elsner
1023Tony P AlbaresItaly2026-07-05Rangoni Of Florence UNQUALIFIED63Bernardo Dominic
1024Francesco U StensethBrazil2026-07-01Commercial Press PROPOSAL95Asiya Javayant
1025James C MaletArgentina2026-07-08Feiner Bros RENEWAL29Stephen Shaw
1026Isabel E GarufiIndia2026-07-03Truhlar And Truhlar Attys NEW31Ivan Magalhaes
1027Stacey J PaprockiItaly2026-07-18Chemel, James L Cpa RENEWAL10Asiya Javayant
1028Morrow U InouyeArgentina2026-06-27Rousseaux, Michael Esq RENEWAL48Ivan Magalhaes
1029Mujtaba V WaycottItaly2026-07-09Morlong Associates RENEWAL46Asiya Javayant
1030Kadeem J WhobreyJapan2026-07-21Rangoni Of Florence RENEWAL5Asiya Javayant
1031Ricardo X AlbaresAustralia2026-06-25Rousseaux, Michael Esq NEW10Elwin Sharvill
1032Morrow M StensethBrazil2026-07-20Rangoni Of Florence QUALIFIED33Elwin Sharvill
1033Kaitlin D ShinkoItaly2026-07-22Rousseaux, Michael Esq PROPOSAL35Ivan Magalhaes
1034Johnson P ButtGermany2026-06-26King, Christopher A Esq QUALIFIED2Ioni Bowcher
1035Ricardo C FlosiSpain2026-07-17Feltz Printing Service UNQUALIFIED39Bernardo Dominic
1036Ivar E DilliardJapan2026-07-17Dorl, James J Esq NEW12Elwin Sharvill
1037Greenwood P BriddickFrance2026-06-30Printing Dimensions QUALIFIED9Asiya Javayant
1038Rodrigues A StensethJapan2026-07-16Morlong Associates UNQUALIFIED55Bernardo Dominic
1039Jeanfrancois V MarrierSpain2026-07-02Commercial Press RENEWAL95Ioni Bowcher
1040Stacey T ChuiFrance2026-07-16Benton, John B Jr RENEWAL21Anna Fali
1041Antonio W MarrierJapan2026-07-03Commercial Press RENEWAL61Onyama Limba
1042Smith H DarakjyUnited Kingdom2026-07-23Commercial Press UNQUALIFIED35Bernardo Dominic
1043Tony I RulapaughArgentina2026-06-26Buckley Miller Wright UNQUALIFIED66Ivan Magalhaes
1044Mujtaba C ButtArgentina2026-07-04Truhlar And Truhlar Attys QUALIFIED21Bernardo Dominic
1045Claire K WhobreySpain2026-06-28Commercial Press PROPOSAL64Onyama Limba
1046Salvatore O StensethGermany2026-07-18Benton, John B Jr NEW91Xuxue Feng
1047Cody S IturbideGermany2026-06-27Buckley Miller Wright PROPOSAL92Ivan Magalhaes
1048Jeanfrancois Q ChuiSpain2026-07-14Chapman, Ross E Esq PROPOSAL13Anna Fali
1049Mujtaba G RimArgentina2026-07-05Dorl, James J Esq PROPOSAL19Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Octavia E RutaFranceAmy Elsner RENEWAL
Nicolas G AmigonAustraliaAsiya Javayant QUALIFIED
Sinclair K FigeroaIndiaAsiya Javayant RENEWAL
Ricardo P PoquetteSpainBernardo Dominic UNQUALIFIED
Mujtaba Y WaycottIndiaAsiya Javayant RENEWAL
Antonio X ButtFranceElwin Sharvill PROPOSAL
Octavia K PerinRussiaBernardo Dominic QUALIFIED
Emily H WaycottUnited KingdomAmy Elsner PROPOSAL
Francesco C DoeFranceIoni Bowcher PROPOSAL
Jeanfrancois Y GarufiJapanAnna Fali RENEWAL
Juan U SchemmerJapanXuxue Feng QUALIFIED
James P SergiArgentinaIvan Magalhaes UNQUALIFIED
Sinclair F FlosiAustraliaAmy Elsner PROPOSAL
Mujtaba V PoquetteSpainAnna Fali NEW
Tony W RimBrazilAsiya Javayant UNQUALIFIED
Aruna V MaletFranceIvan Magalhaes NEW
Johnson G PoquetteIndiaOnyama Limba PROPOSAL
Julie U FigeroaJapanAmy Elsner NEGOTIATION
Greenwood R ButtGermanyAnna Fali NEW
Greenwood Y AlbaresIndiaAmy Elsner PROPOSAL
Leon P VocelkaArgentinaIoni Bowcher NEGOTIATION
Izzy J CaudyFranceIvan Magalhaes PROPOSAL
Murillo Z NestleAustraliaAsiya Javayant QUALIFIED
Faith Z RimGermanyElwin Sharvill NEW
Alejandro H SlusarskiGermanyAsiya Javayant QUALIFIED
Maisha X TollnerItalyStephen Shaw QUALIFIED
Ricardo S IturbideGermanyElwin Sharvill NEGOTIATION
Kadeem E PerinRussiaIoni Bowcher RENEWAL
Wickens H BologniaFranceElwin Sharvill RENEWAL
Salvatore M NestleArgentinaAmy Elsner RENEWAL
Arvin F AlbaresUnited KingdomBernardo Dominic QUALIFIED
Claire V StensethJapanXuxue Feng QUALIFIED
Julie C OstroskyJapanAnna Fali RENEWAL
Maisha Q SergiJapanAmy Elsner RENEWAL
Sinclair R FigeroaJapanXuxue Feng NEGOTIATION
Wickens F KolmetzItalyIvan Magalhaes NEGOTIATION
Nicolas G DoeBrazilXuxue Feng UNQUALIFIED
Jefferson R RulapaughBrazilXuxue Feng UNQUALIFIED
Octavia G GlickAustraliaIoni Bowcher NEW
Mujtaba P CampainItalyAmy Elsner NEW
Izzy G PerinRussiaIvan Magalhaes QUALIFIED
Aika D MorascaCanadaAnna Fali PROPOSAL
Isabel S NickaBrazilStephen Shaw PROPOSAL
Clifford L KuskoItalyAsiya Javayant RENEWAL
Antonio P PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Greenwood D WieserSpainStephen Shaw QUALIFIED
Izzy B PoquetteRussiaBernardo Dominic NEW
Sinclair F KuskoCanadaElwin Sharvill RENEWAL
Izzy N KuskoUnited KingdomBernardo Dominic QUALIFIED
Rodrigues Y SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jones G Briddick
Maisha E Kolmetz
Leja A Sergi
Faith H Poquette
Cody Q Ruta
Mayumi Z Royster
Munro W Morasca
Arvin J Bolognia
Darci I Sergi
Mujtaba A Inouye
Deepesh Y Darakjy
Jennifer G Glick
Greenwood F Nestle
Alejandro F Morasca
Jones D Vocelka
Jennifer I Rim
Greenwood P Inouye
Kadeem A Ruta
Cody W Stenseth
Johnson S Saylors
Mujtaba O Nicka
Costa I Amigon
Greenwood E Paprocki
Maria A Flosi
Leja O Albares
Leja L Amigon
Faith H Sergi
Leja Q Malet
Emily D Malet
Alejandro G Darakjy
Sinclair X Gaucho
James G Nicka
Maria W Marrier
Claire K Sergi
Wickens Q Whobrey
Salvatore V Whobrey
Jeanfrancois H Bowley
Stacey S Darakjy
Maisha K Figeroa
Kaitlin M Nestle
Isabel I Paprocki
Mayumi G Malet
Smith X Whobrey
Clifford T Saylors
Emily Y Nicka
Faith C Poquette
Jefferson V Nicka
Arvin V Whobrey
Chavez C Malet
Aika D Marrier
IdCountryDate
1000United Kingdom2026-06-25
1001Australia2026-07-06
1002Australia2026-07-19
1003Russia2026-07-01
1004Spain2026-07-08
1005Brazil2026-06-29
1006Italy2026-07-17
1007Russia2026-07-15
1008Germany2026-07-04
1009Brazil2026-07-08
1010Russia2026-07-13
1011Brazil2026-06-29
1012Japan2026-07-12
1013France2026-07-17
1014Japan2026-07-03
1015Spain2026-07-13
1016Italy2026-07-13
1017Japan2026-07-16
1018Argentina2026-07-06
1019Canada2026-07-22
1020Spain2026-06-28
1021Japan2026-07-06
1022Japan2026-06-28
1023Australia2026-07-14
1024Argentina2026-07-17
1025Australia2026-07-18
1026France2026-07-17
1027Italy2026-07-04
1028Russia2026-07-19
1029Australia2026-06-27
1030Canada2026-06-30
1031Germany2026-07-12
1032United Kingdom2026-07-14
1033Italy2026-07-19
1034Russia2026-07-09
1035India2026-06-30
1036Argentina2026-06-30
1037Canada2026-07-21
1038United Kingdom2026-07-17
1039Argentina2026-07-12
1040Russia2026-07-18
1041Russia2026-06-25
1042Brazil2026-07-01
1043Australia2026-06-29
1044Spain2026-07-17
1045India2026-06-29
1046India2026-06-24
1047France2026-06-25
1048Spain2026-07-09
1049Japan2026-06-29

On-Demand Data

NameIdCountryDate
Deepesh H Saylors1000Japan2026-07-21
Misaki V Whobrey1001France2026-07-23
Juan B Amigon1002Australia2026-07-19
Alejandro Q Perin1003Italy2026-07-13
Smith T Foller1004Italy2026-07-22
Munro R Maclead1005Argentina2026-07-16
Kadeem Z Marrier1006Spain2026-06-29
Isabel W Venere1007India2026-07-07
Costa O Bowley1008Argentina2026-07-20
Octavia O Maclead1009Japan2026-07-20
Chavez N Waycott1010Australia2026-07-16
Tony E Foller1011France2026-07-22
Jeanfrancois H Figeroa1012France2026-07-13
Rodrigues G Foller1013Australia2026-07-15
Nicolas I Bowley1014Germany2026-06-28
Greenwood W Perin1015Germany2026-06-25
Alejandro H Butt1016Germany2026-07-02
Adams X Shinko1017Argentina2026-06-29
Greenwood M Shinko1018Japan2026-07-11
Isabel Z Royster1019Argentina2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio L GillianGermanyAnna Fali NEGOTIATION
Aditya T StockhamItalyIvan Magalhaes QUALIFIED
Smith V GauchoJapanAsiya Javayant RENEWAL
Leja S ShinkoUnited KingdomElwin Sharvill NEW
Mayumi H StockhamUnited KingdomElwin Sharvill NEW
Jeanfrancois D BriddickGermanyBernardo Dominic NEGOTIATION
Arvin C MorascaBrazilXuxue Feng RENEWAL
Jennifer Z FigeroaGermanyAnna Fali NEGOTIATION
Misaki G MarrierGermanyElwin Sharvill RENEWAL
Salvatore R BologniaAustraliaIvan Magalhaes NEW
Sinclair K MaletRussiaBernardo Dominic NEGOTIATION
Silvio Y RulapaughItalyOnyama Limba PROPOSAL
Claire V GillianFranceOnyama Limba NEW
Rodrigues A SchemmerSpainAnna Fali PROPOSAL
James H RoysterArgentinaIvan Magalhaes NEGOTIATION
Antonio D AlbaresArgentinaIoni Bowcher NEGOTIATION
Wickens H SlusarskiRussiaXuxue Feng RENEWAL
Morrow P FerenczSpainAsiya Javayant NEGOTIATION
Arvin F GlickGermanyIoni Bowcher NEW
Jones F WieserSpainAsiya Javayant PROPOSAL
Leon Q RutaArgentinaOnyama Limba RENEWAL
Aruna R OldroydBrazilIvan Magalhaes PROPOSAL
Ricardo L InouyeItalyOnyama Limba PROPOSAL
Aruna O GarufiSpainAsiya Javayant QUALIFIED
Murillo U DoeSpainIvan Magalhaes NEGOTIATION
Johnson R CampainBrazilElwin Sharvill RENEWAL
Misaki Q SlusarskiFranceElwin Sharvill NEW
Izzy E SergiItalyOnyama Limba NEW
Francesco W GlickIndiaAmy Elsner NEGOTIATION
Antonio G DoeIndiaXuxue Feng QUALIFIED
Jeanfrancois W RulapaughBrazilStephen Shaw PROPOSAL
Juan P DoeAustraliaOnyama Limba QUALIFIED
Tony O IturbideCanadaElwin Sharvill UNQUALIFIED
Aditya N CaudyBrazilOnyama Limba RENEWAL
Jefferson A GauchoJapanXuxue Feng NEW
Adams C NickaFranceBernardo Dominic QUALIFIED
Jones Z MacleadFranceIvan Magalhaes QUALIFIED
Misaki E ShinkoBrazilIoni Bowcher NEW
Aruna T MarrierCanadaXuxue Feng NEGOTIATION
Antonio Z BowleyBrazilIvan Magalhaes 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>