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 H RulapaughItalyElwin Sharvill UNQUALIFIED
Alejandro E InouyeFranceAsiya Javayant NEW
Octavia J ShinkoIndiaOnyama Limba PROPOSAL
Ricardo R GarufiItalyOnyama Limba NEW
Leja L FigeroaJapanAnna Fali UNQUALIFIED
Rodrigues W DilliardAustraliaAsiya Javayant UNQUALIFIED
Jefferson W TollnerFranceAnna Fali QUALIFIED
Octavia G DoeBrazilIoni Bowcher PROPOSAL
Salvatore Q WieserIndiaIvan Magalhaes NEGOTIATION
Claire U OstroskySpainAnna Fali QUALIFIED
Wickens U PaprockiSpainOnyama Limba NEGOTIATION
Smith G MorascaFranceBernardo Dominic RENEWAL
Murillo J SlusarskiBrazilXuxue Feng PROPOSAL
James C CampainJapanStephen Shaw UNQUALIFIED
Mujtaba Y TollnerArgentinaAsiya Javayant NEW
Jones K VocelkaCanadaAmy Elsner NEGOTIATION
Mayumi Q KuskoItalyIvan Magalhaes UNQUALIFIED
Juan G SlusarskiRussiaIvan Magalhaes NEGOTIATION
Chavez I AlbaresUnited KingdomElwin Sharvill QUALIFIED
Emily L SlusarskiItalyAnna Fali QUALIFIED
Francesco K RimCanadaAnna Fali QUALIFIED
Mujtaba W OstroskyIndiaIvan Magalhaes RENEWAL
Rodrigues P BowleyCanadaBernardo Dominic NEGOTIATION
Francesco N AmigonAustraliaStephen Shaw NEW
Johnson C PerinSpainAnna Fali RENEWAL
Darci O InouyeCanadaXuxue Feng RENEWAL
James N ChuiArgentinaStephen Shaw UNQUALIFIED
Adams H StockhamIndiaElwin Sharvill RENEWAL
Kaitlin B ShinkoCanadaIvan Magalhaes NEGOTIATION
Jefferson N CaudyGermanyAmy Elsner NEGOTIATION
Greenwood U RutaBrazilStephen Shaw NEGOTIATION
Darci L KuskoArgentinaAmy Elsner QUALIFIED
Claire T CaldareraItalyBernardo Dominic UNQUALIFIED
Greenwood W SlusarskiCanadaBernardo Dominic NEW
Arvin E AlbaresFranceAsiya Javayant NEGOTIATION
Octavia A AlbaresUnited KingdomAmy Elsner NEGOTIATION
James F CampainFranceAmy Elsner QUALIFIED
Stacey E OldroydUnited KingdomStephen Shaw NEW
David L FlosiArgentinaElwin Sharvill NEGOTIATION
Francesco E SlusarskiSpainElwin Sharvill UNQUALIFIED
Jones X FlosiBrazilIvan Magalhaes NEW
Jennifer O MacleadAustraliaXuxue Feng NEGOTIATION
Aruna D PaprockiSpainXuxue Feng RENEWAL
Mujtaba Z KolmetzAustraliaAnna Fali PROPOSAL
Clifford X BologniaBrazilOnyama Limba UNQUALIFIED
James K CaldareraGermanyAmy Elsner QUALIFIED
Maisha K NickaAustraliaIvan Magalhaes QUALIFIED
Sinclair C GlickSpainXuxue Feng QUALIFIED
Munro Y ChuiItalyOnyama Limba NEGOTIATION
Faith E CampainJapanIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi R RutaIndiaIvan Magalhaes RENEWAL
Mayumi Y VenereCanadaAmy Elsner RENEWAL
Stacey P RimFranceBernardo Dominic RENEWAL
Deepesh P ShinkoRussiaIvan Magalhaes NEW
Isabel V GarufiJapanElwin Sharvill UNQUALIFIED
Silvio Z IturbideAustraliaBernardo Dominic QUALIFIED
Smith D FollerBrazilElwin Sharvill PROPOSAL
Ashley V CaldareraFranceElwin Sharvill QUALIFIED
Jefferson D NickaItalyAmy Elsner NEW
Maisha D ShinkoBrazilIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro D NestleBrazil2026-07-02Chemel, James L Cpa NEW57Ivan Magalhaes
1001Mayumi J StensethUnited Kingdom2026-07-01Truhlar And Truhlar Attys QUALIFIED43Stephen Shaw
1002Juan Q CampainIndia2026-06-15Feiner Bros PROPOSAL41Anna Fali
1003Johnson K SchemmerSpain2026-07-02Printing Dimensions NEGOTIATION86Elwin Sharvill
1004Juan N PoquetteBrazil2026-06-27Chanay, Jeffrey A Esq UNQUALIFIED99Xuxue Feng
1005Aruna P RoysterFrance2026-06-06Benton, John B Jr PROPOSAL0Onyama Limba
1006Greenwood J GillianUnited Kingdom2026-06-17Chapman, Ross E Esq UNQUALIFIED89Elwin Sharvill
1007Ashley B FollerFrance2026-06-08Buckley Miller Wright UNQUALIFIED57Onyama Limba
1008Stacey I IturbideItaly2026-06-12Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1009Aditya V WhobreyCanada2026-07-01Truhlar And Truhlar Attys UNQUALIFIED20Amy Elsner
1010Kaitlin A PoquetteIndia2026-06-22Rangoni Of Florence QUALIFIED63Xuxue Feng
1011Aruna G IturbideUnited Kingdom2026-06-24Chanay, Jeffrey A Esq PROPOSAL28Xuxue Feng
1012Maria L CampainGermany2026-06-19Chapman, Ross E Esq QUALIFIED89Amy Elsner
1013Johnson Y OldroydSpain2026-06-16Rousseaux, Michael Esq NEW67Ivan Magalhaes
1014Isabel K SlusarskiUnited Kingdom2026-06-28King, Christopher A Esq PROPOSAL14Bernardo Dominic
1015Nicolas P OstroskyIndia2026-06-15Benton, John B Jr PROPOSAL58Anna Fali
1016Juan S CampainGermany2026-06-19Rangoni Of Florence NEW99Elwin Sharvill
1017Costa U WhobreyRussia2026-06-24Feltz Printing Service PROPOSAL60Onyama Limba
1018Murillo Y BologniaCanada2026-06-24Morlong Associates NEW60Ioni Bowcher
1019Greenwood E NestleItaly2026-06-11Buckley Miller Wright QUALIFIED68Onyama Limba
1020Faith J FerenczRussia2026-06-25Buckley Miller Wright NEW97Ioni Bowcher
1021Morrow Q DarakjyFrance2026-06-15Dorl, James J Esq UNQUALIFIED83Amy Elsner
1022Isabel V IturbideJapan2026-06-29Buckley Miller Wright QUALIFIED54Ivan Magalhaes
1023Misaki Q MaletCanada2026-06-20Commercial Press NEGOTIATION34Bernardo Dominic
1024Nicolas V WaycottIndia2026-06-27Feltz Printing Service UNQUALIFIED29Ivan Magalhaes
1025Chavez N ChuiGermany2026-06-25Commercial Press UNQUALIFIED74Ioni Bowcher
1026Maisha D RulapaughFrance2026-06-16Dorl, James J Esq NEGOTIATION83Asiya Javayant
1027Francesco M MarrierCanada2026-06-10Truhlar And Truhlar Attys QUALIFIED93Stephen Shaw
1028Jefferson R BriddickFrance2026-06-24Feiner Bros QUALIFIED57Onyama Limba
1029Kaitlin T RoysterUnited Kingdom2026-06-04Commercial Press RENEWAL63Stephen Shaw
1030Mujtaba G ChuiFrance2026-06-27Rousseaux, Michael Esq RENEWAL35Stephen Shaw
1031Julie F StockhamSpain2026-06-25King, Christopher A Esq QUALIFIED57Anna Fali
1032Maisha K StockhamGermany2026-06-29Morlong Associates NEGOTIATION15Xuxue Feng
1033Kaitlin J KolmetzItaly2026-06-29Buckley Miller Wright RENEWAL12Elwin Sharvill
1034Maria X PerinBrazil2026-06-27Feiner Bros QUALIFIED69Xuxue Feng
1035Kaitlin X OstroskyArgentina2026-06-18Rangoni Of Florence QUALIFIED71Ioni Bowcher
1036Adams F NestleFrance2026-06-03Rangoni Of Florence PROPOSAL28Stephen Shaw
1037Misaki B MarrierIndia2026-06-12Feltz Printing Service UNQUALIFIED42Ioni Bowcher
1038Clifford B OldroydIndia2026-06-30Rangoni Of Florence PROPOSAL54Elwin Sharvill
1039Greenwood Q RoysterGermany2026-06-17Chapman, Ross E Esq QUALIFIED43Ioni Bowcher
1040Mayumi Z VenereRussia2026-06-05Morlong Associates RENEWAL3Xuxue Feng
1041Stacey Y KolmetzItaly2026-06-05Rangoni Of Florence NEGOTIATION46Ivan Magalhaes
1042Maisha D BowleyItaly2026-06-28Rousseaux, Michael Esq QUALIFIED34Ivan Magalhaes
1043Faith Z RoysterFrance2026-06-06Feiner Bros PROPOSAL79Ioni Bowcher
1044Ivar L NestleArgentina2026-06-05Morlong Associates RENEWAL36Xuxue Feng
1045Leja D BriddickCanada2026-06-26Truhlar And Truhlar Attys NEGOTIATION9Anna Fali
1046Arvin J MaletArgentina2026-06-06Truhlar And Truhlar Attys QUALIFIED55Bernardo Dominic
1047Ivar P MacleadAustralia2026-06-29Chanay, Jeffrey A Esq NEGOTIATION15Elwin Sharvill
1048David T MorascaUnited Kingdom2026-06-21Chanay, Jeffrey A Esq NEGOTIATION5Xuxue Feng
1049Ashley Y ChuiGermany2026-06-22Buckley Miller Wright PROPOSAL72Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mayumi N OldroydJapanBernardo Dominic PROPOSAL
Jefferson C VenereSpainIvan Magalhaes QUALIFIED
Ashley C BowleyArgentinaIvan Magalhaes QUALIFIED
Octavia H GauchoFranceElwin Sharvill NEW
Wickens D CaudyRussiaAnna Fali NEGOTIATION
David F OldroydJapanStephen Shaw PROPOSAL
Sinclair W BowleyJapanAmy Elsner NEW
Leon Y OldroydFranceIoni Bowcher NEGOTIATION
Salvatore A FigeroaItalyElwin Sharvill RENEWAL
Emily N CampainGermanyStephen Shaw NEGOTIATION
Clifford H DarakjyIndiaElwin Sharvill QUALIFIED
Rodrigues W OstroskySpainXuxue Feng QUALIFIED
Leon F SaylorsJapanIvan Magalhaes QUALIFIED
Jennifer X StensethBrazilIoni Bowcher NEW
Octavia Z InouyeFranceXuxue Feng UNQUALIFIED
Mujtaba V CaldareraGermanyBernardo Dominic PROPOSAL
Jefferson K AlbaresCanadaOnyama Limba NEGOTIATION
Sinclair W PerinUnited KingdomAmy Elsner UNQUALIFIED
James V ShinkoGermanyBernardo Dominic QUALIFIED
Mujtaba M AlbaresAustraliaXuxue Feng UNQUALIFIED
Mujtaba A WieserIndiaAnna Fali QUALIFIED
Chavez A FerenczCanadaIoni Bowcher PROPOSAL
Ashley L DoeGermanyBernardo Dominic UNQUALIFIED
Ricardo G MacleadItalyAmy Elsner NEW
David R CampainRussiaAnna Fali QUALIFIED
Leja E StensethUnited KingdomAmy Elsner NEGOTIATION
Maria V ButtFranceElwin Sharvill PROPOSAL
Darci K TollnerSpainXuxue Feng NEGOTIATION
Juan H WieserGermanyElwin Sharvill PROPOSAL
Murillo I PaprockiFranceIvan Magalhaes PROPOSAL
Clifford F RulapaughArgentinaXuxue Feng QUALIFIED
James V GillianIndiaBernardo Dominic RENEWAL
Murillo I RimItalyAnna Fali NEGOTIATION
Juan D OstroskySpainAmy Elsner RENEWAL
Leon B SchemmerSpainIvan Magalhaes NEGOTIATION
Kaitlin Y BowleyFranceXuxue Feng RENEWAL
James L ShinkoGermanyElwin Sharvill NEW
Mayumi L OldroydRussiaAnna Fali PROPOSAL
Munro G BriddickRussiaAsiya Javayant PROPOSAL
Leon U AlbaresBrazilAmy Elsner RENEWAL
Emily J DoeIndiaAsiya Javayant UNQUALIFIED
Rodrigues N WieserUnited KingdomAnna Fali NEGOTIATION
Leja O BologniaItalyAmy Elsner RENEWAL
Emily S NickaRussiaXuxue Feng QUALIFIED
Deepesh B GauchoUnited KingdomIoni Bowcher RENEWAL
Aika A AlbaresJapanIoni Bowcher NEGOTIATION
Costa N MacleadUnited KingdomIoni Bowcher NEGOTIATION
Emily A OstroskyFranceAmy Elsner UNQUALIFIED
Jones P MaletGermanyStephen Shaw NEW
Mujtaba Y PerinSpainStephen Shaw NEGOTIATION
Frozen Columns
Name
Ashley A Bowley
Smith F Waycott
Sinclair P Malet
James A Venere
Alejandro S Vocelka
Deepesh X Amigon
Ricardo I Whobrey
James V Oldroyd
Jennifer P Rim
Juan O Vocelka
Costa X Sergi
Clifford C Rulapaugh
Julie V Ferencz
Johnson E Poquette
Octavia Y Iturbide
Sinclair F Campain
Cody A Malet
Greenwood Z Albares
Aditya N Ostrosky
Aika N Gaucho
Claire B Gillian
Leja U Saylors
Silvio J Figeroa
Leja S Campain
Emily R Perin
Leja C Gaucho
Sinclair H Royster
Munro W Inouye
Tony A Perin
Mujtaba P Maclead
Ricardo C Shinko
Misaki U Rulapaugh
Misaki T Morasca
Julie X Sergi
Tony P Bolognia
Murillo E Gaucho
Ricardo M Iturbide
Chavez K Venere
Leja A Tollner
Jeanfrancois K Glick
Leon Y Albares
Octavia S Glick
Stacey T Caudy
Emily W Kusko
Leja B Maclead
Arvin G Marrier
Maisha F Malet
Isabel Y Bowley
David F Stockham
David M Chui
IdCountryDate
1000Spain2026-06-23
1001Australia2026-06-13
1002Germany2026-06-23
1003Japan2026-07-02
1004Germany2026-06-07
1005Spain2026-07-02
1006France2026-06-20
1007Germany2026-06-13
1008Argentina2026-06-24
1009Canada2026-06-18
1010France2026-06-06
1011Brazil2026-06-26
1012Japan2026-06-06
1013Japan2026-06-05
1014India2026-06-09
1015United Kingdom2026-06-08
1016Germany2026-06-21
1017Argentina2026-06-26
1018Germany2026-06-28
1019France2026-06-05
1020India2026-06-17
1021Italy2026-06-22
1022Argentina2026-06-30
1023Brazil2026-06-24
1024Argentina2026-06-08
1025United Kingdom2026-06-11
1026Argentina2026-06-10
1027Italy2026-06-11
1028United Kingdom2026-06-05
1029United Kingdom2026-06-09
1030Germany2026-06-18
1031Australia2026-06-17
1032Argentina2026-06-05
1033Canada2026-06-25
1034Italy2026-06-08
1035Germany2026-06-10
1036Japan2026-06-13
1037Germany2026-06-13
1038Japan2026-06-22
1039Canada2026-06-25
1040France2026-06-25
1041France2026-06-04
1042Brazil2026-06-14
1043France2026-06-09
1044Canada2026-06-29
1045Brazil2026-06-19
1046Australia2026-06-06
1047Brazil2026-07-02
1048France2026-06-19
1049Australia2026-06-20

