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
Darci V SchemmerRussiaElwin Sharvill NEW
Juan S OldroydRussiaAnna Fali NEGOTIATION
Mayumi A NickaUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem S FigeroaBrazilStephen Shaw NEW
Tony L ChuiUnited KingdomAsiya Javayant NEGOTIATION
Silvio U PoquetteAustraliaIoni Bowcher NEW
Francesco F DarakjyJapanXuxue Feng PROPOSAL
Rodrigues S KuskoBrazilIvan Magalhaes NEGOTIATION
Izzy T KolmetzIndiaXuxue Feng UNQUALIFIED
Misaki I GauchoCanadaStephen Shaw QUALIFIED
Ivar X WaycottSpainAsiya Javayant QUALIFIED
Kadeem T KolmetzCanadaBernardo Dominic QUALIFIED
Tony T RimBrazilBernardo Dominic PROPOSAL
Francesco J SaylorsBrazilStephen Shaw QUALIFIED
Clifford V FerenczCanadaAmy Elsner UNQUALIFIED
Maisha W CampainGermanyIvan Magalhaes RENEWAL
Antonio L WaycottCanadaBernardo Dominic NEGOTIATION
Faith K ChuiJapanOnyama Limba QUALIFIED
Juan S MaletRussiaStephen Shaw RENEWAL
Ivar G DilliardRussiaIoni Bowcher UNQUALIFIED
Rodrigues H NickaCanadaXuxue Feng NEGOTIATION
Arvin P MacleadFranceAsiya Javayant PROPOSAL
Maria Q SergiIndiaAnna Fali QUALIFIED
Kadeem R CaudyJapanAmy Elsner RENEWAL
Octavia K DarakjyArgentinaAnna Fali NEW
Costa M BologniaAustraliaAnna Fali NEGOTIATION
Emily Y IturbideCanadaXuxue Feng NEGOTIATION
Kadeem I RoysterJapanAmy Elsner PROPOSAL
Faith M PerinItalyIvan Magalhaes NEW
Clifford Q IturbideJapanIvan Magalhaes RENEWAL
Kaitlin J MorascaJapanAsiya Javayant NEGOTIATION
Isabel F WieserRussiaOnyama Limba NEGOTIATION
Francesco H ChuiGermanyElwin Sharvill QUALIFIED
Smith J KolmetzArgentinaStephen Shaw NEGOTIATION
Morrow B RutaItalyStephen Shaw PROPOSAL
Leon A MaletUnited KingdomStephen Shaw RENEWAL
Deepesh N ShinkoIndiaAsiya Javayant RENEWAL
Maisha K ShinkoGermanyAmy Elsner RENEWAL
Arvin Y BologniaAustraliaBernardo Dominic UNQUALIFIED
Ricardo F GillianUnited KingdomAmy Elsner UNQUALIFIED
Nicolas P RimIndiaIvan Magalhaes QUALIFIED
Emily F CaldareraArgentinaIvan Magalhaes NEGOTIATION
Salvatore O AmigonItalyStephen Shaw UNQUALIFIED
Mujtaba C GlickBrazilAmy Elsner PROPOSAL
Francesco G IturbideBrazilAnna Fali NEW
Izzy M RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Kadeem O AmigonBrazilStephen Shaw NEW
Antonio E FlosiArgentinaElwin Sharvill RENEWAL
Ricardo V TollnerGermanyIoni Bowcher NEGOTIATION
Ivar B GarufiIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Arvin F InouyeItalyAsiya Javayant NEGOTIATION
Murillo J IturbideJapanBernardo Dominic PROPOSAL
Jones N CampainUnited KingdomAsiya Javayant PROPOSAL
Jefferson I StockhamGermanyElwin Sharvill RENEWAL
Salvatore F StensethArgentinaXuxue Feng QUALIFIED
Stacey R SergiBrazilElwin Sharvill NEGOTIATION
Deepesh N WaycottUnited KingdomStephen Shaw NEW
Greenwood T StockhamFranceOnyama Limba NEW
Francesco V BowleyArgentinaElwin Sharvill PROPOSAL
Arvin O RoysterAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues M IturbideSpain2026-07-31Chanay, Jeffrey A Esq RENEWAL11Bernardo Dominic
1001Chavez U ShinkoFrance2026-07-29King, Christopher A Esq NEW33Amy Elsner
1002Ashley O DoeCanada2026-08-04Morlong Associates PROPOSAL0Ioni Bowcher
1003Greenwood E SergiFrance2026-08-11Chapman, Ross E Esq RENEWAL90Ivan Magalhaes
1004Jones Z KuskoGermany2026-08-03Chapman, Ross E Esq RENEWAL34Anna Fali
1005Antonio S SaylorsBrazil2026-08-26Buckley Miller Wright PROPOSAL76Xuxue Feng
1006Stacey Y KolmetzSpain2026-08-16Benton, John B Jr UNQUALIFIED55Asiya Javayant
1007Chavez D FigeroaBrazil2026-08-16Rousseaux, Michael Esq RENEWAL27Stephen Shaw
1008Claire K NestleRussia2026-08-03Chemel, James L Cpa RENEWAL86Anna Fali
1009Nicolas Z BowleyUnited Kingdom2026-08-16Chanay, Jeffrey A Esq PROPOSAL58Anna Fali
1010Mujtaba D ButtRussia2026-07-31Chapman, Ross E Esq QUALIFIED7Anna Fali
1011Deepesh Q TollnerFrance2026-08-07Morlong Associates PROPOSAL1Bernardo Dominic
1012Salvatore R BriddickRussia2026-07-30Feiner Bros NEGOTIATION63Elwin Sharvill
1013Maisha Z IturbideFrance2026-08-12Benton, John B Jr NEW63Stephen Shaw
1014Kaitlin I FlosiFrance2026-08-05Dorl, James J Esq UNQUALIFIED49Onyama Limba
1015Arvin M InouyeArgentina2026-08-11Rousseaux, Michael Esq NEGOTIATION14Elwin Sharvill
1016Ashley O PoquetteIndia2026-08-02Feiner Bros UNQUALIFIED42Stephen Shaw
1017Smith C StensethAustralia2026-08-21Morlong Associates RENEWAL99Amy Elsner
1018Kadeem V MaletAustralia2026-08-04Chapman, Ross E Esq QUALIFIED38Ivan Magalhaes
1019Nicolas W FigeroaSpain2026-08-26Printing Dimensions NEGOTIATION18Asiya Javayant
1020Adams X OldroydSpain2026-08-17Chemel, James L Cpa QUALIFIED7Xuxue Feng
1021Silvio W RulapaughArgentina2026-08-09Buckley Miller Wright RENEWAL27Anna Fali
1022Morrow M IturbideSpain2026-08-03Truhlar And Truhlar Attys PROPOSAL45Asiya Javayant
1023Francesco K MaletIndia2026-07-31Chapman, Ross E Esq PROPOSAL67Ivan Magalhaes
1024Leja X AlbaresFrance2026-08-06Rangoni Of Florence UNQUALIFIED26Bernardo Dominic
1025Rodrigues A RutaCanada2026-08-20Benton, John B Jr NEGOTIATION17Onyama Limba
1026Misaki A MorascaFrance2026-08-23Feiner Bros UNQUALIFIED60Bernardo Dominic
1027Jeanfrancois Z WhobreyCanada2026-08-05Printing Dimensions QUALIFIED67Stephen Shaw
1028Munro O StockhamItaly2026-08-18Dorl, James J Esq NEGOTIATION61Stephen Shaw
1029Cody T FerenczRussia2026-08-17King, Christopher A Esq RENEWAL49Ivan Magalhaes
1030Juan W DilliardUnited Kingdom2026-08-10King, Christopher A Esq NEGOTIATION83Xuxue Feng
1031Ricardo W ShinkoAustralia2026-08-16Rousseaux, Michael Esq RENEWAL58Elwin Sharvill
1032Johnson O SergiItaly2026-07-29King, Christopher A Esq RENEWAL22Ioni Bowcher
1033Munro R RoysterSpain2026-08-16Chemel, James L Cpa NEW74Elwin Sharvill
1034Sinclair M CampainGermany2026-08-15Feltz Printing Service PROPOSAL4Elwin Sharvill
1035Rodrigues M FollerItaly2026-08-08Benton, John B Jr NEGOTIATION50Asiya Javayant
1036Aika T SchemmerArgentina2026-08-17Feiner Bros PROPOSAL68Asiya Javayant
1037Clifford H BologniaItaly2026-08-11Benton, John B Jr RENEWAL49Ioni Bowcher
1038Julie T StockhamIndia2026-08-11Morlong Associates NEGOTIATION73Stephen Shaw
1039Arvin E SergiFrance2026-08-11Benton, John B Jr UNQUALIFIED8Anna Fali
1040Nicolas C SergiArgentina2026-08-21Chapman, Ross E Esq PROPOSAL46Ioni Bowcher
1041Octavia I DoeSpain2026-08-13Dorl, James J Esq RENEWAL67Xuxue Feng
1042Tony B NickaAustralia2026-08-19Truhlar And Truhlar Attys PROPOSAL35Ioni Bowcher
1043Emily L MarrierUnited Kingdom2026-08-08King, Christopher A Esq UNQUALIFIED86Ioni Bowcher
1044Arvin G WieserJapan2026-08-05Dorl, James J Esq RENEWAL40Elwin Sharvill
1045Greenwood M SergiArgentina2026-08-08Chanay, Jeffrey A Esq PROPOSAL75Elwin Sharvill
1046Mujtaba I VocelkaJapan2026-08-04Feltz Printing Service QUALIFIED78Asiya Javayant
1047Deepesh R GlickItaly2026-08-25Feiner Bros RENEWAL7Ioni Bowcher
1048Costa L SchemmerIndia2026-08-17Chapman, Ross E Esq QUALIFIED94Anna Fali
1049Mujtaba Y GillianSpain2026-07-31Feltz Printing Service QUALIFIED1Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Tony F SaylorsGermanyAmy Elsner NEW
David K FlosiItalyIvan Magalhaes NEW
Faith L OldroydCanadaIoni Bowcher NEW
Silvio O WhobreyIndiaOnyama Limba UNQUALIFIED
Greenwood A GillianRussiaIoni Bowcher PROPOSAL
Ricardo F TollnerSpainAsiya Javayant UNQUALIFIED
Kadeem K BriddickJapanIoni Bowcher NEGOTIATION
Jeanfrancois H GillianUnited KingdomStephen Shaw QUALIFIED
Misaki W DarakjyIndiaAnna Fali NEW
Ashley W CaudyCanadaElwin Sharvill NEW
Antonio J ButtBrazilAnna Fali PROPOSAL
Smith N GarufiGermanyIvan Magalhaes NEW
Maisha I MaletArgentinaBernardo Dominic NEGOTIATION
Ashley L PaprockiJapanElwin Sharvill QUALIFIED
Aditya E WieserItalyAmy Elsner NEW
Adams Y MorascaItalyAnna Fali QUALIFIED
Jeanfrancois F GillianJapanIvan Magalhaes UNQUALIFIED
Claire J CaldareraFranceOnyama Limba UNQUALIFIED
Clifford S WhobreyArgentinaStephen Shaw NEW
Aditya Y KolmetzIndiaAmy Elsner PROPOSAL
Johnson J GauchoUnited KingdomStephen Shaw RENEWAL
Wickens R PoquetteAustraliaAmy Elsner UNQUALIFIED
Leja X KolmetzAustraliaBernardo Dominic NEGOTIATION
Octavia D NestleJapanElwin Sharvill NEW
Ashley C RimGermanyAsiya Javayant RENEWAL
Juan P WaycottFranceXuxue Feng RENEWAL
Octavia O SaylorsItalyAsiya Javayant RENEWAL
Antonio C CampainAustraliaElwin Sharvill QUALIFIED
Johnson J ChuiBrazilAnna Fali RENEWAL
Jennifer S WhobreyAustraliaIvan Magalhaes PROPOSAL
Greenwood L MaletJapanIoni Bowcher NEW
Ashley P GlickSpainOnyama Limba NEGOTIATION
Mujtaba J RoysterItalyBernardo Dominic NEGOTIATION
Smith C SchemmerBrazilIvan Magalhaes NEGOTIATION
Munro O StockhamJapanIvan Magalhaes NEGOTIATION
Aika Z StockhamGermanyOnyama Limba UNQUALIFIED
Sinclair M GarufiRussiaAsiya Javayant RENEWAL
Aditya Q SergiCanadaAmy Elsner NEW
Aditya E MarrierRussiaElwin Sharvill NEW
Faith Q FerenczJapanElwin Sharvill PROPOSAL
David Y MarrierBrazilXuxue Feng QUALIFIED
Ashley S RulapaughSpainIoni Bowcher RENEWAL
Mujtaba X GillianIndiaBernardo Dominic PROPOSAL
Morrow R FlosiBrazilOnyama Limba NEW
Stacey F GillianUnited KingdomAnna Fali NEW
Sinclair L BowleyJapanIvan Magalhaes PROPOSAL
Smith M MaletItalyIvan Magalhaes NEGOTIATION
Deepesh P StockhamAustraliaOnyama Limba NEGOTIATION
Costa U CaudyArgentinaElwin Sharvill UNQUALIFIED
Izzy F BologniaArgentinaOnyama Limba QUALIFIED
Frozen Columns
Name
Isabel P Gillian
Juan I Dilliard
Wickens H Butt
Ricardo X Sergi
Ivar F Bowley
Cody W Glick
Jefferson B Kusko
Emily F Garufi
Mayumi R Schemmer
Mujtaba J Gillian
Stacey B Kusko
Jones B Ruta
Aruna D Rim
Silvio M Campain
Mayumi A Gaucho
Kadeem L Sergi
Murillo Y Marrier
Kadeem A Wieser
Munro F Inouye
Stacey U Bolognia
Aruna M Waycott
James T Ferencz
Smith N Venere
Sinclair R Tollner
Kaitlin E Figeroa
Sinclair D Slusarski
Leja W Sergi
Johnson E Saylors
Claire O Chui
Claire Y Caudy
Aruna U Vocelka
Misaki G Morasca
Kadeem A Morasca
Jennifer Q Albares
Clifford S Saylors
Tony W Kolmetz
Emily H Sergi
Emily B Nestle
Rodrigues I Bowley
Leja I Sergi
Aika Q Maclead
Izzy D Dilliard
Stacey K Stockham
Nicolas M Ferencz
Julie B Maclead
Mayumi N Flosi
Maisha D Gillian
Aruna Z Darakjy
Misaki T Gillian
Arvin L Figeroa
IdCountryDate
1000Canada2026-08-01
1001Canada2026-08-19
1002Argentina2026-08-22
1003India2026-08-11
1004United Kingdom2026-08-06
1005Canada2026-08-12
1006Australia2026-08-27
1007Argentina2026-08-18
1008Canada2026-08-22
1009Brazil2026-08-25
1010Russia2026-08-20
1011Russia2026-08-13
1012Spain2026-08-11
1013Brazil2026-08-26
1014Russia2026-08-22
1015United Kingdom2026-08-27
1016Germany2026-08-04
1017India2026-08-23
1018Russia2026-08-13
1019Germany2026-08-11
1020Japan2026-08-19
1021Italy2026-08-01
1022Russia2026-08-17
1023Brazil2026-08-05
1024Argentina2026-08-05
1025United Kingdom2026-08-10
1026Germany2026-08-02
1027Argentina2026-08-06
1028Argentina2026-08-06
1029United Kingdom2026-08-13
1030Argentina2026-08-03
1031Japan2026-08-18
1032France2026-08-20
1033Italy2026-08-22
1034France2026-07-29
1035Australia2026-08-18
1036Germany2026-08-03
1037Australia2026-07-31
1038Canada2026-08-14
1039France2026-08-09
1040Japan2026-08-16
1041Italy2026-08-02
1042Argentina2026-08-19
1043India2026-08-21
1044Japan2026-08-12
1045France2026-08-07
1046United Kingdom2026-08-12
1047Spain2026-08-23
1048Germany2026-08-09
1049Argentina2026-08-19

