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
Mayumi S GlickItalyIoni Bowcher NEW
Maisha U RimAustraliaXuxue Feng NEW
James D WaycottIndiaAsiya Javayant QUALIFIED
Tony C RoysterFranceIoni Bowcher PROPOSAL
Antonio W CaudyJapanIoni Bowcher UNQUALIFIED
Munro Q WieserAustraliaAsiya Javayant UNQUALIFIED
Stacey Z StockhamUnited KingdomBernardo Dominic NEGOTIATION
Kadeem N StensethJapanIvan Magalhaes RENEWAL
Chavez V FollerSpainAmy Elsner NEGOTIATION
Antonio X DarakjyCanadaElwin Sharvill PROPOSAL
Jefferson I MorascaUnited KingdomAnna Fali PROPOSAL
Jennifer Y NickaFranceAnna Fali NEW
Sinclair G BowleyFranceIvan Magalhaes QUALIFIED
Maisha D ButtUnited KingdomAmy Elsner PROPOSAL
Silvio P CampainGermanyAsiya Javayant QUALIFIED
Arvin N MaletArgentinaAmy Elsner PROPOSAL
Kaitlin L MaletUnited KingdomXuxue Feng NEGOTIATION
Maisha B ChuiUnited KingdomIvan Magalhaes NEW
Aika U TollnerJapanElwin Sharvill QUALIFIED
Aditya G GillianUnited KingdomOnyama Limba PROPOSAL
Antonio H CampainIndiaAnna Fali NEW
Aditya E ButtAustraliaAmy Elsner UNQUALIFIED
Silvio T MaletJapanStephen Shaw PROPOSAL
Antonio Y BowleySpainIvan Magalhaes PROPOSAL
Julie P BologniaFranceXuxue Feng UNQUALIFIED
Leon Z IturbideAustraliaElwin Sharvill NEW
James V FollerAustraliaAnna Fali UNQUALIFIED
Wickens C FollerFranceAnna Fali QUALIFIED
Mayumi X FigeroaArgentinaOnyama Limba UNQUALIFIED
Leon K CampainFranceXuxue Feng PROPOSAL
Johnson L CaldareraRussiaBernardo Dominic UNQUALIFIED
Rodrigues H TollnerGermanyBernardo Dominic NEGOTIATION
Leja E MorascaSpainElwin Sharvill RENEWAL
Maria Q SchemmerFranceXuxue Feng NEW
Antonio K MarrierSpainStephen Shaw NEW
Sinclair Z OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Aruna T DarakjySpainOnyama Limba RENEWAL
Ricardo J DilliardCanadaAmy Elsner PROPOSAL
Ricardo X FerenczFranceStephen Shaw NEW
Murillo E AlbaresCanadaElwin Sharvill RENEWAL
Izzy F OldroydUnited KingdomAmy Elsner UNQUALIFIED
Maisha L WaycottBrazilIoni Bowcher UNQUALIFIED
Jennifer Y MaletRussiaIoni Bowcher QUALIFIED
Kaitlin E ButtItalyStephen Shaw PROPOSAL
Kadeem U MarrierArgentinaAnna Fali PROPOSAL
Francesco J FollerGermanyElwin Sharvill NEGOTIATION
Francesco R FigeroaFranceXuxue Feng UNQUALIFIED
Silvio C OldroydRussiaOnyama Limba QUALIFIED
Aditya Z WieserAustraliaOnyama Limba QUALIFIED
Maisha S BologniaRussiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem C SlusarskiIndiaIoni Bowcher QUALIFIED
Adams U GillianBrazilIoni Bowcher NEGOTIATION
David L GillianRussiaAnna Fali NEW
Adams G CaudySpainIvan Magalhaes QUALIFIED
Izzy I FlosiBrazilStephen Shaw NEGOTIATION
Alejandro Y AlbaresArgentinaStephen Shaw PROPOSAL
Ashley X AlbaresFranceAsiya Javayant NEGOTIATION
Kaitlin E PerinFranceAmy Elsner QUALIFIED
Silvio R AmigonRussiaAmy Elsner NEGOTIATION
Murillo S DoeGermanyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin M SaylorsRussia2025-05-23Truhlar And Truhlar Attys NEW33Bernardo Dominic
1001Silvio D FollerItaly2025-05-19Feltz Printing Service QUALIFIED28Stephen Shaw
1002Greenwood Z PerinUnited Kingdom2025-05-11King, Christopher A Esq QUALIFIED90Amy Elsner
1003Morrow K StensethArgentina2025-05-12Chapman, Ross E Esq NEW0Elwin Sharvill
1004Mujtaba T CaudyAustralia2025-06-05King, Christopher A Esq RENEWAL33Xuxue Feng
1005Greenwood R GarufiCanada2025-05-31Printing Dimensions NEGOTIATION50Amy Elsner
1006Tony A AmigonItaly2025-05-18Chemel, James L Cpa NEW7Ivan Magalhaes
1007Octavia X VocelkaFrance2025-05-18Dorl, James J Esq NEW72Onyama Limba
1008David C KuskoIndia2025-05-16Benton, John B Jr QUALIFIED64Ioni Bowcher
1009Francesco T WaycottRussia2025-06-03Benton, John B Jr NEGOTIATION91Amy Elsner
1010Wickens G ButtBrazil2025-05-22King, Christopher A Esq QUALIFIED11Onyama Limba
1011Deepesh L VocelkaAustralia2025-05-25Commercial Press QUALIFIED5Stephen Shaw
1012Silvio F SergiRussia2025-05-31King, Christopher A Esq UNQUALIFIED69Amy Elsner
1013Munro V BowleyArgentina2025-05-29Commercial Press NEGOTIATION39Elwin Sharvill
1014Ivar O BowleyBrazil2025-06-03King, Christopher A Esq NEW25Anna Fali
1015Salvatore D SaylorsJapan2025-05-25Rousseaux, Michael Esq UNQUALIFIED22Amy Elsner
1016Misaki N FigeroaSpain2025-05-31Buckley Miller Wright UNQUALIFIED59Anna Fali
1017Julie Q GauchoCanada2025-05-15Chanay, Jeffrey A Esq RENEWAL30Xuxue Feng
1018Smith W ShinkoSpain2025-06-05Buckley Miller Wright QUALIFIED60Elwin Sharvill
1019Aruna G SergiItaly2025-06-06Feltz Printing Service QUALIFIED74Asiya Javayant
1020Julie U KolmetzItaly2025-05-20Feltz Printing Service NEW82Amy Elsner
1021Kadeem Q GauchoIndia2025-05-19Chemel, James L Cpa UNQUALIFIED30Bernardo Dominic
1022Smith M WhobreyUnited Kingdom2025-05-10Morlong Associates NEGOTIATION0Ivan Magalhaes
1023Darci K OldroydJapan2025-06-04Feiner Bros UNQUALIFIED69Anna Fali
1024Francesco G PoquetteIndia2025-05-20Rousseaux, Michael Esq PROPOSAL85Asiya Javayant
1025Isabel V VocelkaIndia2025-05-27Printing Dimensions NEGOTIATION30Amy Elsner
1026Murillo Y StockhamSpain2025-05-18Truhlar And Truhlar Attys NEGOTIATION28Asiya Javayant
1027Greenwood U SlusarskiFrance2025-05-21Benton, John B Jr QUALIFIED56Ioni Bowcher
1028Jeanfrancois N MaletGermany2025-06-04Chanay, Jeffrey A Esq QUALIFIED19Asiya Javayant
1029Aika B SaylorsArgentina2025-05-27Benton, John B Jr RENEWAL0Onyama Limba
1030Emily U PoquetteRussia2025-06-03Chapman, Ross E Esq NEGOTIATION34Asiya Javayant
1031Salvatore W CampainBrazil2025-06-01Benton, John B Jr RENEWAL90Ivan Magalhaes
1032Emily U FerenczItaly2025-05-20Printing Dimensions QUALIFIED54Amy Elsner
1033Chavez H InouyeFrance2025-05-20King, Christopher A Esq UNQUALIFIED73Onyama Limba
1034Jennifer F WhobreyAustralia2025-05-27Buckley Miller Wright NEW7Stephen Shaw
1035Deepesh A AmigonItaly2025-06-01Dorl, James J Esq UNQUALIFIED9Ioni Bowcher
1036Juan V FigeroaUnited Kingdom2025-05-27Chanay, Jeffrey A Esq NEGOTIATION64Elwin Sharvill
1037Darci J OldroydSpain2025-05-18Rousseaux, Michael Esq RENEWAL15Ioni Bowcher
1038Greenwood F RulapaughUnited Kingdom2025-06-03Morlong Associates QUALIFIED10Amy Elsner
1039Rodrigues C InouyeJapan2025-05-15Dorl, James J Esq UNQUALIFIED5Bernardo Dominic
1040Aditya Y ShinkoUnited Kingdom2025-05-14Benton, John B Jr RENEWAL41Anna Fali
1041Murillo O StockhamGermany2025-05-12Rousseaux, Michael Esq NEGOTIATION11Asiya Javayant
1042Maisha S TollnerAustralia2025-05-16Chapman, Ross E Esq RENEWAL90Anna Fali
1043James S ButtRussia2025-05-20Feltz Printing Service UNQUALIFIED68Amy Elsner
1044Claire Q ChuiSpain2025-05-22Commercial Press UNQUALIFIED76Anna Fali
1045Adams I RoysterUnited Kingdom2025-05-12Printing Dimensions NEW57Onyama Limba
1046Jeanfrancois P RoysterAustralia2025-06-05Chemel, James L Cpa PROPOSAL55Ioni Bowcher
1047Chavez V CaldareraJapan2025-06-05Chapman, Ross E Esq UNQUALIFIED36Stephen Shaw
1048Isabel C PaprockiGermany2025-05-31Morlong Associates UNQUALIFIED41Ioni Bowcher
1049Munro U DilliardJapan2025-05-21Benton, John B Jr QUALIFIED35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Deepesh U MarrierJapanIvan Magalhaes QUALIFIED
Leon R VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues B WieserUnited KingdomAsiya Javayant NEGOTIATION
Morrow O DoeBrazilIoni Bowcher PROPOSAL
Julie A IturbideArgentinaAsiya Javayant NEW
Adams L TollnerArgentinaIoni Bowcher PROPOSAL
Ashley S ButtSpainAsiya Javayant NEW
Aika G AlbaresIndiaAsiya Javayant UNQUALIFIED
Sinclair W MaletJapanElwin Sharvill RENEWAL
Smith T RulapaughIndiaOnyama Limba RENEWAL
Jennifer O MarrierUnited KingdomAmy Elsner NEW
Darci Q ShinkoRussiaAmy Elsner RENEWAL
Costa I InouyeAustraliaAsiya Javayant QUALIFIED
Julie B WaycottGermanyElwin Sharvill NEW
Mujtaba Q SergiItalyStephen Shaw RENEWAL
Antonio T IturbideBrazilStephen Shaw UNQUALIFIED
Ivar U ButtSpainIoni Bowcher RENEWAL
Greenwood Z FigeroaArgentinaAnna Fali QUALIFIED
Leon O DoeAustraliaStephen Shaw NEW
Ricardo J VenereCanadaAnna Fali QUALIFIED
Smith D PoquetteSpainAnna Fali PROPOSAL
Julie B StensethIndiaElwin Sharvill NEW
Arvin H NestleBrazilBernardo Dominic UNQUALIFIED
Greenwood Q AlbaresBrazilAsiya Javayant NEGOTIATION
Wickens R ShinkoArgentinaStephen Shaw NEW
Murillo K SchemmerArgentinaAsiya Javayant QUALIFIED
Misaki V SergiIndiaIvan Magalhaes QUALIFIED
Greenwood N MarrierArgentinaOnyama Limba QUALIFIED
Leon B IturbideUnited KingdomIvan Magalhaes NEW
Misaki U VocelkaArgentinaOnyama Limba PROPOSAL
Rodrigues V GillianUnited KingdomXuxue Feng UNQUALIFIED
Adams S InouyeIndiaIoni Bowcher PROPOSAL
Adams R VenereAustraliaIvan Magalhaes NEW
Adams U SlusarskiSpainStephen Shaw NEW
Aruna A MarrierIndiaIvan Magalhaes NEGOTIATION
Murillo M SaylorsGermanyElwin Sharvill UNQUALIFIED
Claire Z DoeItalyAnna Fali PROPOSAL
Rodrigues U SlusarskiGermanyElwin Sharvill UNQUALIFIED
James S WhobreyGermanyIoni Bowcher RENEWAL
Cody X ButtBrazilAsiya Javayant NEGOTIATION
Rodrigues U AmigonFranceElwin Sharvill QUALIFIED
Faith I CaudyJapanStephen Shaw PROPOSAL
Jeanfrancois K StockhamAustraliaStephen Shaw UNQUALIFIED
Mujtaba F BriddickArgentinaXuxue Feng QUALIFIED
Misaki F MorascaFranceAmy Elsner PROPOSAL
Faith V DilliardBrazilIoni Bowcher QUALIFIED
Cody E VenereGermanyElwin Sharvill RENEWAL
Juan K AlbaresGermanyOnyama Limba NEW
Morrow S SaylorsUnited KingdomXuxue Feng RENEWAL
Ashley M ShinkoRussiaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Mayumi T Wieser
Aditya B Venere
Tony I Waycott
Jefferson R Amigon
Mayumi V Albares
Alejandro M Chui
Murillo L Caudy
Smith I Garufi
Smith K Vocelka
Aditya D Garufi
Deepesh N Iturbide
Isabel M Iturbide
Alejandro C Caldarera
Chavez O Dilliard
Costa Y Rulapaugh
Cody H Waycott
Mayumi I Poquette
Juan V Perin
Rodrigues G Stenseth
Greenwood C Dilliard
Silvio Z Marrier
Leja O Caldarera
Alejandro E Chui
Kaitlin K Inouye
Ivar I Shinko
Jefferson R Wieser
Maria D Nicka
Smith L Doe
Tony K Vocelka
Stacey M Gillian
Tony Q Tollner
Murillo B Morasca
Jennifer Q Gillian
Izzy V Sergi
Ivar N Dilliard
Munro I Vocelka
Octavia U Oldroyd
Emily M Whobrey
Leon F Sergi
Sinclair V Bowley
Cody M Iturbide
Faith U Glick
Stacey F Ruta
Jeanfrancois M Saylors
Jennifer Z Nestle
Deepesh B Iturbide
Faith J Maclead
Darci L Slusarski
Murillo C Campain
Juan J Tollner
IdCountryDate
1000Australia2025-05-25
1001Brazil2025-06-06
1002India2025-05-31
1003Spain2025-05-20
1004India2025-05-09
1005Canada2025-05-17
1006Canada2025-05-29
1007France2025-05-10
1008Canada2025-05-26
1009India2025-05-25
1010Canada2025-05-10
1011Canada2025-06-01
1012Japan2025-06-01
1013Australia2025-06-02
1014Brazil2025-05-27
1015Germany2025-05-10
1016Canada2025-05-23
1017Brazil2025-05-20
1018Germany2025-05-30
1019Brazil2025-05-24
1020Australia2025-05-18
1021Germany2025-05-17
1022Spain2025-05-22
1023Russia2025-05-10
1024Australia2025-05-08
1025Japan2025-05-31
1026Canada2025-05-31
1027Germany2025-05-19
1028Italy2025-06-03
1029Spain2025-05-28
1030Brazil2025-05-17
1031Japan2025-05-19
1032Italy2025-05-15
1033France2025-06-06
1034Spain2025-05-23
1035Australia2025-05-24
1036Canada2025-06-02
1037Spain2025-06-01
1038Japan2025-06-04
1039Germany2025-05-15
1040Canada2025-05-27
1041Germany2025-05-09
1042Brazil2025-05-14
1043India2025-05-31
1044Brazil2025-05-30
1045Australia2025-06-06
1046Russia2025-05-09
1047Russia2025-06-01
1048Italy2025-05-16
1049Australia2025-05-24

