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
Julie E MarrierUnited KingdomAnna Fali RENEWAL
Morrow Z ShinkoRussiaElwin Sharvill NEGOTIATION
Deepesh C DilliardJapanStephen Shaw NEW
Isabel Y BologniaUnited KingdomAnna Fali RENEWAL
Sinclair E FigeroaGermanyElwin Sharvill QUALIFIED
Maria O GlickItalyOnyama Limba RENEWAL
Jones N RulapaughUnited KingdomXuxue Feng NEGOTIATION
Clifford T OstroskyItalyBernardo Dominic QUALIFIED
Nicolas G PaprockiRussiaAmy Elsner UNQUALIFIED
Misaki F FlosiGermanyElwin Sharvill NEW
Jefferson X NestleJapanAmy Elsner PROPOSAL
Wickens K BriddickIndiaXuxue Feng NEGOTIATION
Maria E ChuiBrazilStephen Shaw NEGOTIATION
Julie A MaletBrazilStephen Shaw NEGOTIATION
Wickens T BriddickJapanAsiya Javayant NEW
Ashley M SaylorsBrazilAnna Fali NEGOTIATION
Clifford B CaudyGermanyAnna Fali PROPOSAL
Antonio R WhobreyGermanyAsiya Javayant QUALIFIED
Maria C MacleadRussiaAmy Elsner RENEWAL
Adams M NickaUnited KingdomOnyama Limba RENEWAL
Aika D RulapaughCanadaStephen Shaw NEGOTIATION
Wickens B RimGermanyOnyama Limba PROPOSAL
Salvatore W MaletBrazilStephen Shaw NEW
Claire X GauchoGermanyXuxue Feng QUALIFIED
Francesco H VocelkaFranceOnyama Limba QUALIFIED
Maisha R NestleJapanXuxue Feng NEW
Chavez R OldroydCanadaAsiya Javayant NEW
Ivar A ChuiRussiaElwin Sharvill NEGOTIATION
Misaki G BologniaUnited KingdomXuxue Feng QUALIFIED
Cody O RimSpainOnyama Limba PROPOSAL
Stacey L PerinRussiaIvan Magalhaes UNQUALIFIED
Maisha Y NickaJapanBernardo Dominic NEW
Greenwood S SchemmerSpainIoni Bowcher PROPOSAL
James K CaudyIndiaBernardo Dominic PROPOSAL
Jones S FollerArgentinaElwin Sharvill RENEWAL
Tony J StockhamBrazilIoni Bowcher RENEWAL
Nicolas D ButtFranceAmy Elsner NEW
Greenwood W VenereJapanXuxue Feng NEW
Morrow O RulapaughArgentinaAmy Elsner PROPOSAL
Mayumi E FerenczSpainStephen Shaw UNQUALIFIED
Kaitlin O CampainGermanyBernardo Dominic NEW
Salvatore Y MorascaFranceIoni Bowcher NEGOTIATION
Stacey Z IturbideJapanAnna Fali PROPOSAL
Jennifer N StensethItalyBernardo Dominic UNQUALIFIED
Misaki J MaletItalyElwin Sharvill PROPOSAL
Morrow D WhobreyJapanStephen Shaw QUALIFIED
Octavia G MarrierCanadaAmy Elsner RENEWAL
Munro W MaletItalyBernardo Dominic NEW
Morrow T MorascaCanadaAmy Elsner RENEWAL
Johnson O KolmetzItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Adams X OldroydSpainXuxue Feng QUALIFIED
Chavez Q VenereUnited KingdomOnyama Limba UNQUALIFIED
Deepesh B KuskoJapanAsiya Javayant NEW
Ashley D VenereBrazilBernardo Dominic NEGOTIATION
Munro G KolmetzSpainAmy Elsner RENEWAL
Leja D GauchoBrazilAsiya Javayant NEW
Faith A RulapaughAustraliaAmy Elsner NEW
Ivar T ButtArgentinaAmy Elsner QUALIFIED
Maisha Q RutaCanadaAsiya Javayant NEGOTIATION
Tony O SchemmerCanadaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna J KuskoJapan2025-06-16King, Christopher A Esq UNQUALIFIED47Amy Elsner
1001Kadeem R PoquetteRussia2025-05-29Printing Dimensions NEGOTIATION53Ivan Magalhaes
1002Jefferson U FlosiRussia2025-05-29Benton, John B Jr RENEWAL43Bernardo Dominic
1003Jennifer T MorascaBrazil2025-06-13Buckley Miller Wright RENEWAL29Amy Elsner
1004Maria D NickaBrazil2025-06-09Benton, John B Jr QUALIFIED79Amy Elsner
1005Leon A GlickArgentina2025-06-05Dorl, James J Esq QUALIFIED14Ioni Bowcher
1006Mayumi H SergiBrazil2025-05-22Rousseaux, Michael Esq PROPOSAL68Asiya Javayant
1007Tony B FerenczIndia2025-06-06Dorl, James J Esq UNQUALIFIED45Asiya Javayant
1008Mayumi K FlosiSpain2025-06-05Truhlar And Truhlar Attys RENEWAL88Elwin Sharvill
1009Alejandro R OstroskySpain2025-05-19Benton, John B Jr RENEWAL18Elwin Sharvill
1010Johnson H BowleyUnited Kingdom2025-05-23Buckley Miller Wright QUALIFIED78Asiya Javayant
1011Chavez J KolmetzAustralia2025-05-18Printing Dimensions QUALIFIED90Asiya Javayant
1012Smith Q OldroydItaly2025-06-01Feiner Bros UNQUALIFIED51Ivan Magalhaes
1013Leja S AmigonBrazil2025-06-09Chapman, Ross E Esq UNQUALIFIED15Xuxue Feng
1014Claire R CaudyJapan2025-06-10Feltz Printing Service RENEWAL58Amy Elsner
1015Salvatore J NickaRussia2025-06-08Commercial Press NEGOTIATION1Ioni Bowcher
1016Octavia C CaldareraUnited Kingdom2025-06-01Chapman, Ross E Esq PROPOSAL75Anna Fali
1017Claire J RimUnited Kingdom2025-06-05Printing Dimensions RENEWAL59Anna Fali
1018Isabel N FollerSpain2025-05-28Feiner Bros QUALIFIED69Asiya Javayant
1019Sinclair T OstroskyCanada2025-05-31Feiner Bros PROPOSAL8Ivan Magalhaes
1020Smith P KuskoFrance2025-05-22Dorl, James J Esq QUALIFIED99Asiya Javayant
1021Jeanfrancois Z PoquetteSpain2025-06-13Buckley Miller Wright PROPOSAL39Ioni Bowcher
1022Kadeem G FlosiUnited Kingdom2025-06-16Feltz Printing Service RENEWAL3Amy Elsner
1023Ivar E AlbaresSpain2025-06-12King, Christopher A Esq QUALIFIED62Onyama Limba
1024Salvatore Q PaprockiAustralia2025-06-07Truhlar And Truhlar Attys NEW99Onyama Limba
1025Tony D RoysterBrazil2025-05-25Dorl, James J Esq RENEWAL21Asiya Javayant
1026Cody S WaycottGermany2025-06-03Buckley Miller Wright PROPOSAL70Asiya Javayant
1027Stacey A KuskoFrance2025-05-26Benton, John B Jr RENEWAL46Elwin Sharvill
1028Juan X RutaArgentina2025-05-30Morlong Associates RENEWAL82Anna Fali
1029Silvio W GarufiBrazil2025-06-02Morlong Associates QUALIFIED98Ioni Bowcher
1030Antonio P CampainGermany2025-06-04Rousseaux, Michael Esq PROPOSAL73Onyama Limba
1031Francesco D ShinkoJapan2025-05-18Buckley Miller Wright NEGOTIATION50Onyama Limba
1032Adams S KuskoJapan2025-06-05Commercial Press NEGOTIATION27Ivan Magalhaes
1033James O FerenczCanada2025-05-25Feiner Bros PROPOSAL47Asiya Javayant
1034Izzy F KuskoFrance2025-05-20Feiner Bros RENEWAL48Elwin Sharvill
1035Kadeem E RutaAustralia2025-06-05Chemel, James L Cpa UNQUALIFIED72Onyama Limba
1036Kaitlin X GarufiRussia2025-06-09Rousseaux, Michael Esq QUALIFIED1Amy Elsner
1037Silvio B VenereItaly2025-06-06Chapman, Ross E Esq NEW68Asiya Javayant
1038Jefferson U SchemmerRussia2025-05-21Feltz Printing Service PROPOSAL53Bernardo Dominic
1039Isabel Z SlusarskiBrazil2025-06-15Dorl, James J Esq RENEWAL91Bernardo Dominic
1040Mujtaba D MaletBrazil2025-05-31King, Christopher A Esq QUALIFIED44Asiya Javayant
1041Johnson Q GarufiBrazil2025-06-02Chanay, Jeffrey A Esq PROPOSAL96Ioni Bowcher
1042Sinclair W FollerItaly2025-06-16Morlong Associates QUALIFIED5Xuxue Feng
1043Kadeem L KolmetzBrazil2025-06-01Commercial Press NEGOTIATION93Xuxue Feng
1044Izzy W MarrierJapan2025-06-08Chapman, Ross E Esq UNQUALIFIED79Ivan Magalhaes
1045Darci A BowleyJapan2025-06-14Commercial Press NEW80Bernardo Dominic
1046Wickens Y BowleyItaly2025-06-09Printing Dimensions QUALIFIED88Stephen Shaw
1047Johnson L StockhamSpain2025-06-08Commercial Press QUALIFIED84Elwin Sharvill
1048Rodrigues C CaudyRussia2025-06-12Truhlar And Truhlar Attys NEGOTIATION26Xuxue Feng
1049Salvatore S OldroydFrance2025-05-22Buckley Miller Wright UNQUALIFIED22Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie Z RulapaughRussiaIvan Magalhaes NEGOTIATION
Ricardo X GauchoBrazilStephen Shaw RENEWAL
Mayumi E GauchoCanadaStephen Shaw QUALIFIED
David L OstroskyBrazilIvan Magalhaes UNQUALIFIED
Arvin U SaylorsSpainIoni Bowcher NEGOTIATION
Tony B StensethItalyBernardo Dominic QUALIFIED
Deepesh N VocelkaItalyIvan Magalhaes QUALIFIED
Tony C CampainFranceStephen Shaw RENEWAL
Murillo T FerenczUnited KingdomIoni Bowcher NEW
Tony O StockhamCanadaElwin Sharvill NEGOTIATION
Jefferson L MacleadCanadaAnna Fali PROPOSAL
Antonio V FerenczItalyAmy Elsner RENEWAL
Alejandro U BologniaJapanXuxue Feng NEGOTIATION
Deepesh X BologniaSpainAsiya Javayant NEGOTIATION
Clifford Z RoysterGermanyAnna Fali RENEWAL
Jefferson J PerinSpainStephen Shaw UNQUALIFIED
Ricardo N StensethAustraliaStephen Shaw QUALIFIED
Clifford E AlbaresArgentinaBernardo Dominic PROPOSAL
Julie Q GauchoAustraliaIoni Bowcher NEW
Ricardo C KolmetzJapanOnyama Limba QUALIFIED
James G CampainUnited KingdomXuxue Feng RENEWAL
Isabel R KuskoFranceAsiya Javayant NEW
Isabel W VocelkaIndiaStephen Shaw PROPOSAL
Smith D SaylorsRussiaStephen Shaw NEW
Jennifer B PaprockiCanadaAsiya Javayant NEW
David X GauchoItalyStephen Shaw NEGOTIATION
Morrow P OstroskyFranceIoni Bowcher UNQUALIFIED
Ivar E OldroydItalyAmy Elsner NEW
David Z KuskoBrazilBernardo Dominic RENEWAL
Johnson A OstroskyItalyAsiya Javayant PROPOSAL
Mujtaba B BologniaBrazilAsiya Javayant NEGOTIATION
Morrow O AmigonCanadaAmy Elsner RENEWAL
Antonio A MacleadArgentinaAsiya Javayant QUALIFIED
Leon A AmigonRussiaIoni Bowcher NEW
Arvin P RulapaughSpainAnna Fali RENEWAL
Adams I WhobreySpainAsiya Javayant RENEWAL
Greenwood J MaletBrazilOnyama Limba NEW
Johnson W FerenczUnited KingdomAnna Fali RENEWAL
Murillo A SaylorsSpainStephen Shaw PROPOSAL
Johnson G ChuiCanadaElwin Sharvill RENEWAL
Octavia K StockhamGermanyBernardo Dominic PROPOSAL
Maria E MaletGermanyIvan Magalhaes RENEWAL
Faith W PaprockiRussiaAsiya Javayant PROPOSAL
Smith B OldroydJapanAmy Elsner UNQUALIFIED
Octavia D TollnerItalyAnna Fali NEGOTIATION
Deepesh T MacleadBrazilAnna Fali NEW
Izzy J WaycottItalyElwin Sharvill NEW
Kadeem S FerenczFranceXuxue Feng QUALIFIED
Costa W WieserRussiaIvan Magalhaes UNQUALIFIED
Jones D InouyeArgentinaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Jennifer L Venere
Antonio U Whobrey
Nicolas C Stockham
Maria N Butt
Izzy U Perin
Octavia Z Figeroa
Chavez J Saylors
Jones L Malet
Kadeem D Saylors
Claire H Malet
Kadeem X Malet
Chavez F Venere
Mayumi R Briddick
Aika P Gaucho
Chavez C Iturbide
Darci B Perin
Nicolas L Darakjy
Murillo V Nestle
Munro Z Schemmer
Sinclair P Glick
Ivar C Glick
Adams R Amigon
Faith G Maclead
Stacey P Venere
Antonio B Wieser
Aditya P Vocelka
Nicolas O Wieser
Darci Y Stockham
Alejandro I Ruta
Morrow W Stockham
Smith X Nestle
Deepesh J Slusarski
Tony M Rim
Ivar L Venere
Jeanfrancois I Gillian
Francesco R Slusarski
Rodrigues Z Flosi
Leja F Figeroa
Silvio Z Nestle
Murillo N Morasca
Ashley Y Briddick
Wickens J Butt
Julie H Malet
Antonio F Doe
Jones H Marrier
Aditya N Rim
Greenwood P Amigon
Kadeem L Bowley
Antonio O Morasca
Salvatore Y Shinko
IdCountryDate
1000Canada2025-05-27
1001India2025-05-21
1002France2025-05-26
1003Japan2025-06-12
1004Brazil2025-06-01
1005France2025-05-31
1006France2025-06-02
1007Australia2025-06-05
1008India2025-06-05
1009Italy2025-06-16
1010Germany2025-05-24
1011India2025-05-25
1012Brazil2025-06-14
1013Germany2025-06-12
1014Russia2025-06-08
1015Italy2025-06-06
1016Japan2025-06-13
1017Japan2025-06-11
1018Italy2025-06-10
1019Russia2025-05-19
1020Russia2025-06-03
1021Spain2025-05-20
1022Japan2025-06-08
1023Japan2025-05-31
1024Italy2025-06-12
1025Argentina2025-05-24
1026Argentina2025-05-31
1027Japan2025-06-10
1028France2025-06-01
1029Spain2025-05-24
1030United Kingdom2025-05-22
1031Russia2025-06-11
1032United Kingdom2025-05-22
1033France2025-05-18
1034Japan2025-06-04
1035Russia2025-06-11
1036Germany2025-05-29
1037Australia2025-06-02
1038Brazil2025-05-25
1039India2025-05-25
1040Canada2025-06-06
1041Argentina2025-05-18
1042Japan2025-06-04
1043France2025-06-02
1044Argentina2025-05-28
1045France2025-06-05
1046Brazil2025-05-23
1047Australia2025-06-08
1048Argentina2025-05-21
1049India2025-06-05

