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
Claire T PerinItalyAsiya Javayant NEGOTIATION
Jefferson Y RulapaughArgentinaXuxue Feng PROPOSAL
Salvatore A FerenczUnited KingdomIoni Bowcher NEGOTIATION
Murillo R MaletArgentinaAnna Fali RENEWAL
Kadeem W SlusarskiFranceAsiya Javayant NEW
Sinclair S DilliardUnited KingdomAnna Fali PROPOSAL
Deepesh X KolmetzGermanyOnyama Limba RENEWAL
Emily X KolmetzItalyAnna Fali QUALIFIED
Munro V OstroskyItalyXuxue Feng NEW
Aditya I MorascaAustraliaOnyama Limba UNQUALIFIED
Murillo P DoeGermanyStephen Shaw PROPOSAL
James H GarufiItalyAsiya Javayant QUALIFIED
Nicolas V FlosiItalyXuxue Feng QUALIFIED
Morrow V IturbideCanadaIoni Bowcher NEW
Clifford W NickaUnited KingdomAsiya Javayant QUALIFIED
Izzy E RutaSpainBernardo Dominic RENEWAL
Arvin O ChuiCanadaXuxue Feng RENEWAL
Adams G StensethUnited KingdomBernardo Dominic NEW
Francesco M ChuiIndiaIoni Bowcher UNQUALIFIED
Francesco A RulapaughSpainBernardo Dominic NEGOTIATION
Octavia R ShinkoIndiaAsiya Javayant QUALIFIED
Aditya X FerenczCanadaXuxue Feng NEW
Munro I SlusarskiCanadaElwin Sharvill UNQUALIFIED
Ivar T MacleadIndiaAnna Fali NEW
Julie F WaycottAustraliaBernardo Dominic QUALIFIED
Johnson Q RoysterCanadaAnna Fali QUALIFIED
Leon W WhobreyItalyBernardo Dominic PROPOSAL
Chavez L MaletIndiaOnyama Limba RENEWAL
Kaitlin A RimGermanyBernardo Dominic NEW
Emily H MaletAustraliaXuxue Feng QUALIFIED
Rodrigues T TollnerGermanyXuxue Feng NEGOTIATION
Chavez L RimGermanyStephen Shaw NEW
Antonio M DarakjyUnited KingdomAnna Fali UNQUALIFIED
Misaki C VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Jennifer K GauchoItalyOnyama Limba NEW
Leja U KolmetzSpainXuxue Feng PROPOSAL
Deepesh K WhobreyUnited KingdomAmy Elsner PROPOSAL
Kadeem F OstroskyRussiaElwin Sharvill UNQUALIFIED
Chavez G StockhamAustraliaIvan Magalhaes UNQUALIFIED
Isabel P FerenczJapanOnyama Limba NEGOTIATION
Aditya B ChuiGermanyAmy Elsner NEGOTIATION
Rodrigues V KolmetzCanadaBernardo Dominic NEW
Maisha R FollerCanadaOnyama Limba QUALIFIED
Jeanfrancois O SchemmerJapanIoni Bowcher NEW
Jefferson G FigeroaItalyAnna Fali NEGOTIATION
Deepesh K KolmetzItalyStephen Shaw NEW
Murillo W WhobreySpainBernardo Dominic UNQUALIFIED
Clifford I PerinGermanyBernardo Dominic QUALIFIED
Morrow E DilliardJapanElwin Sharvill NEW
Cody Q BologniaAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Francesco N OstroskyFranceBernardo Dominic UNQUALIFIED
Maria T CaldareraSpainAnna Fali QUALIFIED
Claire Y DoeRussiaAsiya Javayant PROPOSAL
Juan K StockhamIndiaElwin Sharvill NEW
Isabel N NestleFranceElwin Sharvill RENEWAL
David S PoquetteAustraliaOnyama Limba QUALIFIED
Octavia W GillianIndiaElwin Sharvill QUALIFIED
Greenwood M FerenczCanadaAsiya Javayant QUALIFIED
Alejandro F BologniaBrazilStephen Shaw NEGOTIATION
Silvio H IturbideFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Q SchemmerAustralia2025-04-17Truhlar And Truhlar Attys QUALIFIED48Xuxue Feng
1001Jennifer U SergiRussia2025-04-02Chanay, Jeffrey A Esq NEW16Elwin Sharvill
1002Kaitlin Z InouyeItaly2025-04-20Dorl, James J Esq UNQUALIFIED93Amy Elsner
1003Greenwood V CampainArgentina2025-04-09Chanay, Jeffrey A Esq NEGOTIATION84Elwin Sharvill
1004Alejandro Q DilliardCanada2025-04-18Feltz Printing Service PROPOSAL49Anna Fali
1005Kadeem Q StensethFrance2025-04-03Rangoni Of Florence PROPOSAL40Ivan Magalhaes
1006Aika U WieserGermany2025-04-01Printing Dimensions UNQUALIFIED3Onyama Limba
1007Ivar P WieserItaly2025-04-22Feltz Printing Service UNQUALIFIED26Ivan Magalhaes
1008Aruna B RoysterJapan2025-04-16Buckley Miller Wright QUALIFIED81Stephen Shaw
1009Tony J GlickGermany2025-04-20Dorl, James J Esq RENEWAL72Ioni Bowcher
1010Jefferson K CampainItaly2025-04-13King, Christopher A Esq RENEWAL58Stephen Shaw
1011Maria D VocelkaGermany2025-04-04Feltz Printing Service PROPOSAL98Anna Fali
1012Salvatore Y GillianIndia2025-04-16Chanay, Jeffrey A Esq NEW6Xuxue Feng
1013Greenwood Q WieserRussia2025-04-08Rangoni Of Florence NEGOTIATION2Elwin Sharvill
1014Juan M MacleadCanada2025-04-30King, Christopher A Esq PROPOSAL59Bernardo Dominic
1015Aruna I BologniaArgentina2025-04-26Dorl, James J Esq QUALIFIED60Bernardo Dominic
1016Emily M GauchoGermany2025-04-08Printing Dimensions UNQUALIFIED89Ioni Bowcher
1017Chavez D RutaRussia2025-04-22Buckley Miller Wright PROPOSAL0Elwin Sharvill
1018Tony U AmigonGermany2025-04-18Feltz Printing Service UNQUALIFIED0Stephen Shaw
1019Claire H StockhamJapan2025-04-07Rousseaux, Michael Esq PROPOSAL98Bernardo Dominic
1020Deepesh X CaldareraGermany2025-04-22Morlong Associates NEW38Amy Elsner
1021Wickens G DoeSpain2025-04-21King, Christopher A Esq PROPOSAL97Onyama Limba
1022Jefferson B DilliardGermany2025-04-06Morlong Associates PROPOSAL99Elwin Sharvill
1023Costa D SaylorsArgentina2025-04-03Printing Dimensions PROPOSAL76Stephen Shaw
1024Stacey E ButtGermany2025-04-07Rangoni Of Florence UNQUALIFIED37Ioni Bowcher
1025Leja M ShinkoSpain2025-04-11Feltz Printing Service NEW84Ivan Magalhaes
1026Kadeem F RoysterIndia2025-04-19King, Christopher A Esq RENEWAL71Elwin Sharvill
1027Smith V KuskoFrance2025-04-08Printing Dimensions NEGOTIATION55Ioni Bowcher
1028Maria L ShinkoSpain2025-04-18Chapman, Ross E Esq PROPOSAL63Xuxue Feng
1029Sinclair P RulapaughRussia2025-04-13Dorl, James J Esq RENEWAL21Amy Elsner
1030Cody J ChuiIndia2025-04-07Chapman, Ross E Esq RENEWAL97Stephen Shaw
1031Leja Y AmigonRussia2025-04-05Chanay, Jeffrey A Esq RENEWAL49Ivan Magalhaes
1032Jones R VenereCanada2025-04-29Morlong Associates NEW79Ivan Magalhaes
1033Adams H ButtCanada2025-04-09Benton, John B Jr RENEWAL91Bernardo Dominic
1034Costa F RimAustralia2025-04-08Commercial Press UNQUALIFIED40Elwin Sharvill
1035James E MorascaAustralia2025-04-26King, Christopher A Esq RENEWAL18Asiya Javayant
1036Emily E RutaIndia2025-04-24Chemel, James L Cpa NEW78Stephen Shaw
1037Wickens I SlusarskiArgentina2025-04-03Benton, John B Jr NEW92Ivan Magalhaes
1038Ricardo Q WaycottBrazil2025-04-16Chemel, James L Cpa PROPOSAL19Ioni Bowcher
1039Costa T MorascaCanada2025-04-23Printing Dimensions RENEWAL78Stephen Shaw
1040Salvatore L AmigonArgentina2025-04-25Feiner Bros PROPOSAL22Amy Elsner
1041Izzy Y KolmetzFrance2025-04-22Buckley Miller Wright QUALIFIED69Ioni Bowcher
1042Misaki S PerinGermany2025-04-27Truhlar And Truhlar Attys UNQUALIFIED77Bernardo Dominic
1043Isabel S CampainItaly2025-04-16Truhlar And Truhlar Attys PROPOSAL46Xuxue Feng
1044Emily S SergiArgentina2025-04-26Feltz Printing Service RENEWAL57Amy Elsner
1045Tony N ShinkoGermany2025-04-17Feiner Bros PROPOSAL23Amy Elsner
1046Ivar K FollerGermany2025-04-18Dorl, James J Esq RENEWAL17Stephen Shaw
1047Kadeem X NickaJapan2025-04-27Chemel, James L Cpa PROPOSAL97Onyama Limba
1048Maisha H GauchoItaly2025-04-09Feltz Printing Service PROPOSAL80Bernardo Dominic
1049Jennifer I StensethUnited Kingdom2025-04-25Feltz Printing Service RENEWAL6Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ricardo I InouyeCanadaBernardo Dominic QUALIFIED
Jefferson T RutaArgentinaAsiya Javayant PROPOSAL
Morrow X WhobreyItalyAmy Elsner NEGOTIATION
Jones D RoysterBrazilOnyama Limba PROPOSAL
Nicolas A AlbaresFranceOnyama Limba NEGOTIATION
Antonio Z KuskoFranceBernardo Dominic PROPOSAL
Aika W MaletAustraliaAnna Fali UNQUALIFIED
Sinclair R FerenczGermanyAmy Elsner QUALIFIED
Darci G GillianGermanyBernardo Dominic RENEWAL
Mayumi Y DarakjyBrazilAnna Fali QUALIFIED
David R VenereJapanAnna Fali QUALIFIED
Smith O IturbideBrazilXuxue Feng QUALIFIED
Jeanfrancois L CaudyIndiaBernardo Dominic PROPOSAL
Munro I DilliardJapanOnyama Limba QUALIFIED
Aditya I DoeUnited KingdomAsiya Javayant UNQUALIFIED
Costa Z PoquetteAustraliaElwin Sharvill PROPOSAL
Octavia J VocelkaUnited KingdomIvan Magalhaes RENEWAL
Kaitlin E GillianJapanIoni Bowcher NEW
Alejandro E FlosiArgentinaBernardo Dominic UNQUALIFIED
Johnson K StockhamItalyXuxue Feng NEGOTIATION
Aika J CaudyBrazilIoni Bowcher NEW
Faith N MorascaBrazilStephen Shaw NEGOTIATION
Johnson G AlbaresIndiaBernardo Dominic RENEWAL
Greenwood F PerinAustraliaOnyama Limba UNQUALIFIED
Clifford B AmigonFranceAsiya Javayant UNQUALIFIED
Emily C WieserCanadaAnna Fali RENEWAL
Maisha G VocelkaGermanyAmy Elsner NEGOTIATION
Costa C WieserJapanIoni Bowcher PROPOSAL
Darci Z VenereSpainIoni Bowcher QUALIFIED
Jones D IturbideCanadaStephen Shaw PROPOSAL
Francesco F BologniaAustraliaAnna Fali PROPOSAL
Tony C AmigonUnited KingdomElwin Sharvill NEGOTIATION
Smith M CampainRussiaAmy Elsner UNQUALIFIED
Alejandro H SchemmerArgentinaAmy Elsner NEGOTIATION
Leja Y GauchoGermanyAsiya Javayant NEGOTIATION
Ivar I ChuiGermanyXuxue Feng NEGOTIATION
Clifford Z ChuiRussiaElwin Sharvill UNQUALIFIED
Greenwood H WaycottGermanyBernardo Dominic RENEWAL
Tony S BriddickItalyAnna Fali NEGOTIATION
Johnson V RulapaughJapanBernardo Dominic QUALIFIED
Nicolas C MacleadAustraliaIoni Bowcher RENEWAL
Jennifer C NickaGermanyStephen Shaw NEGOTIATION
Aika B RutaAustraliaIvan Magalhaes NEW
Greenwood Y InouyeFranceAnna Fali QUALIFIED
Wickens W FlosiJapanIoni Bowcher NEGOTIATION
Murillo B SlusarskiUnited KingdomAsiya Javayant NEW
Leja Q WaycottUnited KingdomAmy Elsner UNQUALIFIED
Arvin Y CampainIndiaOnyama Limba NEW
Maisha A BowleyJapanAsiya Javayant NEW
Alejandro Z TollnerItalyOnyama Limba QUALIFIED
Frozen Columns
Name
Aditya N Kolmetz
Ricardo O Nicka
Rodrigues T Caudy
Cody B Paprocki
Misaki Z Schemmer
Smith P Inouye
Ivar G Marrier
Francesco V Amigon
Jennifer F Marrier
Izzy J Butt
Kaitlin A Oldroyd
Costa L Darakjy
Ricardo D Venere
Misaki E Darakjy
Ashley P Ferencz
Juan G Ferencz
Isabel S Perin
Faith S Chui
James B Vocelka
James C Royster
Mujtaba S Glick
Johnson P Shinko
James Q Amigon
Chavez J Bowley
Ivar X Nestle
James C Ruta
Tony C Butt
Antonio Y Whobrey
Sinclair V Garufi
Julie L Figeroa
Faith M Caudy
Octavia T Bowley
Julie S Briddick
Emily L Amigon
Octavia Z Gaucho
Silvio F Flosi
Sinclair N Gillian
Aditya T Tollner
Nicolas X Bowley
Emily E Figeroa
Morrow Y Schemmer
Maria D Venere
Aruna Z Rulapaugh
Ashley E Paprocki
Adams R Paprocki
Smith N Chui
Maisha J Butt
Alejandro S Malet
James I Rulapaugh
Jones T Bolognia
IdCountryDate
1000United Kingdom2025-04-18
1001Argentina2025-04-25
1002Italy2025-04-30
1003Canada2025-04-13
1004Italy2025-04-19
1005Brazil2025-04-15
1006Germany2025-04-14
1007Germany2025-04-14
1008Argentina2025-04-19
1009Japan2025-04-23
1010Japan2025-04-30
1011France2025-04-08
1012Italy2025-04-28
1013Argentina2025-04-03
1014Spain2025-04-30
1015Russia2025-04-21
1016Australia2025-04-09
1017Germany2025-04-30
1018Germany2025-04-19
1019Brazil2025-04-05
1020Canada2025-04-16
1021India2025-04-07
1022Japan2025-04-07
1023Australia2025-04-18
1024Brazil2025-04-06
1025United Kingdom2025-04-24
1026Japan2025-04-10
1027Italy2025-04-18
1028Spain2025-04-22
1029Italy2025-04-15
1030Spain2025-04-09
1031Argentina2025-04-08
1032Brazil2025-04-06
1033Argentina2025-04-26
1034Brazil2025-04-30
1035Brazil2025-04-19
1036Japan2025-04-28
1037United Kingdom2025-04-17
1038Canada2025-04-20
1039Argentina2025-04-02
1040Spain2025-04-26
1041Canada2025-04-22
1042Italy2025-04-01
1043Germany2025-04-18
1044Argentina2025-04-05
1045Brazil2025-04-16
1046Brazil2025-04-18
1047Australia2025-04-19
1048Canada2025-04-10
1049Japan2025-04-02

