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
Octavia B WieserJapanElwin Sharvill UNQUALIFIED
Silvio R StensethUnited KingdomIoni Bowcher PROPOSAL
Juan O GlickIndiaBernardo Dominic QUALIFIED
Wickens I MaletUnited KingdomAnna Fali QUALIFIED
Munro D KolmetzRussiaXuxue Feng UNQUALIFIED
Jeanfrancois F BriddickArgentinaElwin Sharvill PROPOSAL
Jefferson E RoysterUnited KingdomStephen Shaw QUALIFIED
Faith H StockhamRussiaElwin Sharvill RENEWAL
Salvatore Q KolmetzSpainBernardo Dominic NEW
Rodrigues E SergiIndiaIvan Magalhaes QUALIFIED
Octavia E BowleyGermanyStephen Shaw PROPOSAL
Juan X CaldareraIndiaOnyama Limba NEW
Stacey L DoeCanadaAnna Fali NEW
Adams X WaycottIndiaBernardo Dominic NEGOTIATION
Izzy L ButtCanadaStephen Shaw RENEWAL
Jefferson W NickaJapanXuxue Feng UNQUALIFIED
Kadeem A ChuiCanadaXuxue Feng RENEWAL
Alejandro P GauchoBrazilIoni Bowcher NEW
Salvatore L BologniaRussiaOnyama Limba QUALIFIED
Mujtaba Q PerinCanadaStephen Shaw PROPOSAL
Arvin F MaletAustraliaStephen Shaw NEGOTIATION
Ashley L ButtArgentinaAsiya Javayant NEW
James M GillianArgentinaIvan Magalhaes UNQUALIFIED
Smith M PoquetteArgentinaAmy Elsner UNQUALIFIED
Faith T FlosiArgentinaAnna Fali PROPOSAL
Ivar D RimArgentinaElwin Sharvill QUALIFIED
Morrow C GarufiAustraliaOnyama Limba PROPOSAL
Salvatore N PoquetteRussiaXuxue Feng NEW
Adams W ButtRussiaStephen Shaw RENEWAL
Munro G GarufiSpainAsiya Javayant NEGOTIATION
Stacey Q VenereArgentinaOnyama Limba UNQUALIFIED
James W PerinSpainAmy Elsner UNQUALIFIED
Murillo U AlbaresFranceBernardo Dominic QUALIFIED
Kaitlin U PerinGermanyBernardo Dominic RENEWAL
Arvin S KuskoUnited KingdomAmy Elsner QUALIFIED
Stacey C PaprockiIndiaAnna Fali UNQUALIFIED
Leon L CaudyUnited KingdomAnna Fali RENEWAL
Emily Q KolmetzJapanAsiya Javayant PROPOSAL
Ricardo G MaletBrazilAsiya Javayant PROPOSAL
Tony G GlickItalyStephen Shaw QUALIFIED
Leja Z RimIndiaXuxue Feng NEGOTIATION
Arvin Y RulapaughArgentinaOnyama Limba NEGOTIATION
Ivar X FlosiRussiaXuxue Feng PROPOSAL
Juan V RulapaughItalyOnyama Limba PROPOSAL
Salvatore L ButtSpainAsiya Javayant PROPOSAL
Misaki O VocelkaFranceAmy Elsner NEGOTIATION
Jefferson T CaldareraBrazilAnna Fali NEGOTIATION
Isabel M AlbaresJapanElwin Sharvill RENEWAL
Rodrigues O ShinkoBrazilAnna Fali NEGOTIATION
Leja X WhobreySpainAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo F NickaJapanIvan Magalhaes PROPOSAL
Leon U FollerRussiaAsiya Javayant PROPOSAL
Arvin F BologniaBrazilIoni Bowcher PROPOSAL
Misaki U ChuiUnited KingdomIoni Bowcher NEGOTIATION
Ricardo U RulapaughItalyIvan Magalhaes PROPOSAL
Stacey B FollerRussiaBernardo Dominic UNQUALIFIED
Leon H NickaAustraliaIoni Bowcher RENEWAL
Maria W KolmetzSpainAsiya Javayant UNQUALIFIED
Johnson P SergiAustraliaIoni Bowcher NEW
Octavia B OldroydArgentinaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh L MaletAustralia2026-08-25Rangoni Of Florence NEGOTIATION49Asiya Javayant
1001Antonio J PaprockiFrance2026-08-19Morlong Associates NEGOTIATION76Ioni Bowcher
1002Jones V WhobreyRussia2026-08-04Dorl, James J Esq UNQUALIFIED99Xuxue Feng
1003Antonio K IturbideJapan2026-08-11Chanay, Jeffrey A Esq RENEWAL70Ioni Bowcher
1004David S NestleGermany2026-08-21Benton, John B Jr QUALIFIED74Elwin Sharvill
1005Mayumi J WieserArgentina2026-08-03Truhlar And Truhlar Attys RENEWAL12Ioni Bowcher
1006Tony G CaldareraSpain2026-08-14Truhlar And Truhlar Attys RENEWAL58Ioni Bowcher
1007Sinclair E WhobreyRussia2026-08-24Chemel, James L Cpa NEW28Onyama Limba
1008Izzy L MacleadCanada2026-08-30Feiner Bros UNQUALIFIED11Ioni Bowcher
1009Misaki F DilliardGermany2026-08-21King, Christopher A Esq PROPOSAL69Xuxue Feng
1010Misaki O FerenczSpain2026-08-18Dorl, James J Esq PROPOSAL23Amy Elsner
1011Leja Z DilliardBrazil2026-08-30Feiner Bros NEGOTIATION39Onyama Limba
1012Ricardo W ShinkoIndia2026-08-01Chemel, James L Cpa QUALIFIED42Bernardo Dominic
1013Aika R InouyeRussia2026-08-21Chapman, Ross E Esq NEW70Ioni Bowcher
1014Emily S MacleadRussia2026-08-15Benton, John B Jr UNQUALIFIED57Elwin Sharvill
1015Wickens H AlbaresJapan2026-08-27Feltz Printing Service NEW81Onyama Limba
1016Maisha S WhobreySpain2026-08-30Buckley Miller Wright NEGOTIATION74Xuxue Feng
1017Deepesh F MaletCanada2026-08-21Chapman, Ross E Esq UNQUALIFIED8Anna Fali
1018Stacey Y AlbaresUnited Kingdom2026-08-16Chanay, Jeffrey A Esq NEGOTIATION9Stephen Shaw
1019Nicolas L BowleyUnited Kingdom2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED33Anna Fali
1020Mayumi M OldroydSpain2026-08-23Commercial Press UNQUALIFIED9Asiya Javayant
1021Jones T GauchoArgentina2026-08-04Buckley Miller Wright RENEWAL45Elwin Sharvill
1022Morrow E PaprockiArgentina2026-08-03Rangoni Of Florence QUALIFIED4Stephen Shaw
1023Deepesh I FollerBrazil2026-08-03Feltz Printing Service NEGOTIATION10Stephen Shaw
1024David J DilliardBrazil2026-08-19King, Christopher A Esq PROPOSAL11Ioni Bowcher
1025Deepesh C FerenczBrazil2026-08-13Dorl, James J Esq QUALIFIED32Elwin Sharvill
1026Costa B MaletSpain2026-08-25Feiner Bros NEGOTIATION57Bernardo Dominic
1027Kadeem V ChuiCanada2026-08-30Chapman, Ross E Esq RENEWAL1Ivan Magalhaes
1028Tony R GlickItaly2026-08-08Printing Dimensions NEW68Ioni Bowcher
1029Tony J MaletRussia2026-08-23Dorl, James J Esq PROPOSAL93Ioni Bowcher
1030Misaki E MaletSpain2026-08-27Benton, John B Jr PROPOSAL96Ioni Bowcher
1031Silvio R NickaItaly2026-08-03Chanay, Jeffrey A Esq RENEWAL56Onyama Limba
1032Jennifer C DarakjyItaly2026-08-01Chemel, James L Cpa RENEWAL94Ivan Magalhaes
1033Jefferson E ButtRussia2026-08-03Buckley Miller Wright NEGOTIATION96Ivan Magalhaes
1034Mayumi Z RutaItaly2026-08-08Chanay, Jeffrey A Esq PROPOSAL10Onyama Limba
1035Clifford R FerenczRussia2026-08-26Morlong Associates NEGOTIATION51Asiya Javayant
1036Jefferson W WaycottIndia2026-08-21Buckley Miller Wright PROPOSAL75Ivan Magalhaes
1037Alejandro Q InouyeJapan2026-08-10Chanay, Jeffrey A Esq QUALIFIED76Anna Fali
1038Kaitlin A SchemmerCanada2026-08-17Feiner Bros QUALIFIED77Xuxue Feng
1039Mujtaba F FerenczSpain2026-08-29Rangoni Of Florence QUALIFIED82Ivan Magalhaes
1040Aruna D ShinkoCanada2026-08-06Dorl, James J Esq RENEWAL26Anna Fali
1041Isabel F MacleadSpain2026-08-29Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1042Mujtaba O ShinkoJapan2026-08-25Feiner Bros RENEWAL9Asiya Javayant
1043Aditya D KuskoIndia2026-08-12Morlong Associates UNQUALIFIED78Elwin Sharvill
1044Smith L MacleadJapan2026-08-05King, Christopher A Esq NEGOTIATION84Elwin Sharvill
1045Ashley F SchemmerIndia2026-08-22Morlong Associates QUALIFIED58Anna Fali
1046Arvin V PoquetteIndia2026-08-03Feiner Bros UNQUALIFIED94Stephen Shaw
1047Jefferson Z VenereUnited Kingdom2026-08-24Benton, John B Jr PROPOSAL16Elwin Sharvill
1048Ivar Q FerenczFrance2026-08-07Rangoni Of Florence UNQUALIFIED48Ioni Bowcher
1049Smith H FigeroaCanada2026-08-02Chanay, Jeffrey A Esq QUALIFIED35Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria J RoysterAustraliaAsiya Javayant RENEWAL
Deepesh W RimAustraliaStephen Shaw NEW
Mujtaba Q AlbaresSpainAsiya Javayant RENEWAL
David X MaletBrazilElwin Sharvill NEGOTIATION
Johnson E BologniaGermanyAmy Elsner UNQUALIFIED
Ashley X ButtCanadaElwin Sharvill NEW
Wickens N VenereAustraliaIvan Magalhaes PROPOSAL
Sinclair S SlusarskiUnited KingdomAnna Fali NEGOTIATION
Silvio S ButtItalyAmy Elsner NEGOTIATION
Munro G MacleadAustraliaAnna Fali PROPOSAL
Mujtaba C DoeFranceAnna Fali RENEWAL
Octavia H SaylorsJapanAnna Fali QUALIFIED
Ashley Z NickaIndiaAmy Elsner NEW
Leon E PoquetteGermanyElwin Sharvill RENEWAL
Murillo P KuskoSpainStephen Shaw NEGOTIATION
Murillo T MaletSpainElwin Sharvill UNQUALIFIED
Ivar A NestleRussiaAsiya Javayant UNQUALIFIED
Tony X FerenczJapanIvan Magalhaes NEW
Leon P KolmetzGermanyStephen Shaw UNQUALIFIED
Izzy Z WhobreyFranceElwin Sharvill UNQUALIFIED
Deepesh Y WaycottAustraliaXuxue Feng QUALIFIED
Aika S OstroskyArgentinaStephen Shaw NEW
Faith X MorascaBrazilStephen Shaw NEW
Alejandro O ChuiBrazilElwin Sharvill UNQUALIFIED
Sinclair I ChuiUnited KingdomIvan Magalhaes RENEWAL
Julie C CampainAustraliaOnyama Limba RENEWAL
Deepesh L MacleadFranceXuxue Feng NEGOTIATION
Munro R WaycottBrazilStephen Shaw NEW
Darci S StockhamRussiaBernardo Dominic NEGOTIATION
Alejandro F ButtSpainElwin Sharvill QUALIFIED
Kadeem G SlusarskiCanadaOnyama Limba RENEWAL
Munro W DarakjyItalyIoni Bowcher UNQUALIFIED
Maria M RutaFranceIoni Bowcher PROPOSAL
Aditya X InouyeRussiaAnna Fali PROPOSAL
Morrow B CaudyUnited KingdomAsiya Javayant NEW
Jones Q AlbaresJapanAmy Elsner NEW
Greenwood P VocelkaIndiaXuxue Feng PROPOSAL
Arvin R OldroydFranceAnna Fali RENEWAL
James O GauchoAustraliaElwin Sharvill UNQUALIFIED
Kaitlin L SchemmerAustraliaStephen Shaw NEW
Maria H ShinkoIndiaAsiya Javayant RENEWAL
Johnson U FigeroaSpainIoni Bowcher UNQUALIFIED
Francesco R VocelkaSpainIoni Bowcher NEGOTIATION
Arvin S MorascaCanadaOnyama Limba QUALIFIED
Jones L WieserGermanyStephen Shaw PROPOSAL
Ricardo N RutaFranceElwin Sharvill PROPOSAL
Johnson J BologniaJapanAsiya Javayant NEW
Mayumi E WaycottIndiaOnyama Limba RENEWAL
Tony T GillianJapanElwin Sharvill NEW
Johnson S FigeroaAustraliaAsiya Javayant QUALIFIED
Frozen Columns
Name
Smith W Dilliard
Silvio E Rim
Aditya D Flosi
Misaki M Ostrosky
Cody Y Figeroa
Francesco U Ruta
Aika V Figeroa
Darci M Foller
Arvin H Ostrosky
Alejandro O Iturbide
Juan A Shinko
Murillo H Shinko
Maria K Iturbide
Aruna G Royster
Jeanfrancois Z Stockham
Chavez Q Sergi
Wickens L Gaucho
Maisha F Stenseth
James I Caldarera
Leon P Bolognia
Emily R Gaucho
Maria T Poquette
Smith O Slusarski
Nicolas A Nicka
Izzy K Doe
Chavez O Flosi
Smith Z Tollner
Izzy W Venere
Murillo A Saylors
James O Dilliard
Jennifer A Flosi
Clifford P Albares
Francesco V Ostrosky
Clifford R Darakjy
Ivar A Rulapaugh
Salvatore G Sergi
Mujtaba R Kolmetz
Adams Q Albares
Leja C Garufi
Leon F Oldroyd
Emily M Iturbide
Cody I Whobrey
Munro M Whobrey
Kaitlin Y Gillian
Salvatore D Royster
Munro U Gillian
Julie N Ruta
Faith L Gillian
Murillo Q Stockham
Ashley Q Rulapaugh
IdCountryDate
1000Spain2026-08-25
1001Brazil2026-08-14
1002Australia2026-08-19
1003Brazil2026-08-21
1004Italy2026-08-25
1005France2026-08-30
1006France2026-08-15
1007Russia2026-08-16
1008Australia2026-08-12
1009Argentina2026-08-22
1010Argentina2026-08-05
1011India2026-08-24
1012India2026-08-06
1013Canada2026-08-12
1014United Kingdom2026-08-16
1015France2026-08-07
1016Argentina2026-08-23
1017Germany2026-08-25
1018United Kingdom2026-08-15
1019Germany2026-08-23
1020France2026-08-13
1021Spain2026-08-14
1022Germany2026-08-19
1023Argentina2026-08-05
1024Japan2026-08-27
1025Brazil2026-08-26
1026Spain2026-08-29
1027Australia2026-08-22
1028India2026-08-06
1029Argentina2026-08-13
1030Australia2026-08-14
1031France2026-08-06
1032France2026-08-10
1033Argentina2026-08-23
1034India2026-08-08
1035Canada2026-08-06
1036Germany2026-08-19
1037Japan2026-08-25
1038Brazil2026-08-16
1039Japan2026-08-22
1040Canada2026-08-25
1041Germany2026-08-28
1042France2026-08-08
1043Argentina2026-08-04
1044Argentina2026-08-22
1045India2026-08-09
1046Germany2026-08-05
1047Australia2026-08-09
1048France2026-08-16
1049Japan2026-08-29