On-Demand Data

NameIdCountryDate
Francesco V Venere1000Russia2025-06-11
Kadeem D Stockham1001Brazil2025-06-04
Chavez G Waycott1002Japan2025-05-28
Aruna C Bolognia1003Australia2025-06-12
Mayumi F Schemmer1004India2025-06-08
Johnson G Amigon1005Russia2025-05-19
Faith X Waycott1006Brazil2025-05-30
Sinclair V Figeroa1007France2025-05-21
Salvatore S Doe1008Argentina2025-05-25
Kaitlin O Flosi1009United Kingdom2025-05-22
Aika A Glick1010India2025-06-01
Rodrigues P Sergi1011Brazil2025-06-04
Jefferson J Campain1012Japan2025-06-13
Clifford E Shinko1013Italy2025-06-14
Costa D Morasca1014Japan2025-05-22
Aika J Garufi1015United Kingdom2025-05-22
Aruna C Campain1016India2025-05-24
Ashley V Maclead1017Japan2025-06-05
Francesco E Gillian1018Italy2025-06-07
Juan D Tollner1019Italy2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio D GauchoGermanyBernardo Dominic NEW
Murillo S SaylorsGermanyIoni Bowcher NEW
Wickens D ButtBrazilAmy Elsner RENEWAL
Deepesh C DoeRussiaAmy Elsner NEGOTIATION
Ashley X TollnerArgentinaIvan Magalhaes RENEWAL
Adams J RutaUnited KingdomIvan Magalhaes PROPOSAL
Morrow U OstroskyCanadaStephen Shaw PROPOSAL
Aika W MaletJapanStephen Shaw PROPOSAL
Darci A SergiIndiaIoni Bowcher RENEWAL
Cody Y WaycottSpainOnyama Limba QUALIFIED
Jones Y MacleadIndiaIoni Bowcher RENEWAL
Ricardo J SlusarskiIndiaAnna Fali NEW
Leon E MaletBrazilAmy Elsner NEW
Mujtaba O InouyeUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba J CampainAustraliaXuxue Feng RENEWAL
Claire W CaldareraSpainOnyama Limba PROPOSAL
Kaitlin P SlusarskiIndiaIvan Magalhaes NEGOTIATION
Rodrigues B IturbideArgentinaIoni Bowcher RENEWAL
Antonio X SchemmerSpainIoni Bowcher UNQUALIFIED
Francesco F IturbideFranceXuxue Feng UNQUALIFIED
Alejandro L RutaIndiaXuxue Feng UNQUALIFIED
Nicolas U NickaBrazilIoni Bowcher QUALIFIED
Mayumi E MacleadAustraliaAsiya Javayant RENEWAL
Claire C ShinkoCanadaXuxue Feng NEGOTIATION
Salvatore W OldroydFranceAnna Fali NEW
Tony U SchemmerItalyBernardo Dominic PROPOSAL
David P GauchoRussiaIoni Bowcher UNQUALIFIED
Mayumi Y GauchoAustraliaStephen Shaw NEGOTIATION
Aika B IturbideRussiaStephen Shaw PROPOSAL
Leja H ButtCanadaAsiya Javayant PROPOSAL
Morrow Q AmigonUnited KingdomStephen Shaw QUALIFIED
Mujtaba Y BriddickRussiaIoni Bowcher UNQUALIFIED
Leon P DilliardUnited KingdomOnyama Limba RENEWAL
Claire H IturbideArgentinaAsiya Javayant UNQUALIFIED
James U RimUnited KingdomAsiya Javayant RENEWAL
Kadeem Z RimFranceStephen Shaw RENEWAL
Octavia Z SergiItalyIvan Magalhaes QUALIFIED
Sinclair U AlbaresArgentinaAnna Fali NEGOTIATION
Mayumi N AmigonArgentinaXuxue Feng RENEWAL
David I DilliardAustraliaStephen Shaw RENEWAL

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