On-Demand Data

NameIdCountryDate
Mayumi X Caudy1000Japan2026-06-07
Jefferson A Iturbide1001Japan2026-06-28
Johnson R Bolognia1002France2026-06-15
Salvatore Y Shinko1003Argentina2026-06-28
Aditya B Whobrey1004Japan2026-06-12
Nicolas J Nicka1005Japan2026-07-02
James V Glick1006Russia2026-06-18
Clifford G Venere1007Argentina2026-06-21
Clifford V Vocelka1008Australia2026-06-07
Ivar H Royster1009Argentina2026-06-29
Juan O Shinko1010Brazil2026-06-12
Cody Y Morasca1011United Kingdom2026-06-20
Jennifer W Ostrosky1012Australia2026-06-05
Murillo B Bowley1013Canada2026-06-18
Ricardo L Gaucho1014Brazil2026-07-02
Nicolas M Paprocki1015Australia2026-06-30
Adams F Chui1016Russia2026-06-20
Octavia W Malet1017Japan2026-06-03
Francesco J Rulapaugh1018Germany2026-06-14
Ivar E Stockham1019India2026-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair P PaprockiBrazilBernardo Dominic UNQUALIFIED
Francesco M KolmetzCanadaAnna Fali PROPOSAL
James O CampainJapanOnyama Limba PROPOSAL
Aruna S DilliardArgentinaBernardo Dominic UNQUALIFIED
Aruna N ChuiSpainAmy Elsner UNQUALIFIED
Aditya L FerenczGermanyAmy Elsner NEGOTIATION
Salvatore R MaletCanadaIoni Bowcher UNQUALIFIED
Mujtaba Q FollerArgentinaAmy Elsner NEW
Nicolas B RulapaughRussiaAsiya Javayant NEGOTIATION
Greenwood G StockhamBrazilIvan Magalhaes UNQUALIFIED
Maisha A WaycottSpainStephen Shaw NEGOTIATION
Kaitlin F ChuiRussiaIvan Magalhaes RENEWAL
Morrow A OldroydBrazilStephen Shaw PROPOSAL
Maria D StensethJapanAsiya Javayant UNQUALIFIED
Chavez D SlusarskiSpainAnna Fali QUALIFIED
Alejandro N FerenczUnited KingdomXuxue Feng QUALIFIED
Octavia U BowleyIndiaIoni Bowcher RENEWAL
Aruna E SchemmerRussiaStephen Shaw NEW
Claire O MaletIndiaBernardo Dominic NEW
Izzy R MacleadSpainOnyama Limba PROPOSAL
Silvio N StockhamItalyStephen Shaw UNQUALIFIED
Adams F RulapaughAustraliaAsiya Javayant QUALIFIED
Ricardo B DarakjyCanadaStephen Shaw UNQUALIFIED
Juan X IturbideAustraliaIoni Bowcher NEW
Maisha F RulapaughJapanIoni Bowcher UNQUALIFIED
Tony A DilliardRussiaAmy Elsner NEW
Jennifer T VocelkaArgentinaBernardo Dominic QUALIFIED
Faith B FlosiSpainOnyama Limba UNQUALIFIED
Antonio E FlosiAustraliaStephen Shaw RENEWAL
Leon B FerenczJapanBernardo Dominic QUALIFIED
Juan T SlusarskiCanadaElwin Sharvill PROPOSAL
Jeanfrancois J SergiGermanyStephen Shaw NEGOTIATION
Greenwood O PaprockiSpainAnna Fali UNQUALIFIED
Isabel Q ShinkoItalyBernardo Dominic PROPOSAL
Leja G DarakjySpainOnyama Limba NEW
David A PerinFranceAnna Fali NEW
Silvio M VenereCanadaElwin Sharvill UNQUALIFIED
Leon L BriddickCanadaOnyama Limba RENEWAL
Adams I NestleBrazilStephen Shaw NEGOTIATION
David N ChuiGermanyStephen Shaw 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>