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
Cody Z IturbideItalyAnna Fali UNQUALIFIED
Darci I OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues A CaudyCanadaAmy Elsner NEGOTIATION
Arvin T MorascaFranceBernardo Dominic QUALIFIED
Deepesh Y KuskoIndiaOnyama Limba QUALIFIED
Sinclair G StensethGermanyAsiya Javayant PROPOSAL
Antonio K MarrierBrazilBernardo Dominic UNQUALIFIED
Faith O BologniaIndiaIoni Bowcher UNQUALIFIED
Jones H FerenczGermanyXuxue Feng NEGOTIATION
David D KolmetzSpainAsiya Javayant NEGOTIATION
Claire Q WaycottBrazilAmy Elsner RENEWAL
Ricardo E AmigonUnited KingdomIvan Magalhaes RENEWAL
Greenwood W CampainItalyAnna Fali NEGOTIATION
Sinclair R GlickGermanyBernardo Dominic UNQUALIFIED
Maria J RimIndiaAnna Fali QUALIFIED
Tony P RulapaughRussiaIvan Magalhaes NEW
Sinclair E AlbaresCanadaAnna Fali PROPOSAL
Ivar F PaprockiIndiaIvan Magalhaes NEW
Stacey Y ButtBrazilAsiya Javayant UNQUALIFIED
Deepesh X StensethCanadaAmy Elsner QUALIFIED
James J CampainFranceIoni Bowcher PROPOSAL
David C ChuiBrazilElwin Sharvill NEGOTIATION
Deepesh C StensethItalyIoni Bowcher QUALIFIED
Ivar U SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Aika X BologniaBrazilAmy Elsner PROPOSAL
Smith N GillianArgentinaStephen Shaw UNQUALIFIED
Ricardo L OldroydIndiaElwin Sharvill QUALIFIED
Rodrigues X NickaIndiaXuxue Feng RENEWAL
Jeanfrancois U MaletIndiaAsiya Javayant RENEWAL
Deepesh K AmigonFranceElwin Sharvill UNQUALIFIED
Silvio Q BowleyJapanIvan Magalhaes NEW
Salvatore H VocelkaUnited KingdomStephen Shaw QUALIFIED
James N SchemmerRussiaOnyama Limba UNQUALIFIED
Izzy X WieserItalyOnyama Limba RENEWAL
Greenwood Q BriddickCanadaIoni Bowcher RENEWAL
Rodrigues M RimGermanyAnna Fali UNQUALIFIED
Wickens H BriddickBrazilIoni Bowcher RENEWAL
Ivar I AmigonGermanyAsiya Javayant NEW
Salvatore B BriddickRussiaOnyama Limba NEW
Jones O FollerIndiaAsiya Javayant RENEWAL
Munro M PaprockiItalyElwin Sharvill QUALIFIED
Ricardo Y NickaFranceElwin Sharvill UNQUALIFIED
Kaitlin O PaprockiJapanIoni Bowcher QUALIFIED
Cody K FigeroaRussiaBernardo Dominic NEW
Jefferson T GauchoAustraliaOnyama Limba NEGOTIATION
Julie D FigeroaJapanStephen Shaw NEW
Darci I PerinIndiaAmy Elsner UNQUALIFIED
Rodrigues O MacleadSpainAnna Fali QUALIFIED
Jennifer K ButtRussiaStephen Shaw QUALIFIED
Claire X DilliardAustraliaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues A WieserIndiaElwin Sharvill NEW
Tony C PerinIndiaXuxue Feng UNQUALIFIED
Faith U TollnerRussiaIvan Magalhaes UNQUALIFIED
Ivar P DarakjySpainElwin Sharvill RENEWAL
Morrow Z BologniaJapanXuxue Feng NEW
Wickens I StockhamUnited KingdomIvan Magalhaes NEW
Antonio F PaprockiFranceOnyama Limba NEGOTIATION
Aruna U MacleadIndiaOnyama Limba PROPOSAL
Octavia G SlusarskiItalyAmy Elsner RENEWAL
Izzy R ShinkoArgentinaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson Z DilliardIndia2024-06-13Feiner Bros UNQUALIFIED74Asiya Javayant
1001Misaki K CaudyRussia2024-06-17Feiner Bros PROPOSAL82Xuxue Feng
1002Murillo D RimJapan2024-06-11Chemel, James L Cpa QUALIFIED51Anna Fali
1003James M RoysterIndia2024-06-13Rangoni Of Florence PROPOSAL71Anna Fali
1004Aruna B OldroydFrance2024-05-27Dorl, James J Esq PROPOSAL16Amy Elsner
1005David G WaycottAustralia2024-06-11Chemel, James L Cpa QUALIFIED75Asiya Javayant
1006Smith J FigeroaCanada2024-05-30Commercial Press QUALIFIED28Onyama Limba
1007Jones N FollerSpain2024-06-14Commercial Press QUALIFIED83Stephen Shaw
1008Adams Z SlusarskiGermany2024-05-26Chanay, Jeffrey A Esq RENEWAL97Stephen Shaw
1009Munro Q RutaUnited Kingdom2024-06-03Feiner Bros RENEWAL33Ivan Magalhaes
1010Leon N PaprockiUnited Kingdom2024-06-16Rangoni Of Florence NEW70Anna Fali
1011Alejandro R CampainFrance2024-06-01Dorl, James J Esq UNQUALIFIED66Elwin Sharvill
1012Maisha W RoysterGermany2024-06-13Dorl, James J Esq UNQUALIFIED93Ioni Bowcher
1013Munro G PerinFrance2024-06-18Dorl, James J Esq UNQUALIFIED56Asiya Javayant
1014Claire K ShinkoCanada2024-06-13Rangoni Of Florence RENEWAL89Asiya Javayant
1015Stacey A DoeBrazil2024-05-31Chemel, James L Cpa UNQUALIFIED19Asiya Javayant
1016Greenwood Y KuskoUnited Kingdom2024-06-05Commercial Press RENEWAL66Onyama Limba
1017Misaki O CaudyAustralia2024-06-15Chapman, Ross E Esq RENEWAL75Stephen Shaw
1018Darci I BowleyGermany2024-06-15Feiner Bros UNQUALIFIED56Ioni Bowcher
1019Johnson D PerinArgentina2024-06-10Dorl, James J Esq QUALIFIED51Bernardo Dominic
1020Munro P VenereItaly2024-06-21Chanay, Jeffrey A Esq NEGOTIATION21Asiya Javayant
1021Maisha G CaudyRussia2024-06-19Chemel, James L Cpa QUALIFIED79Xuxue Feng
1022Morrow V NestleIndia2024-06-18Dorl, James J Esq NEGOTIATION63Asiya Javayant
1023Cody Q ButtAustralia2024-05-31Dorl, James J Esq PROPOSAL52Onyama Limba
1024Aditya Q ShinkoIndia2024-05-29Dorl, James J Esq NEW61Bernardo Dominic
1025Octavia B MorascaGermany2024-06-12Chanay, Jeffrey A Esq UNQUALIFIED39Asiya Javayant
1026Octavia B GlickJapan2024-05-29Buckley Miller Wright NEW68Ioni Bowcher
1027Jones L KuskoJapan2024-06-03Rangoni Of Florence QUALIFIED55Ivan Magalhaes
1028Mayumi E WieserArgentina2024-06-05Chanay, Jeffrey A Esq UNQUALIFIED10Stephen Shaw
1029Kaitlin R BologniaItaly2024-05-31Commercial Press NEGOTIATION5Anna Fali
1030Isabel T TollnerCanada2024-06-20Benton, John B Jr PROPOSAL42Ivan Magalhaes
1031Jefferson N BologniaCanada2024-05-28Chanay, Jeffrey A Esq NEW99Bernardo Dominic
1032Stacey D BriddickItaly2024-06-15Rangoni Of Florence UNQUALIFIED81Stephen Shaw
1033Isabel C SchemmerAustralia2024-06-18Chanay, Jeffrey A Esq PROPOSAL77Stephen Shaw
1034Jefferson C NickaIndia2024-06-02Morlong Associates NEGOTIATION0Elwin Sharvill
1035Ricardo W ChuiUnited Kingdom2024-06-17Printing Dimensions NEGOTIATION94Ioni Bowcher
1036Emily M OldroydBrazil2024-06-15Dorl, James J Esq NEW62Asiya Javayant
1037Maisha Z VocelkaFrance2024-06-21Feltz Printing Service NEGOTIATION63Xuxue Feng
1038Izzy H GarufiFrance2024-06-09Chanay, Jeffrey A Esq UNQUALIFIED86Anna Fali
1039Leon B InouyeIndia2024-06-16King, Christopher A Esq NEW0Elwin Sharvill
1040Kaitlin Z MorascaGermany2024-06-09Chapman, Ross E Esq PROPOSAL11Bernardo Dominic
1041Silvio P BriddickBrazil2024-06-14Feltz Printing Service NEW34Asiya Javayant
1042Tony B GauchoRussia2024-05-27Benton, John B Jr RENEWAL26Asiya Javayant
1043Maria R DilliardJapan2024-06-06Dorl, James J Esq NEW11Ivan Magalhaes
1044Antonio Z FlosiFrance2024-06-22Truhlar And Truhlar Attys NEGOTIATION27Xuxue Feng
1045Nicolas X MacleadGermany2024-06-07Printing Dimensions RENEWAL54Stephen Shaw
1046Jennifer J CaldareraItaly2024-05-26Rangoni Of Florence QUALIFIED66Bernardo Dominic
1047Jones N ButtUnited Kingdom2024-06-22Chapman, Ross E Esq PROPOSAL16Ivan Magalhaes
1048Claire Q GlickBrazil2024-06-15Chanay, Jeffrey A Esq UNQUALIFIED89Asiya Javayant
1049Emily S PaprockiFrance2024-06-01Chanay, Jeffrey A Esq RENEWAL0Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Stacey S ChuiBrazilElwin Sharvill QUALIFIED
Jefferson K VenereFranceIvan Magalhaes UNQUALIFIED
Kaitlin J TollnerArgentinaBernardo Dominic QUALIFIED
Francesco H StockhamIndiaXuxue Feng QUALIFIED
Greenwood I BowleyIndiaIvan Magalhaes UNQUALIFIED
Greenwood D VocelkaFranceIoni Bowcher NEGOTIATION
Aika J AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Murillo T WieserItalyElwin Sharvill NEGOTIATION
Julie W BowleyJapanBernardo Dominic RENEWAL
Octavia J KolmetzUnited KingdomIoni Bowcher QUALIFIED
Claire P FerenczRussiaIoni Bowcher UNQUALIFIED
Kadeem U MaletGermanyIvan Magalhaes QUALIFIED
Johnson A ChuiGermanyIvan Magalhaes PROPOSAL
Ivar T KolmetzFranceStephen Shaw RENEWAL
Leon H GlickIndiaAsiya Javayant NEW
Rodrigues G PoquetteAustraliaOnyama Limba QUALIFIED
Darci Q FollerRussiaStephen Shaw QUALIFIED
Salvatore S CaldareraJapanIvan Magalhaes NEGOTIATION
Silvio X NickaAustraliaStephen Shaw NEW
Misaki Q SchemmerSpainAmy Elsner UNQUALIFIED
Octavia X ChuiBrazilIvan Magalhaes UNQUALIFIED
Jennifer X ShinkoFranceIoni Bowcher UNQUALIFIED
Darci K CampainRussiaElwin Sharvill PROPOSAL
Arvin I GarufiRussiaAnna Fali PROPOSAL
Faith W GauchoIndiaAnna Fali QUALIFIED
Maria W SchemmerRussiaStephen Shaw RENEWAL
Darci T OldroydFranceAsiya Javayant UNQUALIFIED
Silvio D IturbideItalyAnna Fali QUALIFIED
Leon S InouyeJapanAsiya Javayant NEW
Kadeem V BowleyFranceOnyama Limba QUALIFIED
Aditya P OldroydUnited KingdomIoni Bowcher NEGOTIATION
Octavia P SergiAustraliaBernardo Dominic RENEWAL
Aditya P MaletCanadaOnyama Limba QUALIFIED
Smith I SergiArgentinaIvan Magalhaes NEGOTIATION
Alejandro X AmigonSpainElwin Sharvill NEW
Clifford Z PoquetteAustraliaElwin Sharvill QUALIFIED
Julie W CampainJapanStephen Shaw NEW
Morrow M RulapaughCanadaXuxue Feng QUALIFIED
Misaki K BowleyUnited KingdomIvan Magalhaes NEW
Smith C PerinFranceIoni Bowcher RENEWAL
Jones T SaylorsUnited KingdomAsiya Javayant QUALIFIED
Leon Q SlusarskiSpainStephen Shaw NEW
David B MaletGermanyXuxue Feng PROPOSAL
Stacey K GarufiJapanStephen Shaw NEGOTIATION
Cody O AmigonArgentinaAmy Elsner RENEWAL
Emily S VenereGermanyAnna Fali NEGOTIATION
Jeanfrancois E CaudyIndiaBernardo Dominic NEGOTIATION
David U RimGermanyOnyama Limba UNQUALIFIED
Leon Z KuskoArgentinaIvan Magalhaes NEGOTIATION
Deepesh R TollnerFranceXuxue Feng UNQUALIFIED
Frozen Columns
Name
Ivar X Shinko
Julie A Campain
Leon O Butt
Jones E Maclead
Tony C Caldarera
Cody J Slusarski
Francesco H Stenseth
Costa M Flosi
Octavia A Chui
Ivar O Perin
Izzy W Campain
Maisha W Albares
Munro O Foller
Francesco H Flosi
Arvin M Morasca
Clifford E Oldroyd
Kadeem J Darakjy
Maisha P Royster
Deepesh B Darakjy
Ivar C Inouye
Faith Z Albares
Cody I Stenseth
Aika J Iturbide
Claire R Ostrosky
Maria I Saylors
Alejandro D Ruta
Arvin E Iturbide
Ricardo V Dilliard
Francesco K Waycott
Rodrigues E Rim
Octavia V Oldroyd
Aika F Stockham
Francesco C Darakjy
Emily R Inouye
Kaitlin M Malet
Ashley F Ostrosky
Juan W Ostrosky
Greenwood X Perin
Francesco H Flosi
Jefferson Z Gaucho
Aditya L Poquette
Kaitlin Q Paprocki
Sinclair I Doe
Kadeem G Amigon
Morrow G Campain
Jefferson K Royster
Munro P Venere
Mayumi O Ostrosky
Smith U Foller
Nicolas N Butt
IdCountryDate
1000India2024-06-21
1001India2024-06-02
1002Argentina2024-06-17
1003India2024-06-11
1004Germany2024-06-06
1005Germany2024-06-02
1006Spain2024-06-11
1007Russia2024-06-23
1008Russia2024-06-09
1009Brazil2024-05-31
1010Brazil2024-06-05
1011Germany2024-06-10
1012Spain2024-06-11
1013Italy2024-05-26
1014Canada2024-06-03
1015Spain2024-06-14
1016United Kingdom2024-06-08
1017Russia2024-06-02
1018Germany2024-06-22
1019Canada2024-05-31
1020Russia2024-06-03
1021United Kingdom2024-06-20
1022Germany2024-06-06
1023Australia2024-06-07
1024Argentina2024-06-19
1025Australia2024-06-19
1026Italy2024-06-06
1027Japan2024-06-03
1028Argentina2024-06-05
1029Italy2024-06-06
1030France2024-05-29
1031Spain2024-06-07
1032India2024-06-18
1033United Kingdom2024-06-05
1034Germany2024-06-05
1035Spain2024-06-06
1036Canada2024-05-29
1037Australia2024-06-07
1038Italy2024-05-31
1039Spain2024-06-10
1040Italy2024-06-17
1041Spain2024-06-19
1042Canada2024-05-31
1043Spain2024-05-28
1044Canada2024-06-22
1045Japan2024-06-09
1046Japan2024-05-27
1047India2024-06-05
1048India2024-06-20
1049Italy2024-06-02

