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
Leon X OstroskyBrazilElwin Sharvill UNQUALIFIED
Aditya J FigeroaItalyAsiya Javayant QUALIFIED
Clifford S GauchoSpainElwin Sharvill UNQUALIFIED
Salvatore B GauchoUnited KingdomOnyama Limba RENEWAL
Silvio O AmigonArgentinaIvan Magalhaes UNQUALIFIED
Cody L FigeroaSpainIoni Bowcher PROPOSAL
Alejandro I InouyeIndiaIvan Magalhaes QUALIFIED
Darci I NickaGermanyIvan Magalhaes UNQUALIFIED
Costa P NickaUnited KingdomElwin Sharvill QUALIFIED
Cody D SergiUnited KingdomIoni Bowcher NEW
Aruna P RoysterIndiaStephen Shaw NEW
Aditya A PerinFranceIvan Magalhaes NEGOTIATION
Costa C CaudyArgentinaElwin Sharvill PROPOSAL
Chavez T GillianCanadaIvan Magalhaes UNQUALIFIED
Isabel Q DoeSpainIvan Magalhaes NEGOTIATION
Mayumi J RoysterCanadaBernardo Dominic NEW
Greenwood E FlosiCanadaXuxue Feng RENEWAL
Juan I PoquetteSpainAmy Elsner NEGOTIATION
Julie A WhobreyBrazilAsiya Javayant UNQUALIFIED
Maria I StockhamIndiaIoni Bowcher NEGOTIATION
Juan A ButtAustraliaIoni Bowcher PROPOSAL
Darci A MaletGermanyAmy Elsner QUALIFIED
Jones Q NestleUnited KingdomStephen Shaw RENEWAL
Kadeem P FollerJapanBernardo Dominic NEW
David X PoquetteSpainIvan Magalhaes QUALIFIED
Kaitlin C ButtFranceBernardo Dominic UNQUALIFIED
Kaitlin D WieserAustraliaStephen Shaw UNQUALIFIED
Antonio I MaletRussiaBernardo Dominic QUALIFIED
Ricardo D ButtCanadaBernardo Dominic RENEWAL
Kaitlin D GauchoItalyXuxue Feng RENEWAL
Johnson S PoquetteAustraliaAmy Elsner PROPOSAL
Francesco T OstroskyJapanElwin Sharvill NEGOTIATION
Salvatore O InouyeBrazilOnyama Limba UNQUALIFIED
Antonio F GillianCanadaXuxue Feng RENEWAL
Maria U NickaItalyElwin Sharvill NEGOTIATION
Mayumi B VenereCanadaIvan Magalhaes RENEWAL
James X PaprockiUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois A PaprockiItalyAnna Fali UNQUALIFIED
Morrow M MaletFranceXuxue Feng NEW
Ashley N MorascaIndiaAmy Elsner RENEWAL
Julie O CaudyRussiaStephen Shaw QUALIFIED
Julie M VenereFranceBernardo Dominic RENEWAL
Costa F GauchoJapanAmy Elsner RENEWAL
Rodrigues H KolmetzRussiaXuxue Feng QUALIFIED
Claire D SchemmerArgentinaOnyama Limba UNQUALIFIED
Smith P StockhamSpainBernardo Dominic QUALIFIED
Murillo B CaudyJapanStephen Shaw UNQUALIFIED
Maria Y OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Ivar O VocelkaCanadaAmy Elsner RENEWAL
Ashley F PerinUnited KingdomIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Jones X WaycottRussiaXuxue Feng PROPOSAL
Maria V RulapaughSpainAnna Fali RENEWAL
Johnson H FerenczCanadaElwin Sharvill RENEWAL
Morrow L FigeroaCanadaBernardo Dominic RENEWAL
Claire P DilliardCanadaIvan Magalhaes NEW
Murillo P FollerItalyAnna Fali RENEWAL
Morrow R ShinkoSpainIvan Magalhaes QUALIFIED
Ivar D WaycottJapanIvan Magalhaes PROPOSAL
Clifford O FigeroaSpainIvan Magalhaes QUALIFIED
Jennifer G MaletUnited KingdomBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin P FerenczRussia2026-07-15Printing Dimensions QUALIFIED24Onyama Limba
1001Wickens M NestleJapan2026-07-15Buckley Miller Wright RENEWAL34Amy Elsner
1002Stacey Q RoysterJapan2026-07-18Printing Dimensions NEGOTIATION85Onyama Limba
1003Leon K FigeroaFrance2026-07-28King, Christopher A Esq RENEWAL60Stephen Shaw
1004Ricardo G PoquetteJapan2026-08-06Dorl, James J Esq NEW89Onyama Limba
1005Izzy R SergiJapan2026-08-07Chemel, James L Cpa UNQUALIFIED90Ivan Magalhaes
1006Costa W CampainAustralia2026-07-20Rousseaux, Michael Esq QUALIFIED37Asiya Javayant
1007Arvin L WieserJapan2026-07-12Chemel, James L Cpa QUALIFIED17Ivan Magalhaes
1008Emily C SchemmerBrazil2026-07-13Buckley Miller Wright NEW29Stephen Shaw
1009Sinclair F OldroydBrazil2026-07-26Commercial Press UNQUALIFIED29Xuxue Feng
1010Jennifer F MaletUnited Kingdom2026-08-01Commercial Press UNQUALIFIED44Xuxue Feng
1011Tony U DoeUnited Kingdom2026-07-12Rousseaux, Michael Esq UNQUALIFIED51Xuxue Feng
1012Claire W MaletJapan2026-07-14Morlong Associates PROPOSAL76Xuxue Feng
1013Izzy U CampainRussia2026-08-03Feiner Bros UNQUALIFIED92Onyama Limba
1014Mayumi U WaycottBrazil2026-07-10Commercial Press NEGOTIATION12Xuxue Feng
1015Arvin X WhobreySpain2026-08-01Commercial Press RENEWAL7Elwin Sharvill
1016Jennifer G SlusarskiUnited Kingdom2026-07-19Buckley Miller Wright UNQUALIFIED6Ivan Magalhaes
1017Julie I CampainArgentina2026-07-24Benton, John B Jr NEGOTIATION17Ioni Bowcher
1018Aditya D SaylorsUnited Kingdom2026-08-06Printing Dimensions NEW38Ioni Bowcher
1019Maria T InouyeArgentina2026-07-28Chanay, Jeffrey A Esq RENEWAL37Elwin Sharvill
1020Isabel P FerenczAustralia2026-07-29Feltz Printing Service QUALIFIED98Bernardo Dominic
1021Octavia C BologniaRussia2026-07-24Truhlar And Truhlar Attys PROPOSAL26Amy Elsner
1022Isabel O WieserSpain2026-07-31Rangoni Of Florence NEW68Asiya Javayant
1023Julie F SchemmerUnited Kingdom2026-07-10Chapman, Ross E Esq NEGOTIATION80Amy Elsner
1024Maria H OstroskyJapan2026-08-07Rousseaux, Michael Esq NEGOTIATION31Xuxue Feng
1025Faith L FigeroaItaly2026-08-07Rangoni Of Florence NEW46Anna Fali
1026Faith U FollerItaly2026-07-29Buckley Miller Wright PROPOSAL16Ivan Magalhaes
1027Johnson G WaycottJapan2026-07-13Morlong Associates NEW53Bernardo Dominic
1028Isabel V MorascaIndia2026-07-26Printing Dimensions NEW67Ivan Magalhaes
1029Mujtaba M ShinkoArgentina2026-07-20Feltz Printing Service PROPOSAL87Xuxue Feng
1030Aruna U AlbaresBrazil2026-07-23King, Christopher A Esq NEW61Ioni Bowcher
1031Mayumi W WaycottGermany2026-07-26King, Christopher A Esq NEW81Onyama Limba
1032Wickens P RoysterFrance2026-07-22Rangoni Of Florence NEGOTIATION17Ioni Bowcher
1033James U DarakjyAustralia2026-08-05Dorl, James J Esq QUALIFIED4Anna Fali
1034Leja B SlusarskiAustralia2026-07-13Chanay, Jeffrey A Esq QUALIFIED91Amy Elsner
1035Jones N WaycottUnited Kingdom2026-07-25Benton, John B Jr QUALIFIED19Ioni Bowcher
1036Sinclair P SergiArgentina2026-07-19Morlong Associates NEW56Amy Elsner
1037Wickens N RulapaughCanada2026-07-14Benton, John B Jr UNQUALIFIED50Ioni Bowcher
1038Faith D WieserBrazil2026-08-06Buckley Miller Wright UNQUALIFIED19Ivan Magalhaes
1039Alejandro I BologniaSpain2026-07-11Truhlar And Truhlar Attys NEGOTIATION44Stephen Shaw
1040Jones V AmigonAustralia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED35Ioni Bowcher
1041Smith Z GlickFrance2026-07-18Truhlar And Truhlar Attys NEW6Xuxue Feng
1042Jennifer X SergiAustralia2026-07-20King, Christopher A Esq RENEWAL15Bernardo Dominic
1043Morrow N MaletBrazil2026-07-24Chemel, James L Cpa NEGOTIATION36Xuxue Feng
1044Kadeem V IturbideIndia2026-07-16King, Christopher A Esq QUALIFIED29Stephen Shaw
1045Maisha V DarakjyCanada2026-07-18Feiner Bros NEGOTIATION39Anna Fali
1046Wickens D GillianIndia2026-08-06Rangoni Of Florence UNQUALIFIED0Ivan Magalhaes
1047Smith Y FollerUnited Kingdom2026-07-18Morlong Associates PROPOSAL16Anna Fali
1048Maisha Z VenereCanada2026-07-19Commercial Press UNQUALIFIED56Asiya Javayant
1049Murillo J MarrierItaly2026-07-17Feiner Bros NEW21Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens N WaycottGermanyAsiya Javayant NEGOTIATION
Jefferson F KuskoItalyIvan Magalhaes RENEWAL
Faith E TollnerSpainAsiya Javayant PROPOSAL
Greenwood B ButtSpainAsiya Javayant PROPOSAL
David E MacleadSpainAnna Fali RENEWAL
Tony G DilliardCanadaElwin Sharvill QUALIFIED
Misaki G CaldareraCanadaStephen Shaw RENEWAL
Maria U GarufiAustraliaXuxue Feng NEW
Rodrigues F RutaIndiaAsiya Javayant UNQUALIFIED
David K VocelkaIndiaBernardo Dominic NEGOTIATION
Stacey N IturbideSpainIoni Bowcher RENEWAL
Kaitlin K TollnerRussiaElwin Sharvill QUALIFIED
Cody V BologniaIndiaBernardo Dominic RENEWAL
Cody E KuskoBrazilAsiya Javayant QUALIFIED
Ivar U PerinJapanAsiya Javayant QUALIFIED
Isabel L OldroydItalyBernardo Dominic PROPOSAL
David W GlickCanadaIoni Bowcher NEW
Aruna D StockhamSpainBernardo Dominic QUALIFIED
Maisha G GauchoItalyElwin Sharvill UNQUALIFIED
Ivar S DoeArgentinaAnna Fali PROPOSAL
Munro F VocelkaBrazilElwin Sharvill NEW
Johnson L OstroskyRussiaBernardo Dominic NEGOTIATION
Alejandro A SlusarskiJapanBernardo Dominic NEW
Silvio W ButtRussiaXuxue Feng NEGOTIATION
Juan C TollnerRussiaStephen Shaw QUALIFIED
Smith P ButtArgentinaAsiya Javayant RENEWAL
Leja G RimUnited KingdomAmy Elsner QUALIFIED
Octavia Y CampainIndiaIvan Magalhaes UNQUALIFIED
Johnson I InouyeIndiaStephen Shaw PROPOSAL
Costa B FollerCanadaXuxue Feng NEGOTIATION
Leja J WieserIndiaXuxue Feng PROPOSAL
Mayumi K NickaJapanAmy Elsner PROPOSAL
Misaki Y RoysterFranceBernardo Dominic PROPOSAL
Misaki X NickaCanadaStephen Shaw UNQUALIFIED
Jeanfrancois E SaylorsArgentinaIvan Magalhaes RENEWAL
Deepesh T VocelkaItalyIvan Magalhaes NEGOTIATION
Deepesh K KuskoFranceXuxue Feng RENEWAL
Aruna W SergiCanadaStephen Shaw PROPOSAL
Tony R SchemmerFranceIoni Bowcher PROPOSAL
Izzy U MorascaBrazilOnyama Limba UNQUALIFIED
Murillo G StensethJapanOnyama Limba RENEWAL
Rodrigues A VenereRussiaAsiya Javayant QUALIFIED
Ashley K FollerUnited KingdomOnyama Limba RENEWAL
Murillo B OldroydFranceAsiya Javayant QUALIFIED
Adams F KolmetzSpainAnna Fali NEGOTIATION
Smith K RulapaughIndiaAmy Elsner QUALIFIED
Darci T OldroydBrazilOnyama Limba NEGOTIATION
Julie F SchemmerRussiaElwin Sharvill QUALIFIED
Jeanfrancois K SaylorsArgentinaElwin Sharvill NEGOTIATION
Antonio N SlusarskiIndiaAnna Fali QUALIFIED
Frozen Columns
Name
Wickens X Garufi
Arvin H Perin
James L Nestle
Maisha C Chui
Leja K Whobrey
Greenwood R Bolognia
Clifford L Poquette
Silvio K Gaucho
Octavia V Inouye
Juan S Malet
Smith Q Butt
Stacey E Stenseth
Wickens E Ferencz
Rodrigues J Marrier
Morrow D Nestle
Emily H Figeroa
Tony R Ostrosky
Maria I Gaucho
Nicolas E Maclead
Murillo A Gaucho
Izzy E Whobrey
Munro G Oldroyd
Clifford A Chui
Jones E Kusko
Salvatore T Amigon
Mujtaba X Inouye
Silvio M Doe
Nicolas B Whobrey
Octavia S Doe
Jefferson N Shinko
Wickens T Iturbide
Juan Q Royster
Nicolas Z Doe
Adams Q Chui
Morrow Q Kusko
Kadeem A Waycott
Jones P Oldroyd
Stacey D Gillian
Francesco U Perin
Sinclair C Marrier
Juan Y Briddick
James J Slusarski
Johnson W Shinko
Maria C Oldroyd
Kaitlin N Iturbide
Jeanfrancois B Dilliard
Kadeem W Caldarera
Aika N Albares
Leon P Rim
Mujtaba Q Inouye
IdCountryDate
1000Italy2026-08-01
1001Russia2026-07-24
1002Argentina2026-07-20
1003Brazil2026-07-22
1004Spain2026-07-19
1005Germany2026-07-31
1006Russia2026-08-06
1007France2026-07-21
1008Japan2026-07-11
1009Canada2026-07-24
1010France2026-07-29
1011Australia2026-07-19
1012Australia2026-07-09
1013India2026-07-27
1014Japan2026-07-17
1015Germany2026-07-09
1016Australia2026-08-05
1017United Kingdom2026-08-07
1018France2026-08-03
1019Germany2026-07-26
1020Argentina2026-07-18
1021United Kingdom2026-07-25
1022United Kingdom2026-07-17
1023Brazil2026-07-09
1024Spain2026-07-24
1025Spain2026-07-09
1026Brazil2026-07-20
1027France2026-07-11
1028Brazil2026-08-06
1029Russia2026-07-26
1030Spain2026-08-02
1031Japan2026-07-18
1032India2026-07-17
1033Italy2026-07-17
1034France2026-07-22
1035United Kingdom2026-07-17
1036France2026-07-30
1037Australia2026-07-27
1038Australia2026-07-12
1039Germany2026-07-28
1040Spain2026-07-09
1041Italy2026-07-17
1042India2026-08-03
1043France2026-08-03
1044France2026-07-14
1045Japan2026-07-14
1046United Kingdom2026-08-05
1047United Kingdom2026-07-13
1048Italy2026-07-18
1049United Kingdom2026-07-24

