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
Morrow G GillianAustraliaIvan Magalhaes QUALIFIED
Smith L FerenczItalyElwin Sharvill PROPOSAL
Julie J IturbideArgentinaAsiya Javayant NEW
Aditya N NickaRussiaOnyama Limba QUALIFIED
Johnson S FigeroaFranceAsiya Javayant RENEWAL
Leon F WieserAustraliaIvan Magalhaes NEW
Johnson G SlusarskiIndiaStephen Shaw NEGOTIATION
Kadeem G WhobreyCanadaElwin Sharvill RENEWAL
Cody U MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Leja V SergiIndiaAnna Fali NEGOTIATION
Leja C IturbideIndiaBernardo Dominic UNQUALIFIED
Isabel S MarrierIndiaIvan Magalhaes NEW
Deepesh O WhobreyJapanBernardo Dominic NEGOTIATION
Nicolas R GillianAustraliaBernardo Dominic QUALIFIED
Claire V FigeroaArgentinaOnyama Limba UNQUALIFIED
Deepesh X MarrierSpainAnna Fali QUALIFIED
Mayumi Q InouyeUnited KingdomElwin Sharvill PROPOSAL
Clifford I AmigonBrazilAmy Elsner UNQUALIFIED
Aruna G AlbaresItalyAnna Fali UNQUALIFIED
Ashley H StensethGermanyIoni Bowcher NEGOTIATION
Nicolas U DarakjyJapanXuxue Feng RENEWAL
Morrow Y RimAustraliaBernardo Dominic UNQUALIFIED
Misaki A MorascaAustraliaAmy Elsner NEW
Emily E StensethItalyOnyama Limba UNQUALIFIED
Julie J RoysterIndiaStephen Shaw NEW
Misaki T MarrierCanadaIvan Magalhaes PROPOSAL
Misaki I ShinkoGermanyXuxue Feng UNQUALIFIED
Tony I IturbideIndiaBernardo Dominic NEW
Deepesh D SchemmerIndiaBernardo Dominic PROPOSAL
Izzy P NestleRussiaAsiya Javayant QUALIFIED
Ivar D PoquetteGermanyOnyama Limba NEW
Ashley A VocelkaGermanyAnna Fali QUALIFIED
Leon K IturbideUnited KingdomAmy Elsner QUALIFIED
Mayumi D RutaBrazilOnyama Limba RENEWAL
Octavia K SchemmerFranceXuxue Feng PROPOSAL
Misaki C VenereItalyAnna Fali PROPOSAL
Ricardo Z GarufiItalyStephen Shaw QUALIFIED
Silvio T CaudyCanadaAsiya Javayant RENEWAL
Aditya R CampainFranceIvan Magalhaes NEGOTIATION
Aruna K ShinkoUnited KingdomOnyama Limba PROPOSAL
Nicolas T AmigonSpainXuxue Feng PROPOSAL
Faith G RimArgentinaBernardo Dominic RENEWAL
Silvio Z BowleyUnited KingdomStephen Shaw NEGOTIATION
Deepesh G MacleadFranceAsiya Javayant RENEWAL
Faith M PerinSpainAsiya Javayant PROPOSAL
Adams S WhobreyJapanBernardo Dominic RENEWAL
Misaki S DarakjyUnited KingdomBernardo Dominic RENEWAL
Smith B OldroydJapanIoni Bowcher PROPOSAL
Maisha W GillianArgentinaIoni Bowcher NEW
Silvio Q IturbideItalyOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
David V VocelkaSpainBernardo Dominic UNQUALIFIED
Misaki O CaudyRussiaXuxue Feng NEGOTIATION
Arvin F KuskoJapanXuxue Feng PROPOSAL
Rodrigues R MaletIndiaStephen Shaw UNQUALIFIED
Murillo A MarrierFranceOnyama Limba PROPOSAL
Smith P SchemmerGermanyAmy Elsner UNQUALIFIED
Ricardo O GarufiAustraliaIoni Bowcher NEW
Costa Q KuskoRussiaAmy Elsner RENEWAL
Juan G CampainBrazilOnyama Limba NEW
David O SaylorsSpainIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja K BowleyItaly2025-05-25Printing Dimensions NEGOTIATION31Onyama Limba
1001Julie X PerinUnited Kingdom2025-06-06Feiner Bros PROPOSAL70Asiya Javayant
1002Jeanfrancois J FlosiItaly2025-05-23Buckley Miller Wright NEW18Amy Elsner
1003Kadeem R KuskoUnited Kingdom2025-06-15Dorl, James J Esq NEW21Bernardo Dominic
1004Kaitlin X FigeroaItaly2025-05-25Chanay, Jeffrey A Esq NEGOTIATION9Ivan Magalhaes
1005Francesco N GauchoSpain2025-05-27Dorl, James J Esq NEGOTIATION82Onyama Limba
1006Aruna Z FigeroaCanada2025-05-18Buckley Miller Wright QUALIFIED46Onyama Limba
1007Johnson D InouyeFrance2025-06-11Feiner Bros QUALIFIED67Ioni Bowcher
1008Jeanfrancois U DilliardCanada2025-06-07Commercial Press NEW81Stephen Shaw
1009Kaitlin X ChuiIndia2025-05-22Rousseaux, Michael Esq NEW26Elwin Sharvill
1010Sinclair Z GauchoRussia2025-05-30Chapman, Ross E Esq UNQUALIFIED17Anna Fali
1011Francesco V FerenczFrance2025-05-20Morlong Associates QUALIFIED53Stephen Shaw
1012Isabel W PoquetteUnited Kingdom2025-05-20Commercial Press NEGOTIATION27Bernardo Dominic
1013Kaitlin Z ButtJapan2025-05-31Chanay, Jeffrey A Esq NEW63Asiya Javayant
1014Rodrigues A RimAustralia2025-06-05Dorl, James J Esq RENEWAL22Stephen Shaw
1015Tony Z MaletArgentina2025-05-20Rousseaux, Michael Esq NEW34Onyama Limba
1016Julie T CampainIndia2025-06-08Chanay, Jeffrey A Esq NEW39Amy Elsner
1017Claire H IturbideIndia2025-06-10Rousseaux, Michael Esq NEW77Xuxue Feng
1018Alejandro J MaletSpain2025-05-29King, Christopher A Esq QUALIFIED32Ivan Magalhaes
1019Munro S WaycottRussia2025-06-14Chemel, James L Cpa NEW76Ioni Bowcher
1020Wickens D FerenczAustralia2025-06-12Feiner Bros NEW61Ioni Bowcher
1021Faith Y SchemmerItaly2025-06-11Commercial Press NEGOTIATION35Amy Elsner
1022Wickens I SergiBrazil2025-05-26Rangoni Of Florence PROPOSAL88Elwin Sharvill
1023Silvio Q MorascaAustralia2025-06-07Chapman, Ross E Esq QUALIFIED43Ivan Magalhaes
1024Greenwood E ShinkoCanada2025-06-04Rangoni Of Florence NEGOTIATION53Anna Fali
1025Chavez P ShinkoRussia2025-05-19Feiner Bros QUALIFIED17Ioni Bowcher
1026Johnson T PoquetteSpain2025-05-26Chanay, Jeffrey A Esq NEGOTIATION96Elwin Sharvill
1027Wickens I RutaSpain2025-06-09Buckley Miller Wright NEGOTIATION39Elwin Sharvill
1028Kadeem E BriddickItaly2025-06-05Truhlar And Truhlar Attys PROPOSAL52Amy Elsner
1029Darci R WieserBrazil2025-06-07Buckley Miller Wright PROPOSAL21Stephen Shaw
1030Octavia T KuskoUnited Kingdom2025-06-14Benton, John B Jr UNQUALIFIED1Stephen Shaw
1031Nicolas N ShinkoFrance2025-05-21Dorl, James J Esq UNQUALIFIED6Asiya Javayant
1032Mayumi I WaycottItaly2025-06-02Truhlar And Truhlar Attys PROPOSAL39Onyama Limba
1033Nicolas Z AlbaresItaly2025-06-09Printing Dimensions NEW11Asiya Javayant
1034Octavia S DarakjyGermany2025-05-19Truhlar And Truhlar Attys NEGOTIATION21Anna Fali
1035Maria E BowleyBrazil2025-06-06Feiner Bros QUALIFIED26Onyama Limba
1036Silvio N KuskoCanada2025-06-09Dorl, James J Esq NEW89Ivan Magalhaes
1037Octavia J GarufiSpain2025-06-10Feltz Printing Service PROPOSAL97Onyama Limba
1038Leon X MacleadItaly2025-06-16Buckley Miller Wright PROPOSAL41Asiya Javayant
1039Aditya U RulapaughSpain2025-05-31Morlong Associates PROPOSAL74Stephen Shaw
1040Costa T CaudyCanada2025-06-12Chapman, Ross E Esq QUALIFIED6Xuxue Feng
1041Antonio X IturbideItaly2025-06-14Chapman, Ross E Esq PROPOSAL48Bernardo Dominic
1042Ashley R CampainIndia2025-05-20Rousseaux, Michael Esq NEW28Stephen Shaw
1043Francesco K MaletIndia2025-05-23Feiner Bros RENEWAL26Ivan Magalhaes
1044Greenwood Q StensethUnited Kingdom2025-06-15Morlong Associates QUALIFIED16Xuxue Feng
1045Stacey S AmigonCanada2025-06-06Chapman, Ross E Esq NEGOTIATION63Ivan Magalhaes
1046Julie E CaudyArgentina2025-05-23Feltz Printing Service PROPOSAL54Elwin Sharvill
1047Darci N MorascaRussia2025-06-02Morlong Associates PROPOSAL92Asiya Javayant
1048Mujtaba D WaycottIndia2025-06-02Rangoni Of Florence PROPOSAL48Amy Elsner
1049Julie Z InouyeRussia2025-05-20Benton, John B Jr QUALIFIED70Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Smith V WhobreyBrazilStephen Shaw NEW
Smith V StensethIndiaAnna Fali NEW
Maisha I AmigonGermanyBernardo Dominic RENEWAL
Jefferson O FerenczFranceIvan Magalhaes QUALIFIED
Faith G FollerCanadaAsiya Javayant RENEWAL
Munro U PerinItalyIoni Bowcher UNQUALIFIED
Maisha J GlickUnited KingdomAsiya Javayant NEW
Alejandro M FollerAustraliaIvan Magalhaes PROPOSAL
Jones W FollerUnited KingdomXuxue Feng NEW
Maria F BologniaUnited KingdomAnna Fali PROPOSAL
Aika H AmigonBrazilBernardo Dominic NEGOTIATION
Aika Q MorascaUnited KingdomBernardo Dominic NEW
Ivar R BologniaBrazilAsiya Javayant NEGOTIATION
Francesco I WhobreySpainAsiya Javayant QUALIFIED
Rodrigues P WaycottArgentinaBernardo Dominic NEGOTIATION
Aditya U RulapaughItalyAsiya Javayant PROPOSAL
Antonio I PaprockiSpainStephen Shaw NEW
Ivar P RoysterAustraliaOnyama Limba NEGOTIATION
Maisha I AmigonFranceAnna Fali RENEWAL
David N GillianRussiaAmy Elsner NEW
Misaki B SergiAustraliaAnna Fali PROPOSAL
Emily D AmigonBrazilAmy Elsner NEGOTIATION
Julie X FlosiGermanyOnyama Limba QUALIFIED
Julie I OstroskyJapanXuxue Feng NEGOTIATION
Kadeem N MacleadUnited KingdomXuxue Feng NEW
Jennifer F RimGermanyAmy Elsner PROPOSAL
Adams E CampainFranceBernardo Dominic PROPOSAL
Julie Q AlbaresArgentinaElwin Sharvill NEW
Jeanfrancois J VocelkaItalyAmy Elsner NEW
Tony Q DarakjyJapanAsiya Javayant RENEWAL
Johnson T MarrierUnited KingdomIoni Bowcher QUALIFIED
Smith M MorascaGermanyOnyama Limba NEGOTIATION
Aruna E CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Ashley V StensethRussiaAsiya Javayant RENEWAL
Adams D TollnerBrazilAsiya Javayant QUALIFIED
Smith W CampainArgentinaAmy Elsner RENEWAL
Aditya P DilliardJapanElwin Sharvill UNQUALIFIED
Jefferson U MarrierGermanyXuxue Feng QUALIFIED
Salvatore O VenereSpainIvan Magalhaes NEW
Emily N NestleArgentinaXuxue Feng QUALIFIED
Clifford K BologniaAustraliaBernardo Dominic NEGOTIATION
Ivar J AmigonUnited KingdomBernardo Dominic NEGOTIATION
Silvio S OldroydAustraliaAsiya Javayant PROPOSAL
Rodrigues E ShinkoJapanAmy Elsner PROPOSAL
Maisha H ChuiBrazilAsiya Javayant QUALIFIED
Costa D RulapaughItalyIvan Magalhaes PROPOSAL
Mujtaba F SaylorsAustraliaIoni Bowcher PROPOSAL
Tony G MacleadBrazilAsiya Javayant UNQUALIFIED
Kadeem B FerenczBrazilAnna Fali UNQUALIFIED
Leon J OldroydCanadaOnyama Limba RENEWAL
Frozen Columns
Name
Adams S Oldroyd
Adams F Garufi
Aditya U Flosi
Misaki O Ruta
Clifford L Glick
Leja K Whobrey
Misaki N Ostrosky
Jeanfrancois N Caudy
Murillo W Waycott
Maisha D Venere
Wickens K Kolmetz
Stacey I Albares
Wickens Z Kolmetz
Isabel H Dilliard
Emily D Slusarski
Nicolas W Caldarera
Ricardo P Foller
Jennifer S Garufi
Tony A Caldarera
Jeanfrancois Q Stenseth
Murillo H Poquette
Jones E Sergi
Octavia Y Whobrey
Emily L Gaucho
Sinclair M Oldroyd
Ashley X Glick
Wickens J Stenseth
Izzy U Whobrey
Jones F Malet
Leon J Malet
Johnson M Kusko
Clifford N Saylors
Jennifer K Royster
Aruna H Rim
James W Poquette
Antonio X Dilliard
Mayumi J Stenseth
Claire K Sergi
Mayumi J Darakjy
Ashley H Shinko
Arvin L Darakjy
Darci K Wieser
Antonio A Caudy
Munro F Glick
Clifford W Briddick
Leon D Venere
Cody X Sergi
Johnson E Oldroyd
Adams E Caldarera
Aruna N Briddick
IdCountryDate
1000Argentina2025-06-07
1001United Kingdom2025-06-07
1002Spain2025-06-15
1003Spain2025-05-23
1004Spain2025-06-03
1005Australia2025-05-24
1006France2025-05-21
1007Spain2025-06-15
1008Brazil2025-05-19
1009Japan2025-06-15
1010Russia2025-05-23
1011Spain2025-05-30
1012Germany2025-06-13
1013Japan2025-05-30
1014Brazil2025-06-16
1015Russia2025-06-01
1016Russia2025-05-29
1017Spain2025-05-21
1018Russia2025-06-02
1019Argentina2025-06-11
1020Canada2025-06-12
1021Spain2025-05-28
1022India2025-05-23
1023Canada2025-05-28
1024Australia2025-05-19
1025France2025-06-11
1026Spain2025-06-06
1027France2025-06-10
1028Japan2025-06-10
1029Germany2025-06-14
1030Argentina2025-05-19
1031Russia2025-05-28
1032Italy2025-06-12
1033Japan2025-05-26
1034India2025-05-26
1035Australia2025-05-29
1036Russia2025-05-29
1037Italy2025-05-28
1038Argentina2025-06-03
1039Germany2025-06-03
1040Brazil2025-06-01
1041Argentina2025-05-19
1042United Kingdom2025-05-26
1043Brazil2025-05-23
1044United Kingdom2025-06-05
1045France2025-06-08
1046India2025-06-16
1047United Kingdom2025-05-31
1048Russia2025-06-07
1049Germany2025-06-13

