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
Francesco V MacleadCanadaStephen Shaw PROPOSAL
Adams X PaprockiCanadaXuxue Feng UNQUALIFIED
Leja Y NickaGermanyBernardo Dominic NEGOTIATION
Salvatore G MorascaItalyOnyama Limba PROPOSAL
Murillo D IturbideCanadaElwin Sharvill UNQUALIFIED
Isabel S MarrierRussiaIoni Bowcher QUALIFIED
Izzy S InouyeGermanyBernardo Dominic UNQUALIFIED
Ricardo I RutaCanadaAsiya Javayant UNQUALIFIED
David Z StockhamItalyAsiya Javayant RENEWAL
Clifford O InouyeGermanyIvan Magalhaes UNQUALIFIED
Greenwood M ShinkoItalyIvan Magalhaes UNQUALIFIED
Chavez N NestleIndiaAsiya Javayant QUALIFIED
Deepesh C SchemmerIndiaElwin Sharvill UNQUALIFIED
Deepesh V CaldareraSpainIvan Magalhaes QUALIFIED
Clifford S KuskoJapanAsiya Javayant PROPOSAL
Greenwood V MorascaIndiaIoni Bowcher NEW
Stacey A PerinItalyElwin Sharvill QUALIFIED
Isabel M GarufiCanadaIvan Magalhaes PROPOSAL
Emily F ButtGermanyBernardo Dominic RENEWAL
Smith H CaudyJapanAnna Fali RENEWAL
Darci I SaylorsBrazilXuxue Feng QUALIFIED
Aika U KuskoBrazilXuxue Feng NEW
Aika L NickaFranceIoni Bowcher RENEWAL
Juan I BriddickArgentinaOnyama Limba NEW
Emily J FerenczArgentinaIoni Bowcher NEW
Maria R KuskoCanadaStephen Shaw NEGOTIATION
Rodrigues B CaudyJapanElwin Sharvill RENEWAL
Francesco P ShinkoSpainOnyama Limba RENEWAL
Greenwood D GillianAustraliaOnyama Limba PROPOSAL
Jefferson I GlickSpainIvan Magalhaes UNQUALIFIED
Kadeem I StensethItalyAnna Fali QUALIFIED
Morrow H TollnerAustraliaAmy Elsner PROPOSAL
Deepesh I PoquetteRussiaStephen Shaw PROPOSAL
Johnson C InouyeUnited KingdomXuxue Feng PROPOSAL
Deepesh Q BologniaUnited KingdomAsiya Javayant NEW
Murillo P ShinkoJapanIoni Bowcher QUALIFIED
Ashley C MacleadJapanIoni Bowcher NEW
Alejandro U RutaArgentinaIvan Magalhaes RENEWAL
Chavez O FollerSpainAnna Fali UNQUALIFIED
Jennifer Y DarakjyIndiaBernardo Dominic QUALIFIED
Costa V AlbaresJapanBernardo Dominic QUALIFIED
Maria Z IturbideIndiaStephen Shaw UNQUALIFIED
Aika Z SergiFranceAnna Fali NEGOTIATION
Julie F OldroydSpainXuxue Feng RENEWAL
Ashley T AlbaresJapanStephen Shaw QUALIFIED
Adams B NickaItalyAnna Fali QUALIFIED
Leon I RulapaughArgentinaElwin Sharvill NEW
Chavez S BowleyJapanElwin Sharvill QUALIFIED
Leon W SlusarskiAustraliaAsiya Javayant NEW
Faith E IturbideRussiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci N RulapaughFranceBernardo Dominic RENEWAL
Leja R WaycottIndiaAmy Elsner UNQUALIFIED
Ashley V CaudyAustraliaAsiya Javayant UNQUALIFIED
Jennifer U AmigonArgentinaXuxue Feng NEGOTIATION
Johnson A BriddickItalyStephen Shaw NEGOTIATION
Johnson O KuskoIndiaElwin Sharvill RENEWAL
Deepesh J MorascaIndiaBernardo Dominic RENEWAL
Clifford N GlickBrazilXuxue Feng NEW
Morrow U PerinRussiaXuxue Feng RENEWAL
Aika M MarrierIndiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith L PoquetteRussia2026-06-16Buckley Miller Wright QUALIFIED50Asiya Javayant
1001Nicolas E GauchoAustralia2026-07-09Chanay, Jeffrey A Esq NEW33Ivan Magalhaes
1002Faith D KuskoArgentina2026-07-04Chanay, Jeffrey A Esq NEW10Bernardo Dominic
1003Arvin W BriddickSpain2026-07-02Buckley Miller Wright PROPOSAL62Bernardo Dominic
1004Francesco K RulapaughGermany2026-06-29Commercial Press NEW69Onyama Limba
1005Maria A BowleyAustralia2026-06-19Rousseaux, Michael Esq PROPOSAL7Stephen Shaw
1006Aruna E SchemmerAustralia2026-07-07Printing Dimensions RENEWAL40Stephen Shaw
1007Mayumi D IturbideRussia2026-07-12Buckley Miller Wright NEW46Xuxue Feng
1008Smith C MaletRussia2026-06-16Feltz Printing Service NEW58Onyama Limba
1009Greenwood S VenereArgentina2026-06-24Buckley Miller Wright QUALIFIED78Asiya Javayant
1010Deepesh M ButtIndia2026-07-07Morlong Associates NEGOTIATION73Elwin Sharvill
1011Costa W PerinItaly2026-06-16Chemel, James L Cpa NEGOTIATION54Stephen Shaw
1012Arvin G GillianJapan2026-06-26Rangoni Of Florence RENEWAL63Stephen Shaw
1013Adams Q PerinCanada2026-07-10Benton, John B Jr NEW29Elwin Sharvill
1014Aditya Q StockhamCanada2026-06-25Rousseaux, Michael Esq UNQUALIFIED96Elwin Sharvill
1015Silvio S TollnerGermany2026-07-09Feiner Bros UNQUALIFIED0Xuxue Feng
1016Chavez U GarufiBrazil2026-06-22Feltz Printing Service NEGOTIATION21Ioni Bowcher
1017Misaki P KolmetzArgentina2026-06-24Truhlar And Truhlar Attys NEW8Ivan Magalhaes
1018Juan K DarakjyFrance2026-06-28Commercial Press NEGOTIATION65Onyama Limba
1019Octavia Q WaycottSpain2026-07-06Printing Dimensions QUALIFIED8Anna Fali
1020Greenwood D SlusarskiItaly2026-06-26Benton, John B Jr RENEWAL95Ioni Bowcher
1021Isabel M ChuiFrance2026-06-21Dorl, James J Esq NEGOTIATION99Xuxue Feng
1022Salvatore C OldroydCanada2026-06-28Chanay, Jeffrey A Esq PROPOSAL3Ioni Bowcher
1023Leon Y BologniaGermany2026-06-24Commercial Press UNQUALIFIED56Ioni Bowcher
1024Misaki E StockhamAustralia2026-06-24Feiner Bros PROPOSAL87Anna Fali
1025Greenwood B AmigonBrazil2026-06-18Truhlar And Truhlar Attys UNQUALIFIED91Anna Fali
1026Emily Q OstroskyBrazil2026-07-07Morlong Associates RENEWAL71Xuxue Feng
1027Mujtaba J KuskoBrazil2026-07-15Chapman, Ross E Esq PROPOSAL42Ioni Bowcher
1028Munro E GauchoArgentina2026-07-13Morlong Associates NEGOTIATION79Onyama Limba
1029Silvio W BriddickFrance2026-07-07Chapman, Ross E Esq NEW13Onyama Limba
1030Ivar N StockhamGermany2026-07-01Chanay, Jeffrey A Esq QUALIFIED87Xuxue Feng
1031Jones B DoeRussia2026-06-27Feltz Printing Service NEW38Asiya Javayant
1032Wickens D BriddickGermany2026-07-12Feiner Bros QUALIFIED84Xuxue Feng
1033Kadeem K KolmetzArgentina2026-07-12Buckley Miller Wright UNQUALIFIED85Asiya Javayant
1034Ricardo K ShinkoIndia2026-06-28Chapman, Ross E Esq RENEWAL42Elwin Sharvill
1035Jennifer A MaletArgentina2026-07-06Commercial Press RENEWAL24Elwin Sharvill
1036Smith M InouyeItaly2026-07-11Morlong Associates PROPOSAL22Anna Fali
1037Faith F BowleyItaly2026-06-25Rousseaux, Michael Esq QUALIFIED13Ivan Magalhaes
1038Nicolas X SlusarskiRussia2026-07-15Feiner Bros PROPOSAL28Stephen Shaw
1039Clifford N ButtAustralia2026-06-27King, Christopher A Esq UNQUALIFIED28Anna Fali
1040Isabel D NickaIndia2026-07-11Chemel, James L Cpa QUALIFIED86Asiya Javayant
1041Cody W AlbaresFrance2026-07-03Chemel, James L Cpa NEGOTIATION26Ivan Magalhaes
1042Nicolas Z FollerBrazil2026-06-22Feiner Bros PROPOSAL48Asiya Javayant
1043Isabel U DarakjyRussia2026-07-01Chapman, Ross E Esq NEGOTIATION11Ioni Bowcher
1044Greenwood L FlosiAustralia2026-07-04Rousseaux, Michael Esq UNQUALIFIED86Amy Elsner
1045Deepesh I KuskoUnited Kingdom2026-06-20Chanay, Jeffrey A Esq NEW98Xuxue Feng
1046Sinclair W AlbaresItaly2026-06-19King, Christopher A Esq PROPOSAL19Bernardo Dominic
1047Aika Z StensethGermany2026-06-21Rangoni Of Florence RENEWAL72Stephen Shaw
1048Maisha U DilliardIndia2026-07-01Feiner Bros PROPOSAL72Ioni Bowcher
1049Silvio J FollerFrance2026-07-15Feiner Bros NEGOTIATION61Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith C StockhamGermanyAmy Elsner QUALIFIED
Misaki C TollnerFranceAnna Fali NEW
Stacey V PoquetteIndiaBernardo Dominic NEW
Deepesh N BologniaRussiaIoni Bowcher PROPOSAL
Maisha O PoquetteIndiaOnyama Limba NEW
Claire Y MacleadAustraliaElwin Sharvill RENEWAL
Mayumi H GauchoAustraliaAnna Fali NEW
Adams O PaprockiIndiaOnyama Limba QUALIFIED
Isabel G CampainSpainXuxue Feng UNQUALIFIED
James J MaletAustraliaAsiya Javayant PROPOSAL
Munro P RutaIndiaAsiya Javayant NEGOTIATION
Rodrigues O RulapaughBrazilIvan Magalhaes PROPOSAL
Claire M OldroydGermanyStephen Shaw NEW
Juan L PoquetteItalyAnna Fali PROPOSAL
Johnson S BologniaRussiaIvan Magalhaes NEW
Aditya P WhobreyItalyBernardo Dominic RENEWAL
Greenwood H FollerAustraliaIoni Bowcher NEGOTIATION
Kaitlin M PoquetteItalyXuxue Feng UNQUALIFIED
Johnson B SchemmerAustraliaBernardo Dominic UNQUALIFIED
Kaitlin Y StensethRussiaAnna Fali RENEWAL
Octavia F InouyeRussiaIoni Bowcher NEGOTIATION
Maria X NestleJapanAnna Fali RENEWAL
Adams I StensethIndiaStephen Shaw RENEWAL
Kaitlin F OldroydGermanyOnyama Limba NEGOTIATION
Jones D AlbaresJapanAsiya Javayant UNQUALIFIED
Leon F PerinFranceOnyama Limba PROPOSAL
Stacey R SlusarskiGermanyAmy Elsner NEW
Salvatore K BowleyBrazilStephen Shaw RENEWAL
Munro S FerenczAustraliaAnna Fali QUALIFIED
Maria O IturbideRussiaAsiya Javayant UNQUALIFIED
Claire Q MaletRussiaElwin Sharvill RENEWAL
Clifford U NestleIndiaAmy Elsner PROPOSAL
Darci N OstroskyBrazilIvan Magalhaes QUALIFIED
Chavez E MarrierUnited KingdomElwin Sharvill RENEWAL
Stacey O GlickBrazilStephen Shaw NEGOTIATION
Mujtaba R CaudyAustraliaIoni Bowcher PROPOSAL
Faith K InouyeItalyOnyama Limba PROPOSAL
Maria B SergiAustraliaAmy Elsner RENEWAL
James K AmigonAustraliaAsiya Javayant NEGOTIATION
Wickens Y OldroydIndiaOnyama Limba QUALIFIED
Arvin T GauchoAustraliaElwin Sharvill NEGOTIATION
Morrow W FollerIndiaAmy Elsner NEW
Misaki K FlosiUnited KingdomXuxue Feng UNQUALIFIED
Stacey C DilliardJapanOnyama Limba UNQUALIFIED
Maria V RulapaughGermanyAsiya Javayant RENEWAL
Emily S CaldareraUnited KingdomXuxue Feng NEGOTIATION
Darci O DoeJapanAsiya Javayant RENEWAL
Darci P VocelkaGermanyAnna Fali UNQUALIFIED
Nicolas I FigeroaItalyStephen Shaw NEW
Wickens L AmigonSpainStephen Shaw PROPOSAL
Frozen Columns
Name
Murillo P Inouye
Leon M Albares
Leja H Flosi
Jefferson J Iturbide
Rodrigues I Vocelka
Sinclair B Rulapaugh
Jennifer V Iturbide
Cody O Malet
Jefferson Z Whobrey
Ricardo Z Malet
Munro E Wieser
Arvin Z Maclead
Costa Y Bolognia
Tony C Caudy
Darci L Ferencz
Alejandro J Amigon
James Q Whobrey
Stacey H Waycott
Murillo C Bowley
Smith O Morasca
Mayumi P Tollner
Izzy T Malet
Kadeem O Morasca
Izzy J Iturbide
Rodrigues D Amigon
Jeanfrancois L Rulapaugh
Julie X Doe
Kadeem Q Wieser
David M Perin
Silvio A Kusko
Smith V Wieser
Clifford S Marrier
Nicolas L Briddick
Rodrigues Q Saylors
Rodrigues F Figeroa
Isabel C Figeroa
Leja A Venere
Mayumi K Stenseth
Leon J Kusko
James U Garufi
Mujtaba R Royster
Jefferson P Paprocki
Clifford C Bowley
Jefferson R Rulapaugh
Jones S Stenseth
Kadeem Q Ruta
Jennifer X Chui
Aika J Marrier
Leja A Whobrey
Munro X Bolognia
IdCountryDate
1000Spain2026-06-20
1001United Kingdom2026-07-07
1002India2026-06-24
1003Russia2026-06-19
1004Brazil2026-06-29
1005Australia2026-06-27
1006India2026-06-29
1007Canada2026-07-05
1008Italy2026-07-11
1009Japan2026-06-26
1010Italy2026-06-23
1011Argentina2026-06-16
1012Australia2026-07-01
1013Argentina2026-06-21
1014France2026-06-18
1015Australia2026-07-11
1016Argentina2026-07-03
1017France2026-06-18
1018United Kingdom2026-06-18
1019Japan2026-06-30
1020Russia2026-06-28
1021Russia2026-06-26
1022France2026-06-22
1023Brazil2026-07-08
1024Japan2026-07-07
1025Argentina2026-06-26
1026Australia2026-06-29
1027Brazil2026-07-12
1028Spain2026-07-01
1029Australia2026-07-12
1030United Kingdom2026-07-01
1031Spain2026-07-04
1032India2026-07-09
1033Russia2026-06-26
1034India2026-07-07
1035Japan2026-06-26
1036Japan2026-07-15
1037Australia2026-06-24
1038Canada2026-07-07
1039France2026-07-08
1040Japan2026-06-23
1041India2026-06-17
1042Russia2026-07-02
1043Canada2026-07-10
1044Spain2026-07-05
1045Russia2026-06-17
1046Australia2026-06-18
1047India2026-06-24
1048Germany2026-07-13
1049Russia2026-07-01