On-Demand Data

NameIdCountryDate
Isabel X Stenseth1000Argentina2024-06-15
Clifford G Nestle1001Spain2024-06-12
Leja L Maclead1002Australia2024-05-29
Nicolas C Gillian1003Italy2024-06-11
Johnson I Poquette1004Russia2024-05-29
Leja Z Ferencz1005Brazil2024-06-08
Izzy P Stockham1006Russia2024-06-12
Aruna A Darakjy1007Australia2024-06-02
Morrow X Glick1008India2024-06-19
Deepesh W Stockham1009India2024-05-27
Mayumi U Bolognia1010Germany2024-05-26
Aditya R Schemmer1011Argentina2024-06-13
Maisha U Doe1012France2024-06-21
Silvio A Tollner1013Japan2024-06-11
Leja A Vocelka1014Italy2024-05-28
Rodrigues E Shinko1015Brazil2024-06-09
Murillo T Chui1016Russia2024-06-09
Stacey E Garufi1017India2024-06-18
Ricardo B Nicka1018India2024-05-28
Juan G Inouye1019Italy2024-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo N IturbideIndiaOnyama Limba UNQUALIFIED
Johnson Q TollnerRussiaIoni Bowcher QUALIFIED
Jeanfrancois K GarufiBrazilOnyama Limba PROPOSAL
Jennifer X AmigonCanadaAnna Fali QUALIFIED
Murillo E ShinkoJapanStephen Shaw NEGOTIATION
Cody J VocelkaRussiaAnna Fali QUALIFIED
Ricardo C VocelkaJapanIoni Bowcher RENEWAL
Maisha E MarrierUnited KingdomBernardo Dominic QUALIFIED
Isabel N CaldareraUnited KingdomAsiya Javayant RENEWAL
Ricardo R GarufiIndiaElwin Sharvill NEGOTIATION
Wickens U GillianItalyAsiya Javayant PROPOSAL
Jones M WaycottBrazilStephen Shaw NEW
Morrow N AmigonItalyAnna Fali NEGOTIATION
Stacey K NickaCanadaAsiya Javayant QUALIFIED
Mayumi F DilliardCanadaIoni Bowcher RENEWAL
James Q AlbaresUnited KingdomAmy Elsner NEGOTIATION
Kadeem V MaletJapanOnyama Limba RENEWAL
Juan U RimSpainIvan Magalhaes PROPOSAL
Maisha Y GarufiFranceIvan Magalhaes NEGOTIATION
Isabel C TollnerCanadaAnna Fali RENEWAL
Nicolas J ButtFranceAmy Elsner QUALIFIED
David U IturbideRussiaBernardo Dominic NEGOTIATION
Murillo L ShinkoAustraliaBernardo Dominic UNQUALIFIED
Ivar P StensethRussiaElwin Sharvill PROPOSAL
Jefferson W SchemmerSpainBernardo Dominic NEGOTIATION
Morrow I WieserUnited KingdomOnyama Limba NEGOTIATION
Mayumi B CaldareraItalyStephen Shaw PROPOSAL
Faith S RulapaughIndiaIoni Bowcher UNQUALIFIED
Cody B SaylorsAustraliaElwin Sharvill UNQUALIFIED
Johnson T RulapaughRussiaXuxue Feng NEGOTIATION
Munro M FigeroaJapanXuxue Feng NEGOTIATION
Arvin A RimBrazilAmy Elsner PROPOSAL
Stacey O KuskoAustraliaBernardo Dominic RENEWAL
Cody W BriddickAustraliaOnyama Limba PROPOSAL
James K CampainSpainOnyama Limba PROPOSAL
Cody R VocelkaIndiaIvan Magalhaes PROPOSAL
David U MaletUnited KingdomAsiya Javayant QUALIFIED
Aruna V RutaArgentinaBernardo Dominic UNQUALIFIED
Ricardo Y AmigonUnited KingdomStephen Shaw UNQUALIFIED
Chavez R MaletRussiaIoni Bowcher 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>