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
Jones I KolmetzBrazilOnyama Limba NEGOTIATION
Ivar C IturbideIndiaAmy Elsner NEW
Ashley A FigeroaIndiaAmy Elsner PROPOSAL
Morrow G MaletItalyIvan Magalhaes NEW
Nicolas N MaletBrazilIoni Bowcher QUALIFIED
Leja N OstroskyGermanyAmy Elsner NEGOTIATION
Wickens H RulapaughFranceIoni Bowcher QUALIFIED
Sinclair Q FigeroaSpainAsiya Javayant PROPOSAL
Leon O MarrierAustraliaIvan Magalhaes UNQUALIFIED
Clifford H WieserCanadaStephen Shaw RENEWAL
Nicolas P MarrierBrazilStephen Shaw PROPOSAL
Ashley J SergiSpainIvan Magalhaes PROPOSAL
Alejandro E RutaUnited KingdomAmy Elsner NEW
Ashley S RutaGermanyElwin Sharvill UNQUALIFIED
Stacey X CaldareraItalyIvan Magalhaes UNQUALIFIED
Aruna W MacleadRussiaAnna Fali UNQUALIFIED
Wickens J GlickUnited KingdomAnna Fali PROPOSAL
Julie F OldroydArgentinaBernardo Dominic NEGOTIATION
Darci W CampainSpainXuxue Feng RENEWAL
Aika E ChuiRussiaAnna Fali RENEWAL
Juan G KuskoArgentinaXuxue Feng PROPOSAL
Stacey C PoquetteJapanIoni Bowcher UNQUALIFIED
David I TollnerRussiaBernardo Dominic NEW
Jones Q NestleIndiaAmy Elsner NEW
Juan N StensethArgentinaIvan Magalhaes UNQUALIFIED
Francesco L MacleadCanadaAsiya Javayant PROPOSAL
Leon D VocelkaJapanOnyama Limba QUALIFIED
Jones F PerinIndiaIoni Bowcher NEGOTIATION
Aika E AlbaresFranceAsiya Javayant PROPOSAL
Nicolas P TollnerCanadaAsiya Javayant UNQUALIFIED
Stacey S NickaGermanyIvan Magalhaes UNQUALIFIED
Johnson M ShinkoAustraliaIoni Bowcher PROPOSAL
Clifford X StensethUnited KingdomAnna Fali NEW
Jones F SaylorsBrazilIoni Bowcher UNQUALIFIED
Leja V NestleUnited KingdomAnna Fali UNQUALIFIED
Ivar K BologniaIndiaElwin Sharvill QUALIFIED
Salvatore C DarakjyAustraliaAsiya Javayant NEW
Emily B OstroskyIndiaAmy Elsner NEGOTIATION
Silvio T StockhamJapanXuxue Feng PROPOSAL
Misaki M FigeroaJapanOnyama Limba NEW
Octavia R GauchoArgentinaOnyama Limba RENEWAL
Alejandro X TollnerSpainXuxue Feng RENEWAL
Ashley Q CaudySpainStephen Shaw UNQUALIFIED
Nicolas E FigeroaFranceBernardo Dominic PROPOSAL
Tony D OldroydIndiaStephen Shaw PROPOSAL
James Z WaycottIndiaIvan Magalhaes UNQUALIFIED
Mujtaba M SlusarskiGermanyElwin Sharvill NEGOTIATION
Jefferson F KuskoFranceAmy Elsner NEW
Mayumi A MorascaBrazilBernardo Dominic UNQUALIFIED
Claire P KuskoSpainStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith G RoysterFranceAmy Elsner QUALIFIED
Deepesh V SlusarskiAustraliaAsiya Javayant NEW
Misaki G BowleyArgentinaIoni Bowcher QUALIFIED
Deepesh R InouyeArgentinaAsiya Javayant UNQUALIFIED
Costa B SchemmerSpainIoni Bowcher QUALIFIED
Jefferson U FerenczCanadaAnna Fali PROPOSAL
Nicolas F IturbideSpainIoni Bowcher QUALIFIED
Kadeem I GauchoCanadaElwin Sharvill UNQUALIFIED
Stacey J MacleadJapanAsiya Javayant UNQUALIFIED
Faith W IturbideGermanyElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Y OldroydBrazil2026-07-11Feltz Printing Service UNQUALIFIED1Asiya Javayant
1001Sinclair L RutaArgentina2026-07-09Truhlar And Truhlar Attys RENEWAL85Ivan Magalhaes
1002Alejandro W GarufiFrance2026-07-18Dorl, James J Esq RENEWAL17Xuxue Feng
1003Izzy V MaletFrance2026-07-07King, Christopher A Esq RENEWAL78Amy Elsner
1004Morrow A ShinkoGermany2026-07-12King, Christopher A Esq UNQUALIFIED68Anna Fali
1005Darci H MarrierGermany2026-07-12Dorl, James J Esq QUALIFIED26Stephen Shaw
1006James V DarakjyItaly2026-06-30Rousseaux, Michael Esq NEW44Xuxue Feng
1007Francesco A PaprockiItaly2026-07-18Rangoni Of Florence NEGOTIATION89Elwin Sharvill
1008Misaki I CampainUnited Kingdom2026-07-19Morlong Associates QUALIFIED43Ivan Magalhaes
1009Claire J GillianRussia2026-07-14Buckley Miller Wright QUALIFIED61Ioni Bowcher
1010Sinclair D MaletItaly2026-07-17Truhlar And Truhlar Attys NEW27Elwin Sharvill
1011Kadeem Z VenereIndia2026-07-05Truhlar And Truhlar Attys UNQUALIFIED52Bernardo Dominic
1012Rodrigues E MorascaBrazil2026-07-02Truhlar And Truhlar Attys NEW55Ivan Magalhaes
1013Emily A StockhamBrazil2026-07-01Dorl, James J Esq QUALIFIED6Amy Elsner
1014Ashley Y VenereUnited Kingdom2026-06-30Chapman, Ross E Esq UNQUALIFIED69Ioni Bowcher
1015Kaitlin S MaletJapan2026-07-18Rangoni Of Florence NEGOTIATION77Amy Elsner
1016Clifford Z AlbaresArgentina2026-07-14Buckley Miller Wright RENEWAL91Stephen Shaw
1017Isabel Q WhobreyJapan2026-06-30Rousseaux, Michael Esq PROPOSAL56Asiya Javayant
1018Jefferson J SaylorsRussia2026-07-15Chemel, James L Cpa PROPOSAL95Anna Fali
1019Tony H FlosiRussia2026-06-28King, Christopher A Esq QUALIFIED48Anna Fali
1020Munro P ButtSpain2026-07-05King, Christopher A Esq NEW10Stephen Shaw
1021Nicolas H AlbaresGermany2026-06-28Buckley Miller Wright RENEWAL0Elwin Sharvill
1022Emily J RimArgentina2026-06-30King, Christopher A Esq QUALIFIED51Asiya Javayant
1023Juan Y SlusarskiRussia2026-07-09Rousseaux, Michael Esq NEW99Ivan Magalhaes
1024Cody Y StensethUnited Kingdom2026-07-11Feiner Bros PROPOSAL7Onyama Limba
1025David H SaylorsBrazil2026-07-18Chapman, Ross E Esq RENEWAL50Xuxue Feng
1026Maisha Z WaycottGermany2026-07-11Buckley Miller Wright NEGOTIATION80Xuxue Feng
1027Rodrigues H KuskoItaly2026-07-11Printing Dimensions QUALIFIED75Ioni Bowcher
1028Ashley G RoysterRussia2026-07-18Commercial Press RENEWAL71Asiya Javayant
1029Salvatore E VocelkaGermany2026-06-22Chapman, Ross E Esq UNQUALIFIED87Amy Elsner
1030Ashley W FlosiUnited Kingdom2026-06-26Rousseaux, Michael Esq QUALIFIED93Onyama Limba
1031Leja S TollnerGermany2026-06-29Feltz Printing Service UNQUALIFIED96Asiya Javayant
1032Morrow W GauchoUnited Kingdom2026-06-24Feltz Printing Service QUALIFIED40Amy Elsner
1033Salvatore C FigeroaUnited Kingdom2026-06-24Rousseaux, Michael Esq QUALIFIED99Xuxue Feng
1034Ashley Q RutaSpain2026-06-23Commercial Press NEGOTIATION6Onyama Limba
1035Jones O ShinkoBrazil2026-07-05Chanay, Jeffrey A Esq NEGOTIATION37Ivan Magalhaes
1036Kadeem B GarufiAustralia2026-06-29Buckley Miller Wright NEGOTIATION35Elwin Sharvill
1037Alejandro G ShinkoSpain2026-07-11Feltz Printing Service RENEWAL17Anna Fali
1038Octavia K MacleadRussia2026-07-16Rousseaux, Michael Esq NEW5Onyama Limba
1039Faith S BowleyArgentina2026-07-09Morlong Associates NEW99Bernardo Dominic
1040Isabel I PoquetteItaly2026-07-01Feiner Bros NEW98Amy Elsner
1041Faith Q CaldareraSpain2026-06-23Printing Dimensions RENEWAL31Asiya Javayant
1042Darci T WhobreyFrance2026-07-19King, Christopher A Esq UNQUALIFIED29Onyama Limba
1043Juan R MaletIndia2026-06-29Benton, John B Jr PROPOSAL19Asiya Javayant
1044Darci N KuskoBrazil2026-07-08Printing Dimensions NEGOTIATION54Stephen Shaw
1045Cody E FerenczIndia2026-07-01Benton, John B Jr PROPOSAL6Onyama Limba
1046Darci N DarakjyCanada2026-07-08Feltz Printing Service NEW38Amy Elsner
1047Darci B TollnerItaly2026-07-12Truhlar And Truhlar Attys NEW16Anna Fali
1048Julie M IturbideAustralia2026-07-02Commercial Press QUALIFIED81Bernardo Dominic
1049Emily U SaylorsJapan2026-07-10Chanay, Jeffrey A Esq NEW33Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Tony V GarufiItalyAsiya Javayant UNQUALIFIED
Maisha V KolmetzArgentinaStephen Shaw RENEWAL
Julie C FerenczUnited KingdomOnyama Limba UNQUALIFIED
Claire M RutaSpainAsiya Javayant NEW
Faith U AlbaresFranceAsiya Javayant UNQUALIFIED
Kaitlin W GlickArgentinaIvan Magalhaes NEGOTIATION
Jones L MacleadAustraliaAmy Elsner NEW
Wickens A IturbideArgentinaIvan Magalhaes RENEWAL
David G SergiArgentinaIvan Magalhaes QUALIFIED
Ivar H DoeAustraliaXuxue Feng RENEWAL
Izzy I AlbaresItalyAnna Fali UNQUALIFIED
Sinclair Q NickaFranceXuxue Feng UNQUALIFIED
Jennifer H BriddickGermanyIvan Magalhaes UNQUALIFIED
Leon Q GauchoRussiaAnna Fali QUALIFIED
Jefferson U GlickUnited KingdomOnyama Limba QUALIFIED
Alejandro Y MaletAustraliaStephen Shaw UNQUALIFIED
Chavez K ShinkoIndiaAsiya Javayant PROPOSAL
Chavez N CaldareraRussiaBernardo Dominic NEGOTIATION
Wickens M CampainCanadaAsiya Javayant PROPOSAL
Misaki F FlosiRussiaXuxue Feng QUALIFIED
Ashley H BriddickFranceOnyama Limba QUALIFIED
Murillo J OstroskyFranceBernardo Dominic PROPOSAL
David O VocelkaAustraliaAnna Fali RENEWAL
Cody U OstroskyJapanBernardo Dominic QUALIFIED
Sinclair C AlbaresFranceOnyama Limba UNQUALIFIED
Aruna B ShinkoBrazilAsiya Javayant NEW
Jennifer R MaletIndiaElwin Sharvill RENEWAL
Emily K WieserArgentinaBernardo Dominic QUALIFIED
Chavez K MorascaFranceIoni Bowcher PROPOSAL
Leon C RoysterGermanyBernardo Dominic UNQUALIFIED
Maisha G TollnerCanadaIoni Bowcher NEGOTIATION
Cody Q RimBrazilBernardo Dominic NEGOTIATION
James V BologniaUnited KingdomStephen Shaw UNQUALIFIED
Isabel V StockhamCanadaIoni Bowcher UNQUALIFIED
Stacey K MaletArgentinaAmy Elsner PROPOSAL
Leon H BologniaUnited KingdomOnyama Limba RENEWAL
Chavez N WhobreyRussiaBernardo Dominic NEGOTIATION
Claire Y WieserBrazilAsiya Javayant RENEWAL
Costa W OldroydAustraliaBernardo Dominic UNQUALIFIED
Leja N MarrierUnited KingdomAnna Fali PROPOSAL
Johnson E InouyeCanadaXuxue Feng UNQUALIFIED
Kadeem O WaycottGermanyBernardo Dominic RENEWAL
Misaki Y AmigonSpainXuxue Feng RENEWAL
Jennifer N SlusarskiArgentinaAmy Elsner UNQUALIFIED
Adams L RimIndiaStephen Shaw UNQUALIFIED
Antonio F StockhamAustraliaAmy Elsner RENEWAL
Ashley J PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Morrow F GillianUnited KingdomAnna Fali UNQUALIFIED
Leon M ShinkoJapanAnna Fali NEW
Izzy F TollnerUnited KingdomOnyama Limba NEW
Frozen Columns
Name
Aika D Darakjy
Costa B Perin
Adams X Dilliard
Isabel Z Bowley
Jones C Stockham
Ricardo E Ferencz
Maria J Poquette
David B Foller
Jeanfrancois A Ostrosky
Emily B Gillian
Deepesh L Figeroa
Misaki I Iturbide
Tony D Slusarski
Faith N Schemmer
Jones I Garufi
Aruna H Gillian
Isabel E Stockham
Adams Q Saylors
Adams C Nestle
Maisha L Nestle
Faith D Malet
Maria S Malet
Kadeem W Butt
Cody Y Sergi
Ricardo L Briddick
Claire K Albares
Jeanfrancois F Bolognia
David X Kolmetz
James L Foller
Kaitlin M Iturbide
Aruna W Malet
Johnson J Kusko
Mujtaba I Butt
Alejandro V Venere
Ashley F Tollner
Alejandro M Foller
Francesco H Wieser
Costa A Amigon
Alejandro L Rulapaugh
Isabel S Paprocki
Stacey Y Ostrosky
Ashley Y Royster
Greenwood Z Briddick
Maisha D Shinko
Tony J Venere
Sinclair F Amigon
Wickens S Inouye
Alejandro C Ruta
Emily M Figeroa
Rodrigues Z Bowley
IdCountryDate
1000Spain2026-06-29
1001France2026-06-22
1002Japan2026-07-12
1003Spain2026-07-10
1004Japan2026-07-13
1005Spain2026-07-03
1006Brazil2026-06-30
1007Argentina2026-06-28
1008Germany2026-07-13
1009Brazil2026-06-24
1010Australia2026-06-22
1011Brazil2026-07-08
1012Italy2026-07-02
1013France2026-07-13
1014Australia2026-07-04
1015France2026-06-28
1016Canada2026-07-15
1017Italy2026-06-30
1018Spain2026-07-05
1019Canada2026-07-09
1020France2026-07-19
1021Japan2026-07-12
1022Canada2026-07-20
1023India2026-07-01
1024Brazil2026-06-23
1025Italy2026-07-20
1026Canada2026-07-07
1027Canada2026-06-28
1028India2026-06-25
1029United Kingdom2026-07-13
1030Spain2026-06-29
1031Argentina2026-06-24
1032Australia2026-07-06
1033France2026-06-27
1034United Kingdom2026-06-25
1035Australia2026-07-18
1036United Kingdom2026-07-11
1037Germany2026-06-29
1038Russia2026-06-30
1039Germany2026-07-08
1040Brazil2026-07-20
1041Spain2026-06-25
1042Brazil2026-07-20
1043Brazil2026-06-28
1044France2026-06-30
1045France2026-07-20
1046Canada2026-07-08
1047Japan2026-07-07
1048Italy2026-06-25
1049United Kingdom2026-06-30

