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
Jones F SergiCanadaIoni Bowcher UNQUALIFIED
Salvatore P WhobreySpainAsiya Javayant UNQUALIFIED
Emily U WhobreyArgentinaIoni Bowcher UNQUALIFIED
Leon D OldroydGermanyAnna Fali UNQUALIFIED
Julie G GauchoUnited KingdomAnna Fali UNQUALIFIED
Smith C OstroskyIndiaAnna Fali UNQUALIFIED
Francesco I NickaCanadaBernardo Dominic NEW
Ivar U FigeroaBrazilIvan Magalhaes PROPOSAL
Wickens P GillianItalyStephen Shaw UNQUALIFIED
Arvin Q WaycottArgentinaAmy Elsner NEW
Juan C KolmetzUnited KingdomStephen Shaw NEGOTIATION
Arvin T KuskoUnited KingdomAsiya Javayant PROPOSAL
David N GauchoAustraliaBernardo Dominic QUALIFIED
Cody Q CaldareraBrazilIvan Magalhaes QUALIFIED
Julie N FigeroaRussiaIoni Bowcher UNQUALIFIED
Johnson M MarrierRussiaAmy Elsner PROPOSAL
Wickens G FollerGermanyBernardo Dominic NEW
Octavia Z KolmetzSpainIvan Magalhaes QUALIFIED
Johnson F PaprockiCanadaOnyama Limba NEGOTIATION
David G MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco N GlickJapanAmy Elsner NEW
Darci V BowleyArgentinaAmy Elsner RENEWAL
Arvin M GlickGermanyStephen Shaw UNQUALIFIED
Izzy O KuskoItalyBernardo Dominic PROPOSAL
Misaki K StensethBrazilAmy Elsner UNQUALIFIED
Leon O MaletArgentinaAmy Elsner NEGOTIATION
Octavia C ShinkoRussiaElwin Sharvill PROPOSAL
Sinclair K FlosiGermanyIvan Magalhaes RENEWAL
David B WieserAustraliaBernardo Dominic RENEWAL
Munro R FlosiJapanAsiya Javayant UNQUALIFIED
Aika J GlickSpainAmy Elsner NEW
Aika D BologniaIndiaBernardo Dominic PROPOSAL
Murillo G MacleadFranceIvan Magalhaes NEW
Isabel E FigeroaArgentinaAsiya Javayant PROPOSAL
Claire Q MarrierGermanyIoni Bowcher NEGOTIATION
Mayumi I GlickSpainIoni Bowcher PROPOSAL
Ivar R ButtArgentinaIoni Bowcher NEGOTIATION
Munro C SaylorsUnited KingdomBernardo Dominic PROPOSAL
Emily O FollerAustraliaBernardo Dominic NEW
Kaitlin Y ChuiFranceOnyama Limba RENEWAL
Arvin S InouyeGermanyAmy Elsner UNQUALIFIED
Alejandro F WhobreyRussiaIoni Bowcher NEGOTIATION
Ashley O GlickUnited KingdomIvan Magalhaes NEW
Claire F SchemmerArgentinaOnyama Limba NEGOTIATION
Cody T MorascaJapanIoni Bowcher NEGOTIATION
Leja S SlusarskiGermanyElwin Sharvill QUALIFIED
Mayumi E StockhamFranceAsiya Javayant PROPOSAL
Darci M PaprockiItalyXuxue Feng QUALIFIED
Stacey U RutaGermanyAsiya Javayant UNQUALIFIED
Leon K TollnerRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Darci A OstroskyIndiaBernardo Dominic QUALIFIED
Aika T RoysterRussiaAnna Fali NEW
Munro X PoquetteItalyXuxue Feng UNQUALIFIED
Octavia P OldroydGermanyAnna Fali QUALIFIED
Salvatore A MacleadBrazilAmy Elsner RENEWAL
Greenwood S GarufiCanadaBernardo Dominic NEGOTIATION
Smith Q VocelkaItalyAsiya Javayant UNQUALIFIED
Jones O ButtSpainStephen Shaw NEGOTIATION
Wickens X PaprockiCanadaAsiya Javayant PROPOSAL
Ricardo G MaletFranceStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika B DilliardRussia2025-04-30Commercial Press NEGOTIATION99Anna Fali
1001Murillo V SaylorsBrazil2025-04-06Feiner Bros RENEWAL17Ivan Magalhaes
1002Stacey G KuskoArgentina2025-04-18Rousseaux, Michael Esq NEW8Ivan Magalhaes
1003Leja C MaletItaly2025-04-05Commercial Press UNQUALIFIED3Onyama Limba
1004Jones H FerenczJapan2025-04-28Rousseaux, Michael Esq RENEWAL17Anna Fali
1005James V WaycottAustralia2025-04-04Truhlar And Truhlar Attys NEGOTIATION0Ioni Bowcher
1006Izzy Q GauchoJapan2025-04-06Buckley Miller Wright RENEWAL63Anna Fali
1007Julie R KuskoAustralia2025-04-13Feltz Printing Service RENEWAL22Asiya Javayant
1008Ivar Q PoquetteGermany2025-04-03Buckley Miller Wright PROPOSAL79Stephen Shaw
1009Stacey Q CaldareraAustralia2025-04-06Chanay, Jeffrey A Esq NEW35Bernardo Dominic
1010Sinclair E WieserAustralia2025-04-27Rangoni Of Florence RENEWAL9Elwin Sharvill
1011Salvatore K CaudyArgentina2025-04-11Feiner Bros QUALIFIED81Xuxue Feng
1012Morrow U FollerSpain2025-04-16Chapman, Ross E Esq NEW55Ivan Magalhaes
1013Aika O WieserItaly2025-04-14Morlong Associates PROPOSAL97Xuxue Feng
1014Greenwood B MaletAustralia2025-04-11Dorl, James J Esq PROPOSAL40Bernardo Dominic
1015Murillo V SlusarskiRussia2025-04-16Rousseaux, Michael Esq PROPOSAL97Ioni Bowcher
1016Aika J BowleyArgentina2025-04-08Benton, John B Jr NEW11Xuxue Feng
1017Ivar W InouyeJapan2025-04-03Morlong Associates RENEWAL61Stephen Shaw
1018Ashley V InouyeCanada2025-04-08Benton, John B Jr UNQUALIFIED36Anna Fali
1019Greenwood P VocelkaAustralia2025-04-23Rangoni Of Florence PROPOSAL66Asiya Javayant
1020Sinclair V GillianIndia2025-04-18Rangoni Of Florence PROPOSAL64Ivan Magalhaes
1021Ashley M SchemmerSpain2025-04-09Chanay, Jeffrey A Esq UNQUALIFIED58Xuxue Feng
1022Salvatore J MacleadAustralia2025-04-30Buckley Miller Wright NEGOTIATION3Onyama Limba
1023Juan Q DilliardCanada2025-04-20Chanay, Jeffrey A Esq PROPOSAL85Anna Fali
1024Leja P MacleadUnited Kingdom2025-04-25Rangoni Of Florence RENEWAL96Bernardo Dominic
1025Juan E FerenczAustralia2025-04-21Buckley Miller Wright PROPOSAL83Asiya Javayant
1026Johnson G InouyeAustralia2025-04-22Buckley Miller Wright UNQUALIFIED37Asiya Javayant
1027Misaki Q SaylorsGermany2025-04-15King, Christopher A Esq NEGOTIATION89Asiya Javayant
1028Sinclair K BologniaGermany2025-04-21King, Christopher A Esq NEGOTIATION52Onyama Limba
1029Johnson G OstroskyIndia2025-04-21Printing Dimensions QUALIFIED91Anna Fali
1030Kaitlin N OstroskyRussia2025-04-07Chapman, Ross E Esq RENEWAL26Asiya Javayant
1031Jeanfrancois W NestleAustralia2025-04-04Chapman, Ross E Esq NEW36Onyama Limba
1032Octavia Y VocelkaItaly2025-04-29Benton, John B Jr RENEWAL19Elwin Sharvill
1033Francesco N ShinkoGermany2025-04-24Morlong Associates NEGOTIATION44Xuxue Feng
1034Adams L WieserFrance2025-04-06Chapman, Ross E Esq UNQUALIFIED80Amy Elsner
1035Wickens R PerinArgentina2025-04-13Chapman, Ross E Esq UNQUALIFIED53Amy Elsner
1036Alejandro X ButtRussia2025-04-15Printing Dimensions QUALIFIED56Xuxue Feng
1037Deepesh F TollnerBrazil2025-04-01Printing Dimensions NEGOTIATION27Ioni Bowcher
1038Kadeem J SlusarskiIndia2025-04-15Printing Dimensions QUALIFIED2Ivan Magalhaes
1039Jones N WaycottJapan2025-04-20Truhlar And Truhlar Attys NEGOTIATION69Elwin Sharvill
1040Alejandro L OldroydRussia2025-04-23Feltz Printing Service RENEWAL77Anna Fali
1041Tony R GillianJapan2025-04-05Morlong Associates NEW2Ioni Bowcher
1042Juan Y CaldareraRussia2025-04-20Chanay, Jeffrey A Esq NEGOTIATION86Stephen Shaw
1043Deepesh R TollnerGermany2025-04-20Printing Dimensions NEW50Ivan Magalhaes
1044Ivar O BologniaAustralia2025-04-11Dorl, James J Esq UNQUALIFIED25Xuxue Feng
1045Silvio M ChuiCanada2025-04-22King, Christopher A Esq QUALIFIED50Ioni Bowcher
1046Alejandro L GauchoJapan2025-04-11Feiner Bros RENEWAL81Asiya Javayant
1047Jefferson D ButtFrance2025-04-21Printing Dimensions QUALIFIED8Asiya Javayant
1048Salvatore X SlusarskiItaly2025-04-23Feltz Printing Service RENEWAL92Stephen Shaw
1049Jeanfrancois F GlickJapan2025-04-30Chanay, Jeffrey A Esq UNQUALIFIED48Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio S WhobreyGermanyIvan Magalhaes NEW
Smith L GillianRussiaIoni Bowcher QUALIFIED
Darci H NickaAustraliaIvan Magalhaes UNQUALIFIED
Ricardo Z RimArgentinaStephen Shaw PROPOSAL
Faith D CaldareraGermanyIoni Bowcher QUALIFIED
Maisha S BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Smith I RoysterJapanAsiya Javayant UNQUALIFIED
Cody V KuskoItalyStephen Shaw NEW
Julie Q PaprockiIndiaXuxue Feng UNQUALIFIED
Juan U BriddickIndiaAnna Fali PROPOSAL
Maria Q InouyeGermanyElwin Sharvill RENEWAL
Maria U VocelkaSpainBernardo Dominic UNQUALIFIED
Rodrigues E OstroskyRussiaElwin Sharvill UNQUALIFIED
Claire A SergiIndiaAnna Fali RENEWAL
Munro N FlosiFranceAnna Fali RENEWAL
Jennifer U DarakjyBrazilAsiya Javayant RENEWAL
James U SlusarskiAustraliaBernardo Dominic PROPOSAL
Izzy M DarakjyRussiaAnna Fali RENEWAL
Isabel I AlbaresAustraliaElwin Sharvill QUALIFIED
Tony L MaletSpainAnna Fali QUALIFIED
Jefferson D OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Wickens N NickaJapanElwin Sharvill RENEWAL
Chavez X RimItalyOnyama Limba NEW
Julie E CaudyArgentinaOnyama Limba NEGOTIATION
Jennifer L CampainRussiaStephen Shaw QUALIFIED
Greenwood L DilliardUnited KingdomStephen Shaw PROPOSAL
Tony D PerinItalyBernardo Dominic RENEWAL
Alejandro O NickaRussiaBernardo Dominic RENEWAL
Aika W CampainGermanyIvan Magalhaes NEW
Nicolas E PoquetteFranceAnna Fali UNQUALIFIED
Wickens O FigeroaUnited KingdomBernardo Dominic QUALIFIED
Ivar D FlosiFranceIvan Magalhaes NEGOTIATION
Johnson U RulapaughAustraliaXuxue Feng NEGOTIATION
Rodrigues F WieserIndiaIoni Bowcher RENEWAL
Maria T WaycottFranceElwin Sharvill NEW
Jefferson L SlusarskiJapanAmy Elsner NEW
Antonio H MorascaGermanyAnna Fali NEGOTIATION
Murillo A FlosiSpainAnna Fali UNQUALIFIED
Greenwood C SchemmerIndiaIvan Magalhaes NEW
Arvin J IturbideArgentinaXuxue Feng NEGOTIATION
Cody C RulapaughCanadaIvan Magalhaes RENEWAL
Sinclair T MacleadUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin G RulapaughArgentinaBernardo Dominic NEW
Chavez E TollnerSpainBernardo Dominic RENEWAL
Deepesh Z AlbaresFranceBernardo Dominic PROPOSAL
Leon P RoysterRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois O WhobreyUnited KingdomXuxue Feng RENEWAL
Jones G KuskoRussiaIvan Magalhaes PROPOSAL
Ashley K GauchoJapanAmy Elsner NEGOTIATION
Chavez P DarakjyBrazilStephen Shaw RENEWAL
Frozen Columns
Name
Claire C Glick
Jefferson R Venere
Aruna Z Ruta
Jennifer B Maclead
Nicolas C Rim
Kaitlin Y Morasca
Jefferson N Morasca
Francesco T Paprocki
Ivar L Waycott
David I Oldroyd
Jennifer Q Albares
Chavez S Vocelka
Johnson N Iturbide
Murillo R Saylors
Jeanfrancois Y Glick
Claire G Gaucho
Juan D Tollner
Leon D Stockham
Mayumi I Stockham
Claire C Butt
Mujtaba L Royster
Alejandro U Poquette
Isabel G Caudy
Munro Q Maclead
Claire S Shinko
Smith C Waycott
Ricardo R Figeroa
James P Marrier
Juan H Nicka
Silvio A Poquette
Kadeem M Rim
Stacey P Nestle
Johnson O Morasca
Antonio O Nestle
Aika C Wieser
Darci P Shinko
Leon S Foller
Aika Z Saylors
Cody I Ferencz
Mujtaba V Sergi
Tony O Waycott
Greenwood H Shinko
Wickens B Iturbide
Ivar T Iturbide
Murillo K Gaucho
Kaitlin A Darakjy
Darci U Campain
Aditya N Sergi
Costa W Shinko
Silvio U Caldarera
IdCountryDate
1000India2025-04-07
1001Canada2025-04-18
1002France2025-04-03
1003Argentina2025-04-14
1004Spain2025-04-16
1005Japan2025-04-15
1006United Kingdom2025-04-12
1007Russia2025-04-20
1008Brazil2025-04-10
1009Italy2025-04-29
1010India2025-04-25
1011Brazil2025-04-05
1012Italy2025-04-30
1013Australia2025-04-20
1014Canada2025-04-07
1015Argentina2025-04-12
1016India2025-04-25
1017Japan2025-04-08
1018Canada2025-04-08
1019Italy2025-04-16
1020Germany2025-04-19
1021France2025-04-12
1022India2025-04-18
1023Germany2025-04-09
1024Argentina2025-04-27
1025Australia2025-04-28
1026Brazil2025-04-08
1027Germany2025-04-17
1028Australia2025-04-25
1029Brazil2025-04-13
1030Germany2025-04-19
1031Germany2025-04-18
1032Spain2025-04-13
1033Japan2025-04-18
1034Australia2025-04-21
1035France2025-04-12
1036Australia2025-04-21
1037United Kingdom2025-04-25
1038United Kingdom2025-04-10
1039Argentina2025-04-03
1040Australia2025-04-27
1041Brazil2025-04-28
1042Germany2025-04-09
1043Canada2025-04-12
1044United Kingdom2025-04-01
1045Australia2025-04-10
1046Canada2025-04-26
1047Spain2025-04-07
1048Italy2025-04-01
1049Argentina2025-04-29