On-Demand Data

NameIdCountryDate
Isabel F Dilliard1000Brazil2025-05-11
Cody I Inouye1001Spain2025-05-28
Jeanfrancois Y Malet1002Germany2025-05-25
Rodrigues K Iturbide1003United Kingdom2025-05-24
Johnson B Schemmer1004Japan2025-05-18
Leon I Kusko1005Australia2025-05-20
Greenwood O Slusarski1006United Kingdom2025-05-21
Morrow E Albares1007Argentina2025-06-04
Adams T Rulapaugh1008Australia2025-05-11
Munro E Whobrey1009Canada2025-05-23
Jones M Stockham1010Argentina2025-05-22
Kadeem V Garufi1011Brazil2025-06-06
David T Glick1012India2025-05-08
Alejandro M Royster1013Italy2025-05-22
Aditya S Vocelka1014Russia2025-06-05
Silvio F Stockham1015United Kingdom2025-05-28
Clifford G Rulapaugh1016Italy2025-05-18
Chavez K Ferencz1017United Kingdom2025-05-29
Cody K Ferencz1018Italy2025-05-14
Jeanfrancois M Morasca1019Germany2025-05-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci E InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Octavia E StensethUnited KingdomStephen Shaw PROPOSAL
Francesco O AmigonCanadaXuxue Feng NEGOTIATION
Johnson U FlosiSpainBernardo Dominic NEW
Isabel J RutaUnited KingdomElwin Sharvill NEGOTIATION
Darci J KolmetzArgentinaIvan Magalhaes NEW
Julie A IturbideItalyIoni Bowcher UNQUALIFIED
Francesco H WaycottIndiaStephen Shaw QUALIFIED
Misaki Z BriddickCanadaOnyama Limba UNQUALIFIED
Mayumi K FigeroaIndiaAnna Fali RENEWAL
Aditya U RutaGermanyBernardo Dominic PROPOSAL
Deepesh H IturbideUnited KingdomAnna Fali QUALIFIED
Julie J AmigonRussiaXuxue Feng RENEWAL
Isabel E WaycottCanadaBernardo Dominic NEW
Clifford H RoysterBrazilIoni Bowcher PROPOSAL
Kadeem V PaprockiItalyAmy Elsner NEW
Sinclair H MacleadGermanyOnyama Limba QUALIFIED
Izzy A AlbaresRussiaAmy Elsner RENEWAL
Arvin T IturbideBrazilIvan Magalhaes PROPOSAL
Emily V VenereUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois P ButtIndiaIoni Bowcher NEGOTIATION
Munro P InouyeArgentinaAmy Elsner PROPOSAL
Jefferson S NickaCanadaAsiya Javayant UNQUALIFIED
Aika Z FollerItalyAnna Fali QUALIFIED
Kaitlin T GillianUnited KingdomIvan Magalhaes QUALIFIED
Sinclair L BowleyAustraliaOnyama Limba NEGOTIATION
Kaitlin S SlusarskiIndiaAmy Elsner UNQUALIFIED
Rodrigues N MarrierCanadaElwin Sharvill PROPOSAL
Julie E GlickBrazilAsiya Javayant NEW
Munro Y PoquetteArgentinaIoni Bowcher QUALIFIED
Octavia S SchemmerArgentinaAmy Elsner NEGOTIATION
Aditya G WhobreyGermanyBernardo Dominic QUALIFIED
Jones W OldroydBrazilOnyama Limba QUALIFIED
Cody S DarakjyRussiaStephen Shaw PROPOSAL
Aika I SlusarskiUnited KingdomAmy Elsner QUALIFIED
Isabel A InouyeAustraliaOnyama Limba UNQUALIFIED
Murillo N SchemmerRussiaAsiya Javayant NEGOTIATION
Octavia R SlusarskiUnited KingdomXuxue Feng RENEWAL
Faith I DoeSpainAsiya Javayant NEGOTIATION
Greenwood F MaletBrazilIoni Bowcher 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>