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
Chavez V DilliardIndiaStephen Shaw NEW
Mayumi N MacleadArgentinaAmy Elsner UNQUALIFIED
Johnson Y ShinkoAustraliaIvan Magalhaes PROPOSAL
Darci G BowleyUnited KingdomOnyama Limba UNQUALIFIED
Silvio N RulapaughAustraliaOnyama Limba NEGOTIATION
Costa W MarrierJapanAnna Fali RENEWAL
Aditya P RoysterArgentinaXuxue Feng PROPOSAL
Jefferson H OstroskyGermanyAmy Elsner NEW
Mujtaba X SaylorsCanadaAnna Fali RENEWAL
Clifford R DilliardFranceBernardo Dominic UNQUALIFIED
Deepesh L RimRussiaAmy Elsner NEW
Ivar V WaycottArgentinaBernardo Dominic QUALIFIED
Ivar I WieserCanadaAnna Fali PROPOSAL
Sinclair C NickaIndiaXuxue Feng RENEWAL
Cody K KuskoIndiaElwin Sharvill UNQUALIFIED
Johnson R AlbaresItalyIvan Magalhaes NEW
Leja Y GillianRussiaXuxue Feng NEGOTIATION
James B PaprockiCanadaOnyama Limba PROPOSAL
Ashley X FlosiRussiaIvan Magalhaes PROPOSAL
Costa G WaycottUnited KingdomElwin Sharvill PROPOSAL
Faith J GlickFranceStephen Shaw PROPOSAL
Ashley H SchemmerRussiaIvan Magalhaes QUALIFIED
Arvin W FlosiJapanElwin Sharvill RENEWAL
Jeanfrancois B InouyeFranceAnna Fali UNQUALIFIED
Mujtaba T StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Antonio C VocelkaArgentinaOnyama Limba QUALIFIED
Isabel S StockhamUnited KingdomXuxue Feng UNQUALIFIED
Julie T FigeroaItalyIvan Magalhaes UNQUALIFIED
Tony A FollerArgentinaBernardo Dominic RENEWAL
David E MarrierRussiaXuxue Feng NEGOTIATION
Sinclair K InouyeJapanIvan Magalhaes NEW
Juan U NickaGermanyAnna Fali PROPOSAL
Octavia U ShinkoUnited KingdomAsiya Javayant RENEWAL
Silvio U RimAustraliaAnna Fali RENEWAL
Antonio O MacleadItalyStephen Shaw NEGOTIATION
Wickens R OldroydCanadaBernardo Dominic NEGOTIATION
Jefferson U InouyeArgentinaXuxue Feng NEGOTIATION
Salvatore T RulapaughArgentinaIvan Magalhaes NEW
Deepesh Q GlickSpainElwin Sharvill NEGOTIATION
Antonio O StensethJapanElwin Sharvill RENEWAL
Adams G StensethArgentinaStephen Shaw RENEWAL
Jones I DoeItalyXuxue Feng PROPOSAL
Murillo P TollnerCanadaBernardo Dominic NEGOTIATION
Izzy H StockhamGermanyAsiya Javayant RENEWAL
Faith I InouyeAustraliaAnna Fali QUALIFIED
Morrow N FigeroaRussiaAmy Elsner QUALIFIED
Leja Q NestleFranceIvan Magalhaes RENEWAL
Octavia N PoquetteSpainAmy Elsner UNQUALIFIED
Wickens R DoeRussiaStephen Shaw NEGOTIATION
Stacey W ChuiRussiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James I RimAustraliaStephen Shaw NEGOTIATION
Maria K SaylorsRussiaElwin Sharvill NEW
David A KuskoIndiaElwin Sharvill UNQUALIFIED
Maria T RoysterAustraliaStephen Shaw UNQUALIFIED
Kaitlin Q ChuiItalyIvan Magalhaes QUALIFIED
Aruna M KolmetzGermanyOnyama Limba RENEWAL
Stacey F MorascaBrazilAsiya Javayant UNQUALIFIED
James C SchemmerJapanIvan Magalhaes NEGOTIATION
Johnson I SaylorsCanadaIvan Magalhaes NEGOTIATION
Munro V BologniaIndiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois T MarrierJapan2026-06-25Printing Dimensions RENEWAL80Amy Elsner
1001Deepesh L FlosiAustralia2026-06-25Benton, John B Jr QUALIFIED20Anna Fali
1002Wickens X OstroskyFrance2026-06-17Rousseaux, Michael Esq NEW71Ivan Magalhaes
1003Leon X SaylorsCanada2026-06-29Printing Dimensions NEGOTIATION52Ioni Bowcher
1004Jefferson F DilliardBrazil2026-06-25Rangoni Of Florence UNQUALIFIED49Amy Elsner
1005Ashley H RutaCanada2026-06-20Truhlar And Truhlar Attys NEW39Ioni Bowcher
1006Munro O VenereSpain2026-06-11Morlong Associates NEGOTIATION45Ioni Bowcher
1007Jeanfrancois M GauchoSpain2026-06-24Commercial Press RENEWAL94Xuxue Feng
1008Darci C AlbaresFrance2026-06-29Benton, John B Jr PROPOSAL63Elwin Sharvill
1009Greenwood J RulapaughGermany2026-06-26Rousseaux, Michael Esq NEGOTIATION42Elwin Sharvill
1010Tony G BologniaFrance2026-06-10Rousseaux, Michael Esq NEW75Bernardo Dominic
1011Julie I GillianIndia2026-06-14Chanay, Jeffrey A Esq UNQUALIFIED67Ivan Magalhaes
1012Izzy P DoeGermany2026-06-30Chemel, James L Cpa NEW69Bernardo Dominic
1013Leja Z AlbaresAustralia2026-06-25Morlong Associates NEGOTIATION4Asiya Javayant
1014Claire E PerinItaly2026-06-21Truhlar And Truhlar Attys UNQUALIFIED14Elwin Sharvill
1015Julie R MacleadSpain2026-06-15Rangoni Of Florence NEW71Ivan Magalhaes
1016Jefferson G BriddickIndia2026-07-02Rousseaux, Michael Esq QUALIFIED29Ivan Magalhaes
1017Faith K FlosiSpain2026-06-10Buckley Miller Wright NEGOTIATION35Asiya Javayant
1018Arvin J KuskoItaly2026-06-26Dorl, James J Esq UNQUALIFIED58Amy Elsner
1019Wickens D RoysterArgentina2026-06-18King, Christopher A Esq NEGOTIATION32Ivan Magalhaes
1020Adams T MaletUnited Kingdom2026-06-05Printing Dimensions NEW4Asiya Javayant
1021Izzy C GlickBrazil2026-06-04Truhlar And Truhlar Attys NEGOTIATION89Ivan Magalhaes
1022Silvio L BowleyBrazil2026-06-11Buckley Miller Wright PROPOSAL16Ioni Bowcher
1023Cody Z MorascaSpain2026-06-27Benton, John B Jr NEW33Stephen Shaw
1024Mayumi G FigeroaRussia2026-06-23Feltz Printing Service NEGOTIATION71Anna Fali
1025Ashley B NestleGermany2026-06-10Commercial Press QUALIFIED87Elwin Sharvill
1026Isabel Y GillianItaly2026-06-14Feltz Printing Service RENEWAL73Xuxue Feng
1027Misaki J RimIndia2026-06-11Feiner Bros NEW61Anna Fali
1028Jennifer Q MaletFrance2026-06-13King, Christopher A Esq PROPOSAL69Onyama Limba
1029Maisha O AmigonIndia2026-06-25Feiner Bros NEGOTIATION42Bernardo Dominic
1030Misaki N RimUnited Kingdom2026-06-21Chapman, Ross E Esq NEW20Amy Elsner
1031Rodrigues N PaprockiFrance2026-07-02Feiner Bros UNQUALIFIED2Anna Fali
1032Aika H DoeArgentina2026-06-21Rangoni Of Florence NEW44Ivan Magalhaes
1033Mujtaba F RimBrazil2026-06-17Chapman, Ross E Esq PROPOSAL96Amy Elsner
1034James S BowleyArgentina2026-06-26King, Christopher A Esq QUALIFIED94Amy Elsner
1035Claire Y TollnerArgentina2026-06-04Chapman, Ross E Esq NEGOTIATION70Stephen Shaw
1036Aditya K GarufiItaly2026-06-17Benton, John B Jr QUALIFIED37Asiya Javayant
1037Tony G KolmetzJapan2026-06-20Feiner Bros UNQUALIFIED21Bernardo Dominic
1038Stacey Q ChuiFrance2026-07-01Buckley Miller Wright PROPOSAL62Bernardo Dominic
1039Kadeem T RimGermany2026-06-20Morlong Associates UNQUALIFIED93Amy Elsner
1040Aditya H ChuiSpain2026-06-11Chanay, Jeffrey A Esq RENEWAL83Amy Elsner
1041Tony U DilliardAustralia2026-06-27King, Christopher A Esq QUALIFIED99Xuxue Feng
1042Deepesh S AmigonArgentina2026-06-07Feiner Bros NEGOTIATION13Onyama Limba
1043Antonio P TollnerAustralia2026-06-20Benton, John B Jr PROPOSAL89Amy Elsner
1044Rodrigues W ButtJapan2026-06-12Chapman, Ross E Esq PROPOSAL35Onyama Limba
1045Stacey N MaletBrazil2026-06-14Feiner Bros UNQUALIFIED87Xuxue Feng
1046Rodrigues E ShinkoUnited Kingdom2026-06-26Truhlar And Truhlar Attys NEW52Stephen Shaw
1047Costa Y FollerIndia2026-06-08Commercial Press PROPOSAL21Anna Fali
1048Chavez U ButtRussia2026-06-16Morlong Associates NEGOTIATION21Xuxue Feng
1049Isabel U SlusarskiSpain2026-06-13Feiner Bros NEGOTIATION64Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Johnson F AmigonIndiaAsiya Javayant NEGOTIATION
Ivar S RutaCanadaAmy Elsner NEGOTIATION
Darci V FollerBrazilIoni Bowcher QUALIFIED
Aruna Q GillianItalyAmy Elsner UNQUALIFIED
Maria Y DilliardSpainElwin Sharvill RENEWAL
Cody E NestleRussiaAmy Elsner NEGOTIATION
Adams V FollerUnited KingdomIvan Magalhaes NEW
Misaki U SergiArgentinaElwin Sharvill QUALIFIED
Izzy P FollerGermanyBernardo Dominic UNQUALIFIED
Antonio M BologniaAustraliaIvan Magalhaes UNQUALIFIED
Chavez A MorascaRussiaAnna Fali PROPOSAL
Francesco L DilliardGermanyXuxue Feng QUALIFIED
Darci K IturbideIndiaStephen Shaw NEGOTIATION
Munro N BriddickJapanElwin Sharvill UNQUALIFIED
Sinclair U MacleadGermanyOnyama Limba PROPOSAL
Johnson E KolmetzCanadaAmy Elsner RENEWAL
Smith D SchemmerRussiaAmy Elsner PROPOSAL
Izzy Y GauchoCanadaOnyama Limba NEGOTIATION
Aditya M CampainGermanyAsiya Javayant NEGOTIATION
Juan Z StensethGermanyIoni Bowcher NEGOTIATION
Ivar I SergiUnited KingdomAmy Elsner UNQUALIFIED
David Z AmigonItalyIvan Magalhaes NEW
Leja T FigeroaItalyIoni Bowcher NEGOTIATION
Maisha Y DarakjyRussiaIvan Magalhaes RENEWAL
Leja F FollerGermanyIvan Magalhaes NEGOTIATION
Leon G MaletJapanXuxue Feng NEGOTIATION
Aruna E MaletAustraliaXuxue Feng UNQUALIFIED
Julie V GarufiSpainOnyama Limba UNQUALIFIED
Murillo E MaletAustraliaStephen Shaw RENEWAL
Aditya L VocelkaRussiaAsiya Javayant RENEWAL
Aruna R RutaItalyAnna Fali PROPOSAL
Julie K InouyeRussiaXuxue Feng QUALIFIED
Silvio D SaylorsJapanAsiya Javayant NEGOTIATION
Jeanfrancois T OldroydIndiaBernardo Dominic NEW
Aika W MorascaItalyElwin Sharvill UNQUALIFIED
Mujtaba Q KuskoIndiaStephen Shaw PROPOSAL
Rodrigues R SaylorsItalyAnna Fali RENEWAL
Deepesh S OldroydBrazilIoni Bowcher NEGOTIATION
Mayumi X FerenczFranceIvan Magalhaes PROPOSAL
Maria F AlbaresCanadaXuxue Feng UNQUALIFIED
Juan F SergiAustraliaIvan Magalhaes QUALIFIED
Jennifer L ShinkoItalyIvan Magalhaes PROPOSAL
Murillo J DilliardAustraliaAsiya Javayant QUALIFIED
Ivar T DarakjyFranceElwin Sharvill UNQUALIFIED
Darci D AlbaresUnited KingdomElwin Sharvill QUALIFIED
Jones V PerinItalyIvan Magalhaes RENEWAL
Adams M GillianSpainIoni Bowcher RENEWAL
Jeanfrancois Q TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Maria S RimItalyElwin Sharvill PROPOSAL
Wickens R PaprockiRussiaAsiya Javayant NEW
Frozen Columns
Name
Francesco F Maclead
Misaki E Poquette
Wickens Y Iturbide
Izzy B Iturbide
Ashley X Inouye
Tony S Marrier
Costa I Nicka
Leon F Vocelka
Munro L Foller
Smith R Maclead
Isabel E Rulapaugh
Mujtaba R Caudy
Munro O Stenseth
Ivar J Garufi
Salvatore S Nestle
Clifford J Whobrey
Darci K Saylors
Francesco Y Figeroa
Faith D Darakjy
Mujtaba M Perin
David U Briddick
Adams M Rim
Francesco V Nestle
Salvatore G Butt
Jones M Vocelka
Aditya G Stockham
Adams I Figeroa
Arvin J Stenseth
Maria J Vocelka
Greenwood U Amigon
Ashley K Marrier
Rodrigues X Flosi
Munro X Butt
Jeanfrancois G Stockham
Aika H Albares
Salvatore M Butt
Costa Y Morasca
Juan J Poquette
Jeanfrancois C Bowley
Adams I Perin
Jones J Amigon
Faith L Venere
Tony N Darakjy
Emily Y Campain
Murillo Y Amigon
Wickens S Gaucho
Kaitlin N Malet
Cody H Stenseth
Izzy H Poquette
Silvio T Marrier
IdCountryDate
1000Japan2026-06-17
1001Australia2026-06-17
1002Spain2026-06-17
1003Spain2026-06-24
1004Italy2026-06-20
1005France2026-06-28
1006Japan2026-06-19
1007Germany2026-06-10
1008France2026-06-28
1009Germany2026-06-12
1010United Kingdom2026-06-27
1011France2026-06-14
1012France2026-06-22
1013Spain2026-06-27
1014Japan2026-06-13
1015Russia2026-06-22
1016Spain2026-06-27
1017Argentina2026-06-06
1018Japan2026-06-16
1019Argentina2026-06-30
1020Italy2026-06-29
1021France2026-06-08
1022Japan2026-06-15
1023Argentina2026-06-30
1024France2026-06-03
1025Spain2026-06-14
1026India2026-06-08
1027Russia2026-06-19
1028France2026-06-15
1029Italy2026-07-02
1030United Kingdom2026-06-24
1031United Kingdom2026-06-06
1032Brazil2026-06-07
1033France2026-06-05
1034Japan2026-06-29
1035Russia2026-06-25
1036Argentina2026-06-08
1037Russia2026-06-29
1038Russia2026-06-27
1039Russia2026-06-30
1040Canada2026-06-05
1041France2026-06-04
1042India2026-06-10
1043United Kingdom2026-06-09
1044Canada2026-06-10
1045Australia2026-06-26
1046Argentina2026-06-03
1047India2026-06-26
1048Australia2026-06-14
1049Germany2026-06-08