On-Demand Data

NameIdCountryDate
Aruna X Venere1000Japan2025-04-17
Wickens D Gaucho1001Japan2025-04-09
Izzy Y Ruta1002Russia2025-04-01
Chavez A Perin1003Russia2025-04-11
Mayumi X Figeroa1004India2025-04-07
Francesco W Vocelka1005Canada2025-04-25
Smith V Nestle1006Brazil2025-04-22
Mujtaba G Inouye1007Spain2025-04-29
Morrow Z Morasca1008Russia2025-04-24
Francesco J Vocelka1009Canada2025-04-02
Smith T Albares1010Germany2025-04-02
Leja Y Bowley1011France2025-04-07
Mujtaba P Slusarski1012India2025-04-14
Sinclair A Ruta1013Japan2025-04-26
Jefferson Q Chui1014Australia2025-04-14
Johnson L Stenseth1015Australia2025-04-25
Francesco T Campain1016Spain2025-04-03
Maria U Doe1017Japan2025-04-30
Jefferson Z Whobrey1018Japan2025-04-19
Octavia B Ferencz1019Argentina2025-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith G RulapaughFranceOnyama Limba NEGOTIATION
Octavia L ShinkoJapanStephen Shaw RENEWAL
Stacey Q TollnerFranceAnna Fali QUALIFIED
Clifford H FigeroaCanadaIoni Bowcher NEGOTIATION
Jefferson Y GlickRussiaStephen Shaw PROPOSAL
Mujtaba O ButtBrazilAnna Fali NEW
Stacey T ChuiGermanyIvan Magalhaes NEW
Francesco L SaylorsUnited KingdomAnna Fali QUALIFIED
Nicolas Y DoeIndiaIvan Magalhaes PROPOSAL
Costa F TollnerGermanyAnna Fali PROPOSAL
Tony V InouyeIndiaIvan Magalhaes UNQUALIFIED
Jeanfrancois Z DarakjyArgentinaBernardo Dominic UNQUALIFIED
Faith L BowleyCanadaOnyama Limba RENEWAL
James I InouyeUnited KingdomXuxue Feng QUALIFIED
David J BowleySpainIvan Magalhaes NEW
Smith U MaletJapanXuxue Feng UNQUALIFIED
Stacey H AmigonIndiaIvan Magalhaes PROPOSAL
Faith J InouyeFranceAnna Fali UNQUALIFIED
Kaitlin I RoysterItalyIvan Magalhaes PROPOSAL
Maisha F SlusarskiItalyIvan Magalhaes RENEWAL
Ricardo R CampainIndiaAmy Elsner RENEWAL
Morrow C MaletRussiaStephen Shaw UNQUALIFIED
Johnson A ShinkoArgentinaOnyama Limba PROPOSAL
Julie E RoysterItalyElwin Sharvill PROPOSAL
Clifford I RoysterJapanIvan Magalhaes UNQUALIFIED
Nicolas G RutaItalyOnyama Limba QUALIFIED
Isabel Y BologniaIndiaIoni Bowcher QUALIFIED
Deepesh W OstroskyUnited KingdomXuxue Feng PROPOSAL
Aditya P DilliardIndiaIoni Bowcher RENEWAL
Sinclair J InouyeItalyIvan Magalhaes RENEWAL
James M StockhamGermanyIvan Magalhaes RENEWAL
Morrow P StensethRussiaElwin Sharvill PROPOSAL
Cody R AlbaresIndiaElwin Sharvill QUALIFIED
Mujtaba W MaletFranceIoni Bowcher UNQUALIFIED
Ashley O GillianIndiaStephen Shaw NEGOTIATION
Darci T SlusarskiRussiaIoni Bowcher NEGOTIATION
Sinclair Y OstroskyArgentinaIoni Bowcher QUALIFIED
Ivar B SaylorsBrazilStephen Shaw UNQUALIFIED
Mujtaba M BriddickGermanyAmy Elsner UNQUALIFIED
Aruna D ButtBrazilXuxue Feng QUALIFIED

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