On-Demand Data

NameIdCountryDate
Leja Q Bolognia1000Brazil2026-07-25
Kadeem F Paprocki1001Canada2026-07-19
Mujtaba C Rim1002Canada2026-08-07
Aika L Gaucho1003India2026-08-07
Chavez X Kusko1004France2026-07-21
Claire G Albares1005Germany2026-08-07
James K Iturbide1006Russia2026-07-14
Clifford W Campain1007Germany2026-07-21
Cody D Amigon1008Germany2026-07-26
Maria L Dilliard1009Spain2026-08-01
Mujtaba R Darakjy1010Argentina2026-07-27
Emily I Darakjy1011Canada2026-07-28
Rodrigues L Vocelka1012Japan2026-07-31
Chavez N Bowley1013United Kingdom2026-07-15
Claire B Waycott1014United Kingdom2026-07-15
Darci H Vocelka1015Italy2026-07-25
Juan X Rim1016Japan2026-07-21
Maisha I Ferencz1017Russia2026-07-26
Jeanfrancois O Glick1018Italy2026-08-06
David J Malet1019United Kingdom2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues F CaudyUnited KingdomAnna Fali RENEWAL
Aditya L RutaCanadaIvan Magalhaes NEGOTIATION
Smith N SaylorsRussiaOnyama Limba UNQUALIFIED
Ivar P KolmetzAustraliaAsiya Javayant NEGOTIATION
Maisha C FollerArgentinaStephen Shaw RENEWAL
Mayumi Y TollnerRussiaElwin Sharvill NEGOTIATION
Ashley A SergiAustraliaOnyama Limba NEW
Cody D DarakjyGermanyAsiya Javayant UNQUALIFIED
Clifford Y PaprockiBrazilIvan Magalhaes UNQUALIFIED
Leja C GlickFranceIvan Magalhaes PROPOSAL
Jefferson S MarrierAustraliaOnyama Limba NEW
Costa U InouyeIndiaOnyama Limba NEGOTIATION
Misaki R PerinItalyAsiya Javayant NEGOTIATION
Tony G KolmetzGermanyAsiya Javayant QUALIFIED
Aika W DilliardCanadaBernardo Dominic RENEWAL
Mayumi E GarufiFranceIoni Bowcher RENEWAL
Francesco P SchemmerItalyElwin Sharvill UNQUALIFIED
Alejandro N KolmetzItalyXuxue Feng NEGOTIATION
Faith W InouyeItalyOnyama Limba PROPOSAL
Costa J TollnerRussiaIoni Bowcher NEW
Misaki X DarakjyJapanIoni Bowcher RENEWAL
Jefferson E DarakjyIndiaIvan Magalhaes UNQUALIFIED
Wickens J KuskoRussiaElwin Sharvill NEGOTIATION
Stacey R InouyeArgentinaAmy Elsner QUALIFIED
Stacey Y NickaJapanStephen Shaw RENEWAL
Johnson X MarrierRussiaXuxue Feng UNQUALIFIED
Julie B InouyeFranceStephen Shaw NEW
Greenwood G FigeroaBrazilStephen Shaw NEW
Isabel Z GauchoUnited KingdomAmy Elsner QUALIFIED
Leja X RutaBrazilElwin Sharvill UNQUALIFIED
Sinclair G KolmetzAustraliaOnyama Limba UNQUALIFIED
Murillo D AmigonItalyElwin Sharvill NEGOTIATION
Mujtaba T CampainIndiaAnna Fali UNQUALIFIED
Clifford P VenereGermanyAnna Fali UNQUALIFIED
Jennifer A WhobreyArgentinaAsiya Javayant RENEWAL
Smith Z VocelkaArgentinaIoni Bowcher RENEWAL
Wickens F BriddickAustraliaIvan Magalhaes QUALIFIED
Jennifer S TollnerSpainXuxue Feng NEGOTIATION
Izzy T OstroskyFranceXuxue Feng NEW
Jones I GauchoFranceAsiya Javayant 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>