On-Demand Data

NameIdCountryDate
Claire Q Ostrosky1000India2026-06-26
Stacey S Oldroyd1001Canada2026-06-06
Aruna O Wieser1002United Kingdom2026-06-26
Kadeem E Gillian1003Canada2026-07-01
Aika G Stenseth1004Brazil2026-06-11
Misaki V Caudy1005United Kingdom2026-06-21
Chavez M Nicka1006Brazil2026-06-29
James V Poquette1007Germany2026-06-25
Arvin A Gillian1008Argentina2026-06-28
Emily O Poquette1009Brazil2026-06-19
Izzy J Rulapaugh1010Germany2026-06-07
Adams F Gaucho1011Canada2026-06-10
Adams Q Caldarera1012Italy2026-06-29
Mujtaba P Venere1013Brazil2026-06-11
Octavia K Venere1014India2026-06-17
Arvin Y Stenseth1015Italy2026-06-12
Octavia Q Darakjy1016France2026-06-20
Sinclair Z Bolognia1017United Kingdom2026-06-30
Stacey U Briddick1018Spain2026-06-04
Octavia E Perin1019Argentina2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams V FlosiArgentinaOnyama Limba NEGOTIATION
Aika T FollerGermanyStephen Shaw RENEWAL
Isabel P PerinSpainIoni Bowcher NEW
Jeanfrancois R GauchoItalyElwin Sharvill NEW
Rodrigues A VenereGermanyIoni Bowcher RENEWAL
Claire J CaldareraCanadaOnyama Limba NEW
Julie S SaylorsItalyBernardo Dominic NEW
Maria Q MaletIndiaStephen Shaw NEGOTIATION
Kaitlin P FigeroaJapanIvan Magalhaes QUALIFIED
Arvin Y FlosiSpainAnna Fali QUALIFIED
Francesco F DoeIndiaAsiya Javayant PROPOSAL
Deepesh L BologniaUnited KingdomIoni Bowcher QUALIFIED
Faith R PaprockiIndiaAnna Fali RENEWAL
Isabel H VocelkaUnited KingdomXuxue Feng UNQUALIFIED
David A SergiRussiaBernardo Dominic RENEWAL
Rodrigues I FlosiItalyStephen Shaw UNQUALIFIED
Costa F OstroskyAustraliaIvan Magalhaes NEGOTIATION
Tony E NickaGermanyIvan Magalhaes NEGOTIATION
James L BowleyIndiaXuxue Feng QUALIFIED
Antonio Z FigeroaBrazilOnyama Limba PROPOSAL
Cody F KolmetzGermanyAnna Fali NEGOTIATION
Kaitlin F RimSpainElwin Sharvill RENEWAL
Emily O OldroydAustraliaElwin Sharvill NEGOTIATION
Mujtaba F MaletUnited KingdomIvan Magalhaes PROPOSAL
Izzy D SergiAustraliaAnna Fali UNQUALIFIED
Smith Z PerinRussiaAnna Fali PROPOSAL
Chavez M SergiArgentinaIvan Magalhaes PROPOSAL
Kadeem Y NickaJapanStephen Shaw PROPOSAL
Alejandro T RoysterArgentinaXuxue Feng UNQUALIFIED
Kaitlin K FigeroaJapanBernardo Dominic NEW
Francesco P TollnerIndiaOnyama Limba RENEWAL
Jones E VenereRussiaAmy Elsner PROPOSAL
Maisha X BologniaSpainAsiya Javayant NEGOTIATION
Maisha O ButtIndiaIoni Bowcher PROPOSAL
Salvatore T WieserRussiaBernardo Dominic RENEWAL
Darci T PoquetteGermanyOnyama Limba RENEWAL
Murillo U DoeAustraliaOnyama Limba NEW
Mujtaba F ShinkoRussiaAmy Elsner QUALIFIED
Mayumi Z GauchoItalyAsiya Javayant NEGOTIATION
Kadeem O DilliardGermanyAsiya Javayant 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>