On-Demand Data

NameIdCountryDate
Chavez B Gaucho1000France2026-07-10
David H Kusko1001Spain2026-07-05
Silvio B Figeroa1002Italy2026-07-19
Emily S Darakjy1003Canada2026-06-29
Salvatore X Vocelka1004Italy2026-07-08
Jennifer R Figeroa1005Canada2026-07-18
Greenwood Y Shinko1006Japan2026-07-20
Silvio M Amigon1007Italy2026-07-11
Mujtaba L Glick1008Italy2026-07-14
Julie Z Morasca1009Italy2026-07-10
Alejandro F Bowley1010Australia2026-07-18
Aditya I Morasca1011Germany2026-07-09
Ricardo J Nestle1012France2026-07-02
Smith D Campain1013France2026-07-04
Ivar X Morasca1014Russia2026-07-15
Stacey F Iturbide1015Argentina2026-07-01
Aika Z Figeroa1016France2026-07-01
James B Maclead1017Japan2026-07-10
Francesco O Royster1018Russia2026-07-20
Wickens W Butt1019Australia2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo T BowleySpainIvan Magalhaes QUALIFIED
Munro R GarufiRussiaOnyama Limba QUALIFIED
Francesco C FollerSpainAmy Elsner NEW
Mujtaba Z NickaRussiaAmy Elsner NEGOTIATION
Aruna J MorascaGermanyAsiya Javayant UNQUALIFIED
Adams I FlosiArgentinaBernardo Dominic PROPOSAL
Francesco E AmigonSpainStephen Shaw PROPOSAL
James R AmigonSpainXuxue Feng NEW
Nicolas T SergiSpainBernardo Dominic NEGOTIATION
Julie R BowleyUnited KingdomAnna Fali RENEWAL
Deepesh Q SchemmerSpainBernardo Dominic NEGOTIATION
Deepesh K WaycottAustraliaAsiya Javayant NEW
Rodrigues R AmigonBrazilOnyama Limba NEGOTIATION
Julie A RulapaughIndiaIvan Magalhaes RENEWAL
James F FollerBrazilXuxue Feng NEGOTIATION
Nicolas L BologniaSpainAnna Fali UNQUALIFIED
Jefferson N FigeroaCanadaElwin Sharvill QUALIFIED
Munro C RutaSpainStephen Shaw RENEWAL
Salvatore F WaycottRussiaElwin Sharvill NEGOTIATION
Faith I FigeroaGermanyOnyama Limba UNQUALIFIED
Izzy Q MorascaArgentinaStephen Shaw PROPOSAL
Octavia N PoquetteBrazilXuxue Feng NEW
Deepesh F OstroskyAustraliaIvan Magalhaes NEW
Ricardo E FerenczAustraliaAnna Fali RENEWAL
Octavia M GarufiFranceAnna Fali NEW
Maria V MaletFranceAsiya Javayant RENEWAL
Rodrigues Y OldroydArgentinaAsiya Javayant PROPOSAL
Alejandro Q RoysterGermanyAmy Elsner NEGOTIATION
Emily W RoysterUnited KingdomBernardo Dominic PROPOSAL
Mayumi F WaycottIndiaStephen Shaw NEGOTIATION
Julie V FigeroaUnited KingdomOnyama Limba QUALIFIED
Aditya E TollnerRussiaAnna Fali QUALIFIED
Aditya Q DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Murillo N RimBrazilAsiya Javayant QUALIFIED
Julie K SaylorsUnited KingdomIoni Bowcher PROPOSAL
Rodrigues G WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Munro N GillianAustraliaXuxue Feng QUALIFIED
Greenwood R ChuiItalyOnyama Limba NEW
Salvatore K CampainAustraliaStephen Shaw UNQUALIFIED
Stacey I GauchoArgentinaBernardo Dominic 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>