On-Demand Data

NameIdCountryDate
Juan K Oldroyd1000Australia2026-08-04
Nicolas Q Flosi1001Italy2026-08-16
Leon R Glick1002France2026-08-19
Francesco B Gaucho1003Brazil2026-08-08
Deepesh L Poquette1004Russia2026-08-11
Ricardo Q Perin1005Japan2026-08-20
Aditya K Paprocki1006Argentina2026-08-07
Smith G Stenseth1007Japan2026-08-04
Munro J Stenseth1008Canada2026-08-03
Jennifer K Doe1009Russia2026-08-02
Ashley P Darakjy1010Brazil2026-08-16
Leja H Shinko1011Spain2026-08-24
David G Malet1012Spain2026-08-12
Morrow Z Ostrosky1013Germany2026-08-21
Maria E Whobrey1014Australia2026-08-24
Kadeem I Chui1015Russia2026-08-21
Claire Q Venere1016India2026-08-24
Octavia N Rim1017Japan2026-08-23
Cody S Dilliard1018India2026-08-06
Munro M Shinko1019France2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio P CaldareraGermanyAsiya Javayant NEGOTIATION
Rodrigues R FerenczSpainStephen Shaw NEW
Greenwood O DarakjyGermanyIvan Magalhaes RENEWAL
Jefferson W SlusarskiBrazilStephen Shaw PROPOSAL
Mujtaba M SergiRussiaAnna Fali NEW
Greenwood R PoquetteRussiaAsiya Javayant NEW
David L PoquetteBrazilStephen Shaw NEW
Costa I SchemmerArgentinaStephen Shaw NEW
Adams F PerinIndiaAmy Elsner NEGOTIATION
Rodrigues N TollnerItalyIoni Bowcher QUALIFIED
Salvatore U OldroydArgentinaXuxue Feng NEW
Leja O DarakjyFranceIvan Magalhaes NEGOTIATION
Alejandro S StensethBrazilAnna Fali QUALIFIED
Isabel X VocelkaUnited KingdomStephen Shaw NEW
Sinclair C VocelkaUnited KingdomBernardo Dominic PROPOSAL
Aditya N TollnerJapanAsiya Javayant NEGOTIATION
Aruna P AlbaresRussiaAnna Fali RENEWAL
Costa P WieserIndiaIvan Magalhaes UNQUALIFIED
Morrow K GlickUnited KingdomIvan Magalhaes NEW
Darci B KuskoArgentinaIoni Bowcher NEW
Kadeem O TollnerGermanyStephen Shaw NEW
Claire G MorascaBrazilAsiya Javayant NEGOTIATION
Darci Z SergiAustraliaOnyama Limba NEGOTIATION
Octavia R DarakjyGermanyBernardo Dominic QUALIFIED
Octavia A ChuiAustraliaOnyama Limba NEGOTIATION
Smith L CaldareraRussiaOnyama Limba UNQUALIFIED
Francesco B GlickRussiaXuxue Feng PROPOSAL
Jeanfrancois A FerenczFranceAsiya Javayant UNQUALIFIED
Mujtaba C PaprockiArgentinaXuxue Feng RENEWAL
Morrow Z InouyeItalyAsiya Javayant NEW
Greenwood J BriddickItalyOnyama Limba QUALIFIED
Leja G AlbaresItalyAmy Elsner NEW
Ashley P AlbaresArgentinaElwin Sharvill PROPOSAL
Izzy R RutaRussiaStephen Shaw RENEWAL
Salvatore D PaprockiArgentinaIoni Bowcher QUALIFIED
Leon E CaldareraBrazilIoni Bowcher UNQUALIFIED
Chavez E ButtItalyElwin Sharvill NEGOTIATION
Ashley I DarakjyFranceXuxue Feng QUALIFIED
Maisha Q FigeroaJapanOnyama Limba PROPOSAL
Octavia U StensethJapanAsiya Javayant 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>