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
Nicolas D RulapaughAustraliaIvan Magalhaes NEGOTIATION
Rodrigues H ShinkoUnited KingdomAnna Fali NEGOTIATION
Alejandro H StensethFranceElwin Sharvill RENEWAL
Mujtaba D DilliardBrazilAnna Fali NEGOTIATION
Julie R BowleyJapanAsiya Javayant RENEWAL
Jones I MaletRussiaOnyama Limba NEW
Tony Y NestleItalyAnna Fali RENEWAL
Jefferson D DoeAustraliaAmy Elsner RENEWAL
Maria D RoysterAustraliaAsiya Javayant RENEWAL
Morrow H SlusarskiRussiaBernardo Dominic RENEWAL
Claire U WieserSpainOnyama Limba RENEWAL
Nicolas E BowleyFranceAmy Elsner PROPOSAL
Aika N OstroskyArgentinaElwin Sharvill NEGOTIATION
Deepesh B CaldareraArgentinaStephen Shaw UNQUALIFIED
Jennifer Q CampainGermanyIoni Bowcher UNQUALIFIED
Mayumi K MacleadArgentinaAsiya Javayant NEGOTIATION
Wickens Z BriddickJapanBernardo Dominic RENEWAL
Kaitlin M VenereBrazilOnyama Limba UNQUALIFIED
Rodrigues Q SchemmerSpainXuxue Feng QUALIFIED
Mayumi H RutaArgentinaBernardo Dominic RENEWAL
Sinclair I ShinkoAustraliaBernardo Dominic QUALIFIED
Tony Y NickaArgentinaAsiya Javayant PROPOSAL
Ashley E AmigonArgentinaAmy Elsner RENEWAL
Antonio K SchemmerItalyIvan Magalhaes NEGOTIATION
Adams S KuskoIndiaIvan Magalhaes QUALIFIED
Arvin B ShinkoRussiaIoni Bowcher UNQUALIFIED
Nicolas Q BriddickArgentinaOnyama Limba NEW
Silvio P RimGermanyElwin Sharvill NEW
Antonio A OldroydGermanyStephen Shaw RENEWAL
Johnson M IturbideFranceOnyama Limba NEGOTIATION
Jefferson W SaylorsIndiaAmy Elsner RENEWAL
Smith S GillianItalyXuxue Feng NEGOTIATION
Arvin X FlosiAustraliaBernardo Dominic NEGOTIATION
Leon D StensethItalyStephen Shaw NEW
Costa J CaldareraCanadaBernardo Dominic NEGOTIATION
Antonio E WhobreySpainBernardo Dominic NEW
Francesco G DarakjyJapanElwin Sharvill NEW
Stacey O NickaCanadaAmy Elsner UNQUALIFIED
Adams E NickaFranceBernardo Dominic PROPOSAL
Jeanfrancois U NestleGermanyIvan Magalhaes NEW
Salvatore K IturbideUnited KingdomAnna Fali UNQUALIFIED
Francesco S WieserBrazilAnna Fali RENEWAL
Rodrigues F MacleadUnited KingdomStephen Shaw UNQUALIFIED
Julie I OstroskyCanadaXuxue Feng QUALIFIED
Aruna T MarrierItalyStephen Shaw NEGOTIATION
David S RulapaughAustraliaOnyama Limba UNQUALIFIED
Izzy V CaudyAustraliaXuxue Feng QUALIFIED
James G WaycottUnited KingdomAmy Elsner UNQUALIFIED
Darci Z PoquetteSpainElwin Sharvill RENEWAL
Mayumi S MorascaRussiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire S MorascaBrazilBernardo Dominic NEW
Cody X SaylorsAustraliaAmy Elsner RENEWAL
Tony Q KuskoCanadaIvan Magalhaes PROPOSAL
Greenwood Z SlusarskiCanadaIvan Magalhaes NEGOTIATION
Leja W VocelkaItalyIoni Bowcher UNQUALIFIED
Greenwood M DarakjyAustraliaAmy Elsner PROPOSAL
Costa G BologniaGermanyStephen Shaw QUALIFIED
Johnson T InouyeIndiaStephen Shaw PROPOSAL
Misaki T RulapaughSpainIvan Magalhaes NEGOTIATION
Kaitlin R OldroydArgentinaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro G CaldareraIndia2026-06-26Morlong Associates QUALIFIED50Onyama Limba
1001Rodrigues Y SergiItaly2026-07-06Truhlar And Truhlar Attys PROPOSAL50Xuxue Feng
1002Kadeem N MacleadAustralia2026-06-30Benton, John B Jr QUALIFIED76Onyama Limba
1003Jeanfrancois X GillianCanada2026-06-20Rangoni Of Florence NEGOTIATION41Elwin Sharvill
1004Maria Q GlickFrance2026-06-15Printing Dimensions UNQUALIFIED41Asiya Javayant
1005Adams B WaycottSpain2026-06-13Morlong Associates PROPOSAL79Ivan Magalhaes
1006Leon H WaycottIndia2026-07-09Dorl, James J Esq NEW69Stephen Shaw
1007Maria D IturbideJapan2026-07-01Buckley Miller Wright QUALIFIED12Ioni Bowcher
1008Johnson R SaylorsCanada2026-06-14Chanay, Jeffrey A Esq NEGOTIATION83Amy Elsner
1009Chavez C GarufiFrance2026-07-02Morlong Associates UNQUALIFIED43Xuxue Feng
1010Johnson G StensethRussia2026-06-28Morlong Associates NEW38Xuxue Feng
1011Ivar P RulapaughBrazil2026-07-02Chemel, James L Cpa RENEWAL88Xuxue Feng
1012Aika U GarufiArgentina2026-07-06Chemel, James L Cpa NEGOTIATION45Elwin Sharvill
1013Aditya I DoeIndia2026-06-27King, Christopher A Esq RENEWAL12Elwin Sharvill
1014Antonio U AmigonGermany2026-07-10Benton, John B Jr UNQUALIFIED72Anna Fali
1015Mayumi B IturbideSpain2026-06-19Feltz Printing Service NEGOTIATION58Stephen Shaw
1016Chavez K FlosiGermany2026-06-28Chapman, Ross E Esq PROPOSAL81Xuxue Feng
1017Alejandro F MaletSpain2026-06-20Feltz Printing Service NEGOTIATION90Amy Elsner
1018Francesco T NickaGermany2026-06-13Benton, John B Jr NEGOTIATION36Onyama Limba
1019Clifford B RoysterUnited Kingdom2026-06-26Feltz Printing Service PROPOSAL50Amy Elsner
1020Mujtaba N DoeCanada2026-06-14King, Christopher A Esq NEW67Bernardo Dominic
1021Mayumi H VocelkaGermany2026-06-28Benton, John B Jr NEW95Amy Elsner
1022Morrow S AmigonGermany2026-07-09Feltz Printing Service NEGOTIATION99Ioni Bowcher
1023Darci L ChuiSpain2026-07-09Morlong Associates QUALIFIED43Amy Elsner
1024Jennifer U SergiBrazil2026-07-06Truhlar And Truhlar Attys NEW41Anna Fali
1025Adams L TollnerArgentina2026-06-14Morlong Associates NEGOTIATION51Bernardo Dominic
1026Juan G OstroskyRussia2026-07-04Feiner Bros RENEWAL52Anna Fali
1027Clifford Q InouyeFrance2026-07-09Truhlar And Truhlar Attys NEGOTIATION46Elwin Sharvill
1028Mayumi H SlusarskiArgentina2026-06-18Buckley Miller Wright QUALIFIED47Stephen Shaw
1029Julie K RulapaughItaly2026-07-06Chanay, Jeffrey A Esq NEW4Stephen Shaw
1030Leon E StockhamJapan2026-07-05Chapman, Ross E Esq UNQUALIFIED32Asiya Javayant
1031Nicolas C MaletArgentina2026-07-03Morlong Associates RENEWAL34Amy Elsner
1032Isabel C InouyeJapan2026-06-30Chemel, James L Cpa UNQUALIFIED42Ioni Bowcher
1033Ricardo I DarakjyAustralia2026-06-16Buckley Miller Wright NEGOTIATION64Xuxue Feng
1034Francesco U OstroskyBrazil2026-07-10Benton, John B Jr UNQUALIFIED27Ioni Bowcher
1035Munro Y InouyeCanada2026-06-11King, Christopher A Esq PROPOSAL86Ioni Bowcher
1036Faith X AlbaresItaly2026-07-09Feltz Printing Service RENEWAL41Ioni Bowcher
1037Sinclair T SaylorsSpain2026-07-09Feiner Bros QUALIFIED6Ivan Magalhaes
1038Aruna E FollerCanada2026-07-02Benton, John B Jr NEGOTIATION86Ioni Bowcher
1039Wickens E MacleadBrazil2026-07-05Truhlar And Truhlar Attys UNQUALIFIED15Elwin Sharvill
1040Kadeem J GlickIndia2026-06-18Chapman, Ross E Esq NEGOTIATION49Asiya Javayant
1041Claire M FlosiFrance2026-06-19King, Christopher A Esq PROPOSAL17Elwin Sharvill
1042Arvin W WieserBrazil2026-07-09Chapman, Ross E Esq UNQUALIFIED47Amy Elsner
1043Leon X SchemmerItaly2026-07-07Chapman, Ross E Esq UNQUALIFIED10Xuxue Feng
1044James X AmigonSpain2026-06-22Chanay, Jeffrey A Esq RENEWAL56Bernardo Dominic
1045Aika D FerenczAustralia2026-06-20Chemel, James L Cpa QUALIFIED94Ivan Magalhaes
1046Julie D PerinItaly2026-07-09Truhlar And Truhlar Attys RENEWAL63Stephen Shaw
1047Stacey S GillianFrance2026-06-15Chanay, Jeffrey A Esq NEGOTIATION58Bernardo Dominic
1048Chavez Q RoysterIndia2026-07-01Benton, John B Jr NEGOTIATION88Ioni Bowcher
1049Jeanfrancois W BriddickIndia2026-06-15King, Christopher A Esq UNQUALIFIED85Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez I DoeBrazilXuxue Feng UNQUALIFIED
Izzy V MaletGermanyAsiya Javayant QUALIFIED
Antonio S WaycottBrazilIoni Bowcher NEGOTIATION
Smith P RutaArgentinaAmy Elsner UNQUALIFIED
Munro L BowleyCanadaElwin Sharvill QUALIFIED
Rodrigues J StensethSpainBernardo Dominic NEGOTIATION
Kaitlin S PoquetteSpainIvan Magalhaes QUALIFIED
Nicolas Y RimIndiaAmy Elsner PROPOSAL
Aruna C ShinkoGermanyIoni Bowcher RENEWAL
Costa T GillianRussiaAmy Elsner QUALIFIED
Rodrigues M BowleyJapanXuxue Feng QUALIFIED
Clifford Z IturbideFranceIoni Bowcher PROPOSAL
Faith W FerenczItalyStephen Shaw PROPOSAL
Sinclair N AmigonFranceXuxue Feng NEW
Kaitlin C FlosiGermanyElwin Sharvill PROPOSAL
Maisha I AmigonSpainIvan Magalhaes RENEWAL
Rodrigues N GillianUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba P KolmetzIndiaXuxue Feng NEW
David S FerenczAustraliaStephen Shaw UNQUALIFIED
Sinclair O MaletArgentinaAmy Elsner UNQUALIFIED
Salvatore Q RimCanadaIvan Magalhaes NEGOTIATION
Faith I MarrierUnited KingdomAmy Elsner UNQUALIFIED
Nicolas T KuskoUnited KingdomAsiya Javayant NEW
Faith F WieserCanadaBernardo Dominic NEGOTIATION
Darci E DoeRussiaAsiya Javayant NEGOTIATION
Mujtaba Y SlusarskiJapanIvan Magalhaes PROPOSAL
Adams Q PoquetteJapanIoni Bowcher UNQUALIFIED
Claire P OldroydItalyIoni Bowcher UNQUALIFIED
Stacey W CaldareraCanadaXuxue Feng UNQUALIFIED
Darci W DarakjyItalyAsiya Javayant RENEWAL
Juan U RimSpainAnna Fali NEGOTIATION
Mayumi X InouyeBrazilIvan Magalhaes NEW
Costa Z SlusarskiItalyElwin Sharvill UNQUALIFIED
Adams W SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Arvin Y WieserArgentinaStephen Shaw RENEWAL
Wickens F PaprockiSpainAnna Fali UNQUALIFIED
Nicolas X GillianGermanyIvan Magalhaes QUALIFIED
Izzy I TollnerRussiaIoni Bowcher NEW
Aika X WaycottItalyAnna Fali RENEWAL
Adams U RimFranceXuxue Feng QUALIFIED
Wickens I RutaIndiaStephen Shaw NEGOTIATION
Maria E DoeAustraliaOnyama Limba NEW
Misaki M DarakjyAustraliaStephen Shaw RENEWAL
Aika A BriddickItalyElwin Sharvill UNQUALIFIED
David W WhobreyBrazilBernardo Dominic NEW
Cody N InouyeCanadaElwin Sharvill QUALIFIED
Silvio E MorascaIndiaIoni Bowcher RENEWAL
Adams X OldroydUnited KingdomAsiya Javayant NEGOTIATION
Morrow C WaycottArgentinaStephen Shaw NEGOTIATION
Ashley E StensethUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Adams K Slusarski
Mujtaba D Dilliard
Mujtaba O Foller
James V Sergi
Tony G Figeroa
Claire G Bowley
Mujtaba G Vocelka
Aruna S Foller
Claire A Chui
Aditya L Dilliard
Aruna D Amigon
Smith O Darakjy
Maria R Venere
Salvatore L Caldarera
Morrow M Stenseth
Emily V Malet
Octavia X Paprocki
Maisha N Rulapaugh
Octavia T Caudy
Maria Y Campain
Costa E Malet
Jefferson I Poquette
Jeanfrancois O Briddick
Greenwood M Tollner
David K Bolognia
Wickens D Saylors
Ricardo R Caudy
Munro E Figeroa
Costa M Nestle
Stacey A Gillian
Cody E Caldarera
Morrow E Saylors
Isabel X Maclead
Chavez K Wieser
Mayumi F Saylors
Ivar P Malet
Maisha T Sergi
Adams G Albares
Kaitlin S Kolmetz
Rodrigues T Ostrosky
Jones G Tollner
Arvin Y Bowley
Darci P Gaucho
Wickens A Venere
Claire Z Malet
Silvio I Dilliard
Ashley P Stenseth
Silvio C Butt
Nicolas X Saylors
Arvin V Bowley
IdCountryDate
1000France2026-06-15
1001Russia2026-06-17
1002India2026-07-10
1003Germany2026-06-16
1004Argentina2026-06-30
1005Russia2026-07-04
1006Argentina2026-06-13
1007Argentina2026-06-19
1008Argentina2026-06-22
1009Germany2026-06-19
1010Canada2026-06-27
1011Italy2026-07-08
1012Japan2026-06-27
1013Germany2026-07-04
1014Spain2026-06-30
1015Spain2026-06-25
1016United Kingdom2026-07-03
1017Argentina2026-07-03
1018Spain2026-07-03
1019Brazil2026-06-30
1020Argentina2026-06-11
1021Brazil2026-07-02
1022United Kingdom2026-06-11
1023Canada2026-06-16
1024Argentina2026-06-23
1025Argentina2026-07-05
1026Brazil2026-06-24
1027France2026-07-09
1028Canada2026-06-25
1029France2026-07-04
1030Italy2026-06-29
1031Spain2026-07-02
1032India2026-07-03
1033France2026-06-24
1034Japan2026-06-15
1035France2026-07-01
1036Australia2026-07-03
1037Canada2026-06-17
1038United Kingdom2026-07-07
1039Argentina2026-06-28
1040France2026-06-26
1041Italy2026-07-06
1042Canada2026-06-17
1043France2026-07-10
1044Russia2026-06-27
1045Russia2026-07-02
1046India2026-06-16
1047Spain2026-06-12
1048Argentina2026-06-24
1049Canada2026-06-14