On-Demand Data

NameIdCountryDate
Ivar N Bowley1000Argentina2025-05-24
Deepesh N Caldarera1001Russia2025-06-14
Arvin W Vocelka1002Canada2025-05-23
Aika X Figeroa1003Japan2025-05-28
David B Paprocki1004Canada2025-06-03
Jennifer Y Marrier1005Spain2025-05-31
Kaitlin K Kolmetz1006France2025-06-16
Kadeem E Rim1007Canada2025-06-03
Sinclair L Saylors1008France2025-05-28
Claire W Ruta1009Italy2025-05-19
Jeanfrancois P Waycott1010Canada2025-06-08
Adams D Garufi1011Russia2025-06-01
Ashley O Caldarera1012Canada2025-05-23
Kaitlin N Saylors1013Argentina2025-05-27
Wickens J Paprocki1014Australia2025-06-15
Chavez M Whobrey1015France2025-06-09
Nicolas J Gaucho1016India2025-05-20
Deepesh S Foller1017India2025-06-03
Kaitlin C Amigon1018Canada2025-06-02
Julie B Flosi1019Italy2025-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily X AmigonItalyXuxue Feng RENEWAL
Antonio Z CaudyRussiaIvan Magalhaes RENEWAL
Murillo J ChuiArgentinaAnna Fali UNQUALIFIED
Francesco R RimRussiaXuxue Feng UNQUALIFIED
Stacey E MarrierBrazilIoni Bowcher PROPOSAL
Silvio V DarakjyAustraliaAnna Fali QUALIFIED
Francesco V FollerFranceElwin Sharvill NEW
Johnson R BriddickJapanAnna Fali PROPOSAL
Munro I FlosiAustraliaIoni Bowcher RENEWAL
Ricardo O MorascaCanadaIoni Bowcher RENEWAL
Costa Z CampainItalyAmy Elsner QUALIFIED
Ashley W ShinkoRussiaAmy Elsner QUALIFIED
Juan H GlickCanadaElwin Sharvill NEW
Faith O AlbaresItalyBernardo Dominic NEGOTIATION
Isabel S GillianCanadaAnna Fali NEW
Antonio N ChuiBrazilElwin Sharvill NEW
Stacey A SchemmerArgentinaAmy Elsner UNQUALIFIED
Sinclair N BowleyArgentinaElwin Sharvill QUALIFIED
Johnson H MarrierJapanAnna Fali NEW
Kaitlin E BriddickGermanyAmy Elsner QUALIFIED
Wickens Z GauchoUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba P KuskoAustraliaOnyama Limba RENEWAL
Deepesh L StockhamRussiaAmy Elsner PROPOSAL
Johnson A PoquetteFranceIvan Magalhaes QUALIFIED
Izzy L WhobreyIndiaElwin Sharvill UNQUALIFIED
Misaki M StensethArgentinaIoni Bowcher NEW
Stacey S NestleItalyBernardo Dominic QUALIFIED
Silvio J GlickAustraliaXuxue Feng NEW
Chavez Z SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
David B TollnerFranceIoni Bowcher UNQUALIFIED
Murillo W OstroskyIndiaIvan Magalhaes QUALIFIED
Morrow T PoquetteCanadaIoni Bowcher QUALIFIED
Aika X StockhamRussiaElwin Sharvill PROPOSAL
Tony S RoysterAustraliaIoni Bowcher UNQUALIFIED
Jones B ShinkoGermanyAmy Elsner UNQUALIFIED
Izzy W StockhamAustraliaAmy Elsner UNQUALIFIED
Maria A SergiArgentinaBernardo Dominic NEGOTIATION
Claire M SchemmerBrazilIoni Bowcher NEW
David W RoysterSpainXuxue Feng RENEWAL
Aruna X BowleyIndiaAnna Fali NEW

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