On-Demand Data

NameIdCountryDate
Octavia G Ruta1000United Kingdom2025-04-17
Smith W Perin1001Australia2025-04-28
Octavia S Oldroyd1002Germany2025-04-24
Kadeem J Albares1003Australia2025-04-17
Murillo U Ferencz1004Japan2025-04-23
Kaitlin T Chui1005Spain2025-04-22
Mujtaba T Iturbide1006Spain2025-04-30
Claire I Foller1007Australia2025-04-16
Chavez Z Morasca1008United Kingdom2025-04-07
Salvatore J Maclead1009United Kingdom2025-04-27
Mujtaba Q Saylors1010France2025-04-13
Murillo C Perin1011Argentina2025-04-06
Francesco Z Saylors1012France2025-04-03
Leja H Stockham1013Canada2025-04-24
Aditya F Malet1014India2025-04-25
Tony A Morasca1015United Kingdom2025-04-23
Mayumi E Ostrosky1016India2025-04-12
Aditya L Marrier1017France2025-04-28
Izzy R Waycott1018Spain2025-04-18
Sinclair L Kolmetz1019Canada2025-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow I MorascaItalyIoni Bowcher NEGOTIATION
Francesco M WaycottGermanyIoni Bowcher NEGOTIATION
Smith P VocelkaArgentinaIoni Bowcher UNQUALIFIED
Deepesh I RutaUnited KingdomXuxue Feng QUALIFIED
Mujtaba I KolmetzAustraliaAmy Elsner RENEWAL
Clifford T GillianCanadaStephen Shaw PROPOSAL
Darci S PaprockiAustraliaElwin Sharvill NEW
Cody C VocelkaRussiaIvan Magalhaes RENEWAL
Morrow F RulapaughCanadaAnna Fali NEGOTIATION
Sinclair X StensethJapanIoni Bowcher QUALIFIED
Emily J ShinkoJapanAsiya Javayant UNQUALIFIED
Julie J PerinIndiaBernardo Dominic QUALIFIED
Jefferson R ChuiItalyOnyama Limba PROPOSAL
Jefferson K VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Faith T ChuiJapanAmy Elsner RENEWAL
Cody B CaudyItalyAnna Fali NEGOTIATION
Darci Q CaldareraArgentinaElwin Sharvill NEGOTIATION
Jones D BologniaGermanyOnyama Limba UNQUALIFIED
Nicolas C CaudyJapanElwin Sharvill NEW
Stacey Z StockhamItalyBernardo Dominic NEW
Isabel R FerenczSpainIvan Magalhaes PROPOSAL
Juan O OldroydRussiaAnna Fali RENEWAL
Munro C GlickUnited KingdomOnyama Limba PROPOSAL
Silvio R AlbaresRussiaAmy Elsner UNQUALIFIED
Maisha W OldroydAustraliaAsiya Javayant QUALIFIED
Ivar E FigeroaFranceAsiya Javayant PROPOSAL
Rodrigues C VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Leja C MaletFranceIoni Bowcher QUALIFIED
Isabel Q BologniaIndiaIvan Magalhaes NEW
Stacey R GarufiAustraliaIoni Bowcher QUALIFIED
Maria A InouyeIndiaBernardo Dominic PROPOSAL
Jennifer S FigeroaAustraliaAmy Elsner NEGOTIATION
Silvio J RoysterIndiaElwin Sharvill UNQUALIFIED
Rodrigues I PerinItalyAsiya Javayant UNQUALIFIED
Octavia L CaudyRussiaAmy Elsner UNQUALIFIED
Salvatore V SaylorsSpainIoni Bowcher QUALIFIED
Murillo D SaylorsFranceOnyama Limba QUALIFIED
Alejandro Z MorascaAustraliaAmy Elsner NEGOTIATION
Kadeem G StensethRussiaIoni Bowcher PROPOSAL
David D FollerArgentinaBernardo Dominic 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>