On-Demand Data

NameIdCountryDate
Morrow P Shinko1000Germany2026-08-15
Jefferson P Schemmer1001United Kingdom2026-08-22
Jeanfrancois T Marrier1002France2026-08-30
Leon B Stockham1003Canada2026-08-18
Morrow R Briddick1004Japan2026-08-13
Misaki O Rim1005Spain2026-08-05
Juan K Venere1006Germany2026-08-21
Julie W Paprocki1007Australia2026-08-19
Aditya U Chui1008India2026-08-05
Jeanfrancois F Caldarera1009Italy2026-08-25
Adams O Sergi1010Spain2026-08-10
Maria Q Slusarski1011Russia2026-08-10
Aika F Maclead1012Australia2026-08-05
Rodrigues N Campain1013India2026-08-18
Adams R Iturbide1014Argentina2026-08-23
Adams S Whobrey1015Brazil2026-08-20
Silvio J Amigon1016Russia2026-08-14
Rodrigues B Ruta1017Russia2026-08-10
Kaitlin Y Caudy1018Australia2026-08-15
Costa R Foller1019Italy2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin I KolmetzGermanyIvan Magalhaes PROPOSAL
Aika V BowleyJapanIoni Bowcher PROPOSAL
Mayumi M MacleadIndiaElwin Sharvill QUALIFIED
Maria X KuskoSpainOnyama Limba NEGOTIATION
Darci M RutaCanadaStephen Shaw NEW
Costa B ChuiJapanAnna Fali RENEWAL
Ivar U BowleyUnited KingdomXuxue Feng NEGOTIATION
Juan V NestleFranceStephen Shaw RENEWAL
Tony T RutaItalyStephen Shaw UNQUALIFIED
Murillo Y MarrierBrazilAnna Fali QUALIFIED
Wickens E CaldareraRussiaAsiya Javayant NEW
Ivar Q GillianAustraliaXuxue Feng QUALIFIED
Kaitlin Y PaprockiSpainAsiya Javayant NEGOTIATION
Ricardo B KuskoFranceXuxue Feng PROPOSAL
Darci L RoysterRussiaAnna Fali PROPOSAL
Clifford H StockhamRussiaAsiya Javayant PROPOSAL
Salvatore G ShinkoArgentinaIoni Bowcher NEGOTIATION
Kaitlin R GauchoAustraliaIoni Bowcher QUALIFIED
Clifford M CampainFranceIoni Bowcher QUALIFIED
Adams V AlbaresSpainStephen Shaw NEW
Smith H WieserBrazilAsiya Javayant RENEWAL
Juan Y KuskoFranceAmy Elsner UNQUALIFIED
Rodrigues B MarrierArgentinaAnna Fali PROPOSAL
Sinclair P AlbaresFranceIoni Bowcher RENEWAL
Izzy E ButtFranceOnyama Limba NEW
Alejandro B VenereCanadaAmy Elsner PROPOSAL
Chavez S SaylorsIndiaXuxue Feng NEW
David J MaletBrazilAmy Elsner PROPOSAL
Jeanfrancois P FlosiSpainBernardo Dominic NEGOTIATION
Mayumi W FigeroaAustraliaXuxue Feng PROPOSAL
Arvin Z MacleadJapanAsiya Javayant QUALIFIED
Faith H NickaCanadaOnyama Limba QUALIFIED
Greenwood J MaletFranceStephen Shaw NEW
Rodrigues V TollnerArgentinaAmy Elsner UNQUALIFIED
Izzy Y StockhamCanadaElwin Sharvill RENEWAL
Tony W ShinkoJapanIvan Magalhaes UNQUALIFIED
Johnson X ChuiCanadaIoni Bowcher NEGOTIATION
Aditya N DarakjyItalyAsiya Javayant NEW
Costa Y FigeroaSpainBernardo Dominic QUALIFIED
Kadeem I FollerCanadaAnna Fali 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>