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
Faith L InouyeGermanyXuxue Feng RENEWAL
Mujtaba B OstroskyGermanyAsiya Javayant NEGOTIATION
Nicolas J WaycottFranceIoni Bowcher QUALIFIED
Arvin I BriddickIndiaAsiya Javayant RENEWAL
Julie G GillianUnited KingdomXuxue Feng QUALIFIED
Chavez H IturbideJapanElwin Sharvill UNQUALIFIED
Ricardo Y SchemmerUnited KingdomAnna Fali PROPOSAL
Mujtaba P GarufiAustraliaIvan Magalhaes UNQUALIFIED
Leon T DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Leja R ButtAustraliaIvan Magalhaes NEW
Murillo S FigeroaBrazilOnyama Limba NEW
James N RimBrazilAsiya Javayant QUALIFIED
Jefferson Y RulapaughAustraliaAmy Elsner QUALIFIED
Tony H GauchoBrazilElwin Sharvill RENEWAL
Aika U RulapaughCanadaAnna Fali PROPOSAL
Julie B PaprockiGermanyElwin Sharvill PROPOSAL
Emily R MorascaBrazilIoni Bowcher NEGOTIATION
Cody N TollnerRussiaXuxue Feng UNQUALIFIED
Kadeem N NickaArgentinaAsiya Javayant NEGOTIATION
Alejandro O MaletRussiaOnyama Limba QUALIFIED
Arvin G ShinkoAustraliaXuxue Feng PROPOSAL
Jennifer R BowleyAustraliaStephen Shaw UNQUALIFIED
Chavez X GauchoItalyIvan Magalhaes UNQUALIFIED
Deepesh I PaprockiBrazilBernardo Dominic RENEWAL
Chavez V ChuiRussiaElwin Sharvill RENEWAL
Ricardo Y SlusarskiSpainAnna Fali PROPOSAL
Sinclair D OldroydUnited KingdomElwin Sharvill PROPOSAL
Stacey S KolmetzCanadaXuxue Feng NEW
Francesco F GillianArgentinaIvan Magalhaes UNQUALIFIED
Maisha Q RutaRussiaStephen Shaw NEGOTIATION
Smith P SaylorsJapanElwin Sharvill PROPOSAL
Izzy M StensethSpainStephen Shaw UNQUALIFIED
Adams E RimFranceOnyama Limba NEGOTIATION
Izzy B SergiRussiaOnyama Limba UNQUALIFIED
Tony J VocelkaUnited KingdomAmy Elsner NEW
Octavia W FollerSpainXuxue Feng NEGOTIATION
Kaitlin M KuskoArgentinaBernardo Dominic RENEWAL
Rodrigues F BowleyUnited KingdomBernardo Dominic PROPOSAL
Aruna S FlosiItalyIoni Bowcher NEW
Mayumi H DilliardGermanyAnna Fali NEW
Tony R KolmetzIndiaIoni Bowcher UNQUALIFIED
Faith N MorascaBrazilBernardo Dominic NEGOTIATION
Ashley E GarufiFranceAmy Elsner PROPOSAL
Jennifer H DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Francesco R PaprockiGermanyBernardo Dominic NEGOTIATION
Smith F MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Aditya B VenereCanadaAsiya Javayant PROPOSAL
Aika A FlosiAustraliaAsiya Javayant RENEWAL
Leon X RoysterArgentinaAsiya Javayant NEGOTIATION
Faith B FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon W SergiArgentinaElwin Sharvill QUALIFIED
Aditya T FigeroaItalyElwin Sharvill NEW
Juan D FigeroaCanadaIvan Magalhaes NEW
Ricardo A FigeroaGermanyXuxue Feng RENEWAL
Antonio A StockhamAustraliaBernardo Dominic NEGOTIATION
Claire W AmigonCanadaAsiya Javayant NEW
Aika P StockhamFranceStephen Shaw RENEWAL
Tony F FigeroaUnited KingdomBernardo Dominic PROPOSAL
Johnson D SergiArgentinaAnna Fali NEGOTIATION
Antonio P ShinkoBrazilStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo S StockhamUnited Kingdom2025-05-24Rangoni Of Florence PROPOSAL88Xuxue Feng
1001Kadeem L PoquetteCanada2025-05-31Commercial Press RENEWAL37Elwin Sharvill
1002Ivar H SergiRussia2025-06-09Dorl, James J Esq NEGOTIATION60Elwin Sharvill
1003Kadeem L CaudyFrance2025-06-11Feiner Bros UNQUALIFIED14Ioni Bowcher
1004Ricardo H FlosiFrance2025-05-18Chapman, Ross E Esq PROPOSAL5Xuxue Feng
1005Francesco X IturbideAustralia2025-05-26King, Christopher A Esq PROPOSAL57Onyama Limba
1006Jefferson I IturbideBrazil2025-06-03King, Christopher A Esq NEW4Amy Elsner
1007Munro R SergiRussia2025-05-19Rousseaux, Michael Esq QUALIFIED6Onyama Limba
1008Silvio P StensethCanada2025-06-15Dorl, James J Esq PROPOSAL53Asiya Javayant
1009Kadeem O SchemmerSpain2025-05-29Dorl, James J Esq NEGOTIATION59Ioni Bowcher
1010Leja A FollerItaly2025-05-23Truhlar And Truhlar Attys QUALIFIED33Stephen Shaw
1011James K IturbideBrazil2025-05-31Rousseaux, Michael Esq NEGOTIATION99Stephen Shaw
1012Smith B GarufiRussia2025-05-28Dorl, James J Esq UNQUALIFIED42Onyama Limba
1013Silvio Q SaylorsSpain2025-06-06Buckley Miller Wright NEGOTIATION86Ivan Magalhaes
1014Morrow Z CampainAustralia2025-06-12Benton, John B Jr QUALIFIED21Asiya Javayant
1015Faith J OstroskyCanada2025-05-19Rousseaux, Michael Esq UNQUALIFIED49Ivan Magalhaes
1016Julie F FerenczUnited Kingdom2025-06-03Printing Dimensions UNQUALIFIED18Ioni Bowcher
1017Kaitlin R FigeroaAustralia2025-06-07Dorl, James J Esq PROPOSAL95Xuxue Feng
1018Silvio H AmigonIndia2025-06-11Feltz Printing Service QUALIFIED26Asiya Javayant
1019Juan P CaldareraArgentina2025-06-04Buckley Miller Wright RENEWAL31Xuxue Feng
1020Murillo H WieserRussia2025-06-14Feiner Bros QUALIFIED67Ioni Bowcher
1021Izzy R StensethGermany2025-05-29Chapman, Ross E Esq RENEWAL59Bernardo Dominic
1022Clifford A ShinkoBrazil2025-05-30Truhlar And Truhlar Attys PROPOSAL57Bernardo Dominic
1023Jennifer U DoeCanada2025-06-16Rousseaux, Michael Esq QUALIFIED49Amy Elsner
1024Claire V MarrierArgentina2025-06-13King, Christopher A Esq QUALIFIED55Ivan Magalhaes
1025Maisha W DarakjyFrance2025-05-29Rousseaux, Michael Esq QUALIFIED49Bernardo Dominic
1026Misaki C ButtFrance2025-05-26Chemel, James L Cpa NEW61Ioni Bowcher
1027Alejandro I SergiSpain2025-06-12Chanay, Jeffrey A Esq NEW3Ivan Magalhaes
1028Johnson Z FlosiSpain2025-05-30Chemel, James L Cpa RENEWAL0Asiya Javayant
1029Nicolas H VenereBrazil2025-05-28Rangoni Of Florence PROPOSAL70Xuxue Feng
1030Adams D FollerAustralia2025-05-23King, Christopher A Esq PROPOSAL31Xuxue Feng
1031Aruna Z MaletJapan2025-05-19Chapman, Ross E Esq UNQUALIFIED90Ivan Magalhaes
1032Izzy P PerinArgentina2025-05-23Chanay, Jeffrey A Esq RENEWAL23Ivan Magalhaes
1033Silvio E StensethUnited Kingdom2025-06-13Chemel, James L Cpa UNQUALIFIED60Bernardo Dominic
1034Juan B CaldareraItaly2025-06-11Buckley Miller Wright NEW84Stephen Shaw
1035David M TollnerCanada2025-05-25Buckley Miller Wright PROPOSAL18Ioni Bowcher
1036Alejandro F RutaUnited Kingdom2025-06-09Truhlar And Truhlar Attys UNQUALIFIED69Elwin Sharvill
1037Darci T RoysterSpain2025-05-30Truhlar And Truhlar Attys QUALIFIED68Stephen Shaw
1038Misaki P DilliardUnited Kingdom2025-06-07Chemel, James L Cpa RENEWAL80Ioni Bowcher
1039Jennifer N SlusarskiAustralia2025-06-07Morlong Associates UNQUALIFIED56Bernardo Dominic
1040Antonio E FollerItaly2025-06-06Truhlar And Truhlar Attys PROPOSAL57Ivan Magalhaes
1041Octavia D OldroydGermany2025-06-13Chanay, Jeffrey A Esq NEGOTIATION31Stephen Shaw
1042Leja M ButtArgentina2025-06-15Feiner Bros PROPOSAL86Stephen Shaw
1043Misaki F ShinkoSpain2025-06-10Morlong Associates NEGOTIATION12Asiya Javayant
1044Morrow Y MacleadIndia2025-05-22Truhlar And Truhlar Attys PROPOSAL6Xuxue Feng
1045Jennifer J InouyeFrance2025-06-03Buckley Miller Wright NEW70Stephen Shaw
1046Jones U BowleyIndia2025-05-24Commercial Press UNQUALIFIED9Elwin Sharvill
1047Greenwood C GarufiIndia2025-05-31Feltz Printing Service NEGOTIATION16Onyama Limba
1048Leja V WhobreyCanada2025-06-05Commercial Press PROPOSAL24Asiya Javayant
1049Aruna B VocelkaItaly2025-06-13Printing Dimensions UNQUALIFIED76Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aditya E StockhamFranceOnyama Limba NEW
Aditya C RimArgentinaAsiya Javayant RENEWAL
Aruna X BowleyCanadaXuxue Feng RENEWAL
Clifford P KolmetzCanadaElwin Sharvill QUALIFIED
Mayumi V ChuiItalyBernardo Dominic NEGOTIATION
Mujtaba Y WhobreyRussiaIoni Bowcher UNQUALIFIED
Wickens Y SergiArgentinaIvan Magalhaes PROPOSAL
Smith S FigeroaBrazilIvan Magalhaes RENEWAL
Aruna N BriddickIndiaAnna Fali QUALIFIED
Aika R FigeroaGermanyAsiya Javayant PROPOSAL
Maisha K GlickArgentinaBernardo Dominic NEGOTIATION
Deepesh R FlosiSpainAmy Elsner UNQUALIFIED
Maria S DarakjyGermanyXuxue Feng NEGOTIATION
Sinclair J ChuiFranceBernardo Dominic NEGOTIATION
Jeanfrancois N KuskoCanadaBernardo Dominic PROPOSAL
Johnson Y FlosiCanadaStephen Shaw UNQUALIFIED
Maria M StensethRussiaBernardo Dominic RENEWAL
Silvio J DoeIndiaXuxue Feng PROPOSAL
Emily T MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin V ButtUnited KingdomAsiya Javayant PROPOSAL
Aika P OldroydBrazilBernardo Dominic NEW
Arvin P GauchoAustraliaOnyama Limba PROPOSAL
David V PoquetteArgentinaIoni Bowcher PROPOSAL
Emily Q VocelkaCanadaIvan Magalhaes QUALIFIED
Deepesh H GauchoIndiaIvan Magalhaes NEW
Emily B BowleyRussiaAsiya Javayant NEGOTIATION
Mayumi S KolmetzGermanyStephen Shaw PROPOSAL
Alejandro U WaycottBrazilIoni Bowcher QUALIFIED
Wickens L ButtGermanyIvan Magalhaes RENEWAL
Nicolas Q MarrierAustraliaAmy Elsner RENEWAL
Faith W FerenczRussiaXuxue Feng PROPOSAL
Kadeem N RulapaughAustraliaAmy Elsner PROPOSAL
Rodrigues R AlbaresRussiaStephen Shaw NEW
Nicolas H CampainItalyIvan Magalhaes RENEWAL
Salvatore R OldroydFranceAmy Elsner UNQUALIFIED
Kadeem R RutaSpainElwin Sharvill RENEWAL
Isabel S MaletBrazilAmy Elsner NEW
Ashley N OldroydFranceIoni Bowcher NEW
Jennifer U VocelkaFranceElwin Sharvill UNQUALIFIED
Tony D MaletJapanBernardo Dominic UNQUALIFIED
Ricardo F MaletItalyIoni Bowcher QUALIFIED
Greenwood E SaylorsBrazilAsiya Javayant NEW
Smith G OstroskyIndiaIvan Magalhaes NEGOTIATION
Salvatore J SaylorsGermanyAnna Fali PROPOSAL
Julie Z SergiAustraliaAnna Fali UNQUALIFIED
Emily B CaldareraArgentinaAnna Fali NEGOTIATION
Jennifer F OstroskySpainAnna Fali NEGOTIATION
Adams S VenereCanadaIvan Magalhaes QUALIFIED
David T InouyeRussiaAmy Elsner UNQUALIFIED
Kadeem G FerenczItalyXuxue Feng QUALIFIED
Frozen Columns
Name
Ivar Q Bolognia
Maria L Kolmetz
Kadeem E Caldarera
David C Rim
Johnson M Morasca
Ricardo F Kusko
Jones K Inouye
Salvatore D Wieser
Nicolas V Paprocki
Salvatore I Ostrosky
Julie A Glick
Aika S Foller
Kaitlin M Malet
Salvatore P Figeroa
Mujtaba K Rim
Jennifer S Butt
James A Rim
Ashley P Campain
Salvatore K Kolmetz
James O Marrier
Silvio G Vocelka
Johnson T Oldroyd
Johnson J Tollner
Cody J Rulapaugh
Greenwood U Garufi
Wickens L Amigon
Francesco N Butt
Isabel E Kolmetz
Aditya W Glick
Greenwood O Flosi
Jones U Malet
Ivar Y Ferencz
Leja A Darakjy
Murillo E Butt
Leja D Ruta
Misaki U Inouye
Leja N Waycott
Adams B Doe
Mayumi L Rim
Clifford F Malet
Cody G Tollner
Antonio O Caudy
Mayumi C Shinko
Emily T Nestle
Clifford E Stenseth
James Q Oldroyd
Aika G Nicka
Kaitlin B Gaucho
Maisha R Briddick
Deepesh G Bolognia
IdCountryDate
1000France2025-06-07
1001Russia2025-05-24
1002Japan2025-06-01
1003Argentina2025-06-11
1004Spain2025-06-07
1005Russia2025-05-19
1006Argentina2025-05-19
1007India2025-05-29
1008Brazil2025-06-01
1009Brazil2025-06-08
1010Canada2025-06-01
1011Italy2025-05-24
1012France2025-06-16
1013United Kingdom2025-06-05
1014Japan2025-06-15
1015India2025-05-28
1016Argentina2025-06-01
1017Japan2025-05-30
1018India2025-06-07
1019India2025-06-12
1020Germany2025-05-29
1021Russia2025-06-08
1022India2025-05-26
1023Argentina2025-06-09
1024Spain2025-06-07
1025Brazil2025-05-23
1026Australia2025-05-21
1027Japan2025-05-27
1028Brazil2025-06-16
1029Canada2025-06-13
1030Germany2025-05-18
1031Japan2025-06-08
1032Canada2025-06-15
1033United Kingdom2025-05-20
1034India2025-05-29
1035United Kingdom2025-06-15
1036India2025-06-03
1037Germany2025-05-28
1038India2025-06-07
1039Canada2025-06-07
1040Spain2025-05-25
1041Germany2025-06-15
1042Argentina2025-06-05
1043Canada2025-06-12
1044United Kingdom2025-06-03
1045India2025-05-28
1046Argentina2025-05-22
1047United Kingdom2025-05-19
1048Japan2025-06-13
1049Italy2025-05-18