On-Demand Data

NameIdCountryDate
Julie N Amigon1000Canada2026-06-26
Nicolas U Wieser1001Canada2026-06-26
Silvio R Darakjy1002Spain2026-07-02
Jones B Chui1003Canada2026-06-24
Cody P Maclead1004Canada2026-06-18
Salvatore Q Venere1005Argentina2026-07-06
Silvio T Doe1006United Kingdom2026-07-02
Sinclair Q Iturbide1007Germany2026-06-22
Antonio U Ruta1008Russia2026-06-18
Smith K Waycott1009Spain2026-06-20
Aika A Inouye1010Argentina2026-06-16
Clifford K Schemmer1011Canada2026-07-01
Maisha F Gaucho1012Brazil2026-06-30
Kaitlin Y Maclead1013Japan2026-06-20
Mujtaba V Rim1014Spain2026-06-21
Mujtaba D Rim1015United Kingdom2026-06-15
Munro J Foller1016Japan2026-06-30
Ricardo H Gaucho1017Germany2026-07-08
Johnson G Gaucho1018Spain2026-07-08
Jefferson Q Morasca1019United Kingdom2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja J RoysterUnited KingdomAmy Elsner UNQUALIFIED
Deepesh X WhobreyIndiaAsiya Javayant NEW
Emily R DoeBrazilBernardo Dominic QUALIFIED
Kaitlin J MaletAustraliaIoni Bowcher QUALIFIED
Silvio K SergiAustraliaIoni Bowcher RENEWAL
Jefferson E OldroydFranceStephen Shaw PROPOSAL
Rodrigues R MaletRussiaIoni Bowcher RENEWAL
Kadeem P OstroskyCanadaIvan Magalhaes PROPOSAL
Izzy M RimItalyOnyama Limba NEW
Johnson V CampainItalyStephen Shaw NEW
Leon L IturbideFranceOnyama Limba NEW
Jeanfrancois A OldroydSpainOnyama Limba NEGOTIATION
Francesco C PaprockiAustraliaAmy Elsner NEW
Salvatore V WaycottBrazilStephen Shaw RENEWAL
Faith R NickaBrazilIvan Magalhaes NEW
Mujtaba F ShinkoSpainStephen Shaw RENEWAL
Salvatore Y KolmetzJapanBernardo Dominic NEGOTIATION
Silvio F MaletRussiaIvan Magalhaes PROPOSAL
Cody F InouyeIndiaBernardo Dominic PROPOSAL
Faith B VocelkaBrazilOnyama Limba RENEWAL
Murillo C BriddickFranceAmy Elsner NEW
Murillo S NickaRussiaBernardo Dominic NEW
Darci P StockhamAustraliaBernardo Dominic NEGOTIATION
Chavez E KuskoJapanStephen Shaw NEW
Leon L StensethGermanyStephen Shaw QUALIFIED
Morrow U InouyeSpainAnna Fali NEGOTIATION
Salvatore K MacleadGermanyAsiya Javayant UNQUALIFIED
Darci P MacleadItalyAmy Elsner NEW
Jeanfrancois Z VenereUnited KingdomBernardo Dominic NEW
Wickens E SaylorsJapanIoni Bowcher QUALIFIED
Morrow U VocelkaAustraliaAnna Fali PROPOSAL
Arvin Q ShinkoGermanyBernardo Dominic UNQUALIFIED
Clifford B GauchoItalyXuxue Feng NEGOTIATION
Sinclair Y NestleJapanXuxue Feng RENEWAL
Salvatore X PoquetteRussiaIoni Bowcher QUALIFIED
Ashley U GillianSpainOnyama Limba RENEWAL
Deepesh R NickaBrazilStephen Shaw UNQUALIFIED
Jennifer C GillianArgentinaElwin Sharvill NEW
Isabel H WhobreySpainAsiya Javayant PROPOSAL
Salvatore V MorascaSpainOnyama Limba 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>