On-Demand Data

NameIdCountryDate
Munro M Flosi1000Germany2026-06-23
Costa O Stenseth1001Italy2026-06-29
Clifford F Paprocki1002Australia2026-07-04
Francesco B Maclead1003Australia2026-06-21
Jones G Perin1004Germany2026-06-22
Chavez L Morasca1005Argentina2026-07-11
Jones T Doe1006United Kingdom2026-07-12
Mujtaba I Wieser1007Canada2026-06-25
Rodrigues H Poquette1008Canada2026-07-07
Aika P Chui1009Japan2026-07-03
Cody D Sergi1010Canada2026-07-11
Antonio G Shinko1011Spain2026-07-15
Stacey J Wieser1012Canada2026-06-28
Maria B Iturbide1013Japan2026-07-06
Izzy V Malet1014Japan2026-06-29
Antonio V Rim1015Italy2026-06-29
Aika O Garufi1016France2026-06-19
Jones J Wieser1017Germany2026-06-26
Jones Y Shinko1018Australia2026-06-27
Jeanfrancois J Marrier1019Russia2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio H FigeroaUnited KingdomElwin Sharvill NEW
Maria S SchemmerBrazilAnna Fali NEGOTIATION
Francesco X StockhamArgentinaAmy Elsner QUALIFIED
Izzy W FlosiUnited KingdomAnna Fali QUALIFIED
Maria X GlickGermanyAmy Elsner NEGOTIATION
Kadeem S GlickCanadaStephen Shaw UNQUALIFIED
Juan W MarrierCanadaAmy Elsner RENEWAL
Juan K PoquetteJapanBernardo Dominic NEW
Arvin C StockhamJapanAsiya Javayant NEGOTIATION
Claire M FigeroaJapanStephen Shaw NEW
Sinclair P WaycottArgentinaAmy Elsner PROPOSAL
Jones G KuskoFranceBernardo Dominic NEW
Jennifer X BriddickFranceAnna Fali NEW
Ashley U WaycottBrazilIvan Magalhaes UNQUALIFIED
Darci W OldroydArgentinaIvan Magalhaes NEGOTIATION
Sinclair W IturbideIndiaIvan Magalhaes NEW
Claire R WhobreyItalyAsiya Javayant RENEWAL
Izzy K DilliardRussiaIoni Bowcher NEGOTIATION
Munro I NickaRussiaAsiya Javayant PROPOSAL
Francesco O VenereFranceAsiya Javayant UNQUALIFIED
Cody Y OldroydGermanyIvan Magalhaes PROPOSAL
Ricardo N OldroydArgentinaOnyama Limba NEW
Jefferson O InouyeIndiaAnna Fali RENEWAL
Clifford H SchemmerAustraliaIvan Magalhaes NEW
Jefferson V GlickSpainIoni Bowcher QUALIFIED
Leja C AmigonAustraliaAsiya Javayant NEW
Arvin B GauchoUnited KingdomBernardo Dominic QUALIFIED
Arvin J WaycottFranceBernardo Dominic NEW
Leon Q PoquetteRussiaAsiya Javayant PROPOSAL
Aruna Z SergiJapanBernardo Dominic NEGOTIATION
Leja N ButtSpainIoni Bowcher NEW
Costa T MarrierBrazilAmy Elsner QUALIFIED
Aditya T NestleRussiaAnna Fali NEW
Wickens Y StensethItalyOnyama Limba RENEWAL
Morrow L GarufiItalyXuxue Feng RENEWAL
Chavez T RulapaughCanadaOnyama Limba UNQUALIFIED
Munro Z DoeItalyAnna Fali RENEWAL
Francesco Q RoysterFranceOnyama Limba PROPOSAL
Greenwood T FigeroaBrazilAsiya Javayant RENEWAL
Leja L VenereBrazilIvan Magalhaes RENEWAL

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