On-Demand Data

NameIdCountryDate
Wickens O Butt1000Germany2025-06-12
Juan B Marrier1001Japan2025-06-02
Francesco F Whobrey1002Germany2025-05-28
Faith G Shinko1003Italy2025-05-26
Julie X Albares1004Brazil2025-06-07
Murillo U Bolognia1005India2025-06-09
Mayumi P Whobrey1006United Kingdom2025-05-21
Adams Q Butt1007Russia2025-06-01
Johnson Z Caldarera1008Australia2025-06-07
Darci N Nestle1009Spain2025-06-12
Sinclair K Slusarski1010Brazil2025-05-27
Salvatore D Sergi1011Russia2025-06-10
Munro C Morasca1012Spain2025-06-02
Costa J Butt1013Japan2025-06-05
Rodrigues T Oldroyd1014Australia2025-05-19
Clifford N Amigon1015United Kingdom2025-06-11
Murillo X Nicka1016United Kingdom2025-06-07
Murillo U Stenseth1017India2025-06-05
Stacey R Bolognia1018Argentina2025-06-09
Misaki S Tollner1019France2025-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James R MaletItalyIvan Magalhaes QUALIFIED
Salvatore V CaudyFranceIoni Bowcher RENEWAL
Ricardo H SergiArgentinaElwin Sharvill UNQUALIFIED
Tony S AmigonIndiaStephen Shaw QUALIFIED
Octavia X MaletArgentinaXuxue Feng UNQUALIFIED
Leja M CaudyItalyXuxue Feng QUALIFIED
Mayumi T RutaIndiaStephen Shaw RENEWAL
Jefferson Q TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh R InouyeRussiaAmy Elsner NEGOTIATION
Tony H CaudyAustraliaIoni Bowcher PROPOSAL
Aika W IturbideIndiaAsiya Javayant RENEWAL
Smith D OldroydArgentinaOnyama Limba PROPOSAL
Maisha N BowleySpainOnyama Limba UNQUALIFIED
Jeanfrancois Y FigeroaFranceIvan Magalhaes NEGOTIATION
Aruna M DilliardArgentinaStephen Shaw RENEWAL
Arvin I FollerFranceIvan Magalhaes UNQUALIFIED
Mujtaba P IturbideAustraliaOnyama Limba NEGOTIATION
Maria A ChuiGermanyXuxue Feng QUALIFIED
Salvatore S FerenczJapanAsiya Javayant NEGOTIATION
Faith P WaycottIndiaStephen Shaw PROPOSAL
Johnson D FollerItalyIoni Bowcher RENEWAL
Leon Q NickaBrazilBernardo Dominic NEW
Kaitlin O DoeJapanStephen Shaw NEGOTIATION
Salvatore P PoquetteFranceAsiya Javayant RENEWAL
Maisha A TollnerGermanyAsiya Javayant PROPOSAL
Sinclair D PerinIndiaAsiya Javayant NEW
Deepesh G TollnerAustraliaElwin Sharvill NEW
Jefferson H FollerSpainAsiya Javayant NEGOTIATION
Aditya L ChuiItalyStephen Shaw RENEWAL
Alejandro D GauchoCanadaIvan Magalhaes PROPOSAL
Emily M InouyeIndiaAsiya Javayant RENEWAL
Morrow N BriddickArgentinaXuxue Feng NEGOTIATION
Darci L SaylorsFranceIvan Magalhaes PROPOSAL
Ricardo V IturbideItalyOnyama Limba QUALIFIED
Juan U KolmetzCanadaStephen Shaw NEW
Kadeem Q WieserGermanyElwin Sharvill NEGOTIATION
Jennifer H BologniaSpainElwin Sharvill NEW
Ivar Z VenereIndiaElwin Sharvill QUALIFIED
Mujtaba F MacleadItalyBernardo Dominic NEW
Antonio H PaprockiJapanIvan 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>