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
Arvin Z WhobreyItalyStephen Shaw NEGOTIATION
Morrow W GarufiRussiaAsiya Javayant PROPOSAL
Ivar K SaylorsAustraliaAsiya Javayant UNQUALIFIED
Octavia A DarakjyIndiaStephen Shaw QUALIFIED
Emily K GarufiBrazilStephen Shaw QUALIFIED
Jeanfrancois G MorascaFranceOnyama Limba RENEWAL
Claire B MorascaJapanAmy Elsner QUALIFIED
Leon S SchemmerJapanElwin Sharvill NEGOTIATION
Faith T BriddickSpainAmy Elsner NEGOTIATION
Jefferson L SchemmerCanadaBernardo Dominic RENEWAL
Deepesh T StensethArgentinaStephen Shaw NEGOTIATION
Smith B GillianItalyXuxue Feng UNQUALIFIED
Alejandro I CampainRussiaBernardo Dominic RENEWAL
Silvio M VenereCanadaBernardo Dominic RENEWAL
Leja K OstroskyItalyAsiya Javayant QUALIFIED
Isabel H OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Nicolas L BologniaItalyIoni Bowcher PROPOSAL
Costa I OldroydSpainElwin Sharvill NEW
Isabel S MorascaCanadaStephen Shaw NEW
Arvin K OstroskyAustraliaXuxue Feng RENEWAL
Arvin J MorascaCanadaAnna Fali NEW
Ricardo W CampainAustraliaIvan Magalhaes NEGOTIATION
Adams P MorascaSpainAsiya Javayant UNQUALIFIED
Wickens X CaudyJapanStephen Shaw UNQUALIFIED
Aika W RimFranceStephen Shaw RENEWAL
Francesco Z OstroskyGermanyBernardo Dominic UNQUALIFIED
Octavia Q GauchoGermanyIvan Magalhaes NEGOTIATION
Mujtaba Q PoquetteIndiaOnyama Limba RENEWAL
Nicolas Y StockhamUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois H KuskoCanadaElwin Sharvill NEGOTIATION
Francesco F VocelkaAustraliaBernardo Dominic RENEWAL
Maria F ChuiFranceIoni Bowcher QUALIFIED
Deepesh P CaldareraSpainIvan Magalhaes NEGOTIATION
David X RoysterItalyElwin Sharvill NEGOTIATION
Leon U RutaItalyAnna Fali QUALIFIED
Clifford Z PaprockiUnited KingdomElwin Sharvill RENEWAL
Emily X StockhamRussiaStephen Shaw PROPOSAL
Aika J BologniaCanadaStephen Shaw PROPOSAL
Wickens H BowleyArgentinaIoni Bowcher UNQUALIFIED
Rodrigues Y GarufiAustraliaBernardo Dominic NEW
Izzy L FollerItalyOnyama Limba NEGOTIATION
Jefferson U SchemmerBrazilAsiya Javayant NEW
Sinclair G PerinFranceElwin Sharvill RENEWAL
Stacey A ShinkoIndiaAsiya Javayant NEGOTIATION
Murillo R StockhamAustraliaOnyama Limba QUALIFIED
Leon T KolmetzGermanyIvan Magalhaes UNQUALIFIED
Jefferson P PaprockiRussiaStephen Shaw UNQUALIFIED
Sinclair R MorascaFranceBernardo Dominic UNQUALIFIED
Kadeem H KolmetzIndiaOnyama Limba PROPOSAL
Misaki B ShinkoRussiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Octavia T AlbaresCanadaIvan Magalhaes UNQUALIFIED
Izzy G VocelkaBrazilStephen Shaw NEGOTIATION
Johnson O WhobreyArgentinaAnna Fali NEGOTIATION
Mayumi E RutaIndiaOnyama Limba PROPOSAL
Arvin A SaylorsJapanStephen Shaw RENEWAL
Jeanfrancois A FigeroaArgentinaAmy Elsner UNQUALIFIED
Isabel Q NickaJapanAmy Elsner NEGOTIATION
Alejandro X CampainIndiaAmy Elsner QUALIFIED
Ashley P PaprockiGermanyXuxue Feng RENEWAL
Arvin A ChuiGermanyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez V ShinkoBrazil2026-06-27Rangoni Of Florence NEW70Ivan Magalhaes
1001Jefferson B FlosiUnited Kingdom2026-06-09Buckley Miller Wright NEW16Amy Elsner
1002Costa B GarufiJapan2026-06-10Benton, John B Jr QUALIFIED13Asiya Javayant
1003Jennifer L PoquetteFrance2026-06-05Dorl, James J Esq QUALIFIED83Ivan Magalhaes
1004Alejandro R RimUnited Kingdom2026-06-19King, Christopher A Esq QUALIFIED36Xuxue Feng
1005Murillo B InouyeAustralia2026-06-26Buckley Miller Wright PROPOSAL73Asiya Javayant
1006Mujtaba S FigeroaRussia2026-06-10Rangoni Of Florence NEGOTIATION36Bernardo Dominic
1007Tony A WieserItaly2026-06-25Chemel, James L Cpa NEGOTIATION36Anna Fali
1008Aika P InouyeAustralia2026-06-17Rangoni Of Florence RENEWAL15Ioni Bowcher
1009Morrow H OldroydCanada2026-06-11Feiner Bros UNQUALIFIED22Elwin Sharvill
1010Mayumi V BriddickUnited Kingdom2026-06-23Dorl, James J Esq RENEWAL61Xuxue Feng
1011James Z FerenczRussia2026-06-21Chanay, Jeffrey A Esq RENEWAL90Ivan Magalhaes
1012Smith Y KolmetzSpain2026-06-05Buckley Miller Wright NEW20Xuxue Feng
1013Jefferson U DoeSpain2026-06-17Morlong Associates NEGOTIATION41Ioni Bowcher
1014Leja I VocelkaArgentina2026-06-09Chanay, Jeffrey A Esq RENEWAL73Ioni Bowcher
1015Jones K SaylorsFrance2026-06-24Benton, John B Jr RENEWAL57Onyama Limba
1016Adams L OldroydSpain2026-06-02Chanay, Jeffrey A Esq QUALIFIED91Bernardo Dominic
1017Munro X StensethCanada2026-06-29Benton, John B Jr RENEWAL51Asiya Javayant
1018Arvin Y GarufiRussia2026-06-21Feltz Printing Service NEGOTIATION3Amy Elsner
1019Kadeem W RoysterGermany2026-06-21King, Christopher A Esq NEGOTIATION57Stephen Shaw
1020Smith X MaletCanada2026-06-13Benton, John B Jr UNQUALIFIED31Amy Elsner
1021Maria A MaletItaly2026-06-26Rousseaux, Michael Esq QUALIFIED93Onyama Limba
1022Claire L PerinAustralia2026-06-20Chemel, James L Cpa UNQUALIFIED19Elwin Sharvill
1023Cody T AmigonArgentina2026-06-14Rangoni Of Florence NEW64Amy Elsner
1024Aruna F FerenczFrance2026-06-26King, Christopher A Esq NEW68Elwin Sharvill
1025Aditya V StockhamCanada2026-06-06Rangoni Of Florence RENEWAL16Ivan Magalhaes
1026Greenwood Z WieserRussia2026-06-03Rousseaux, Michael Esq NEW20Onyama Limba
1027Alejandro E RoysterItaly2026-06-11Chemel, James L Cpa UNQUALIFIED13Anna Fali
1028Morrow W DarakjyAustralia2026-06-26Feiner Bros UNQUALIFIED25Asiya Javayant
1029Wickens S NestleGermany2026-06-27Rangoni Of Florence PROPOSAL13Xuxue Feng
1030Ricardo R StockhamBrazil2026-06-25Rangoni Of Florence RENEWAL30Amy Elsner
1031Jones D KuskoIndia2026-06-03Truhlar And Truhlar Attys PROPOSAL79Stephen Shaw
1032Silvio D TollnerAustralia2026-06-06Benton, John B Jr RENEWAL12Onyama Limba
1033Smith X ButtUnited Kingdom2026-06-17Chemel, James L Cpa NEGOTIATION41Onyama Limba
1034Clifford F MorascaRussia2026-06-23Chapman, Ross E Esq RENEWAL77Stephen Shaw
1035Murillo Z IturbideRussia2026-06-20Rangoni Of Florence RENEWAL89Xuxue Feng
1036Smith S ShinkoUnited Kingdom2026-06-02Commercial Press NEGOTIATION65Ivan Magalhaes
1037Aditya F RulapaughRussia2026-06-23Truhlar And Truhlar Attys UNQUALIFIED26Elwin Sharvill
1038Maisha Q FigeroaAustralia2026-06-16Printing Dimensions NEGOTIATION4Asiya Javayant
1039Costa F InouyeSpain2026-06-10Chapman, Ross E Esq NEW51Anna Fali
1040Salvatore F DarakjyUnited Kingdom2026-06-13Rangoni Of Florence NEGOTIATION71Stephen Shaw
1041Deepesh I MorascaSpain2026-06-29Buckley Miller Wright RENEWAL50Xuxue Feng
1042Ashley C MacleadFrance2026-06-21Commercial Press NEW84Ioni Bowcher
1043Maisha R PoquetteBrazil2026-06-06Rangoni Of Florence PROPOSAL46Asiya Javayant
1044Tony M AlbaresArgentina2026-06-02Printing Dimensions QUALIFIED75Onyama Limba
1045Ashley C ChuiArgentina2026-06-26Feiner Bros PROPOSAL97Anna Fali
1046Mayumi X AmigonSpain2026-06-21Printing Dimensions NEGOTIATION25Ivan Magalhaes
1047Leja P WhobreySpain2026-06-14Benton, John B Jr NEW98Stephen Shaw
1048Arvin G ChuiSpain2026-06-02Printing Dimensions NEW49Ivan Magalhaes
1049Kadeem C MarrierSpain2026-06-02Commercial Press NEW93Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jefferson A MaletJapanAnna Fali NEW
Isabel V DoeItalyAnna Fali NEGOTIATION
Deepesh T CampainJapanAmy Elsner UNQUALIFIED
Jeanfrancois F PoquetteBrazilBernardo Dominic NEGOTIATION
Clifford G StensethAustraliaStephen Shaw NEW
Clifford P GauchoAustraliaElwin Sharvill PROPOSAL
Ricardo A InouyeSpainBernardo Dominic PROPOSAL
Smith X NestleJapanAsiya Javayant NEGOTIATION
Rodrigues I KolmetzArgentinaStephen Shaw PROPOSAL
Cody T IturbideCanadaIoni Bowcher QUALIFIED
Wickens Z NestleItalyAnna Fali QUALIFIED
Murillo Q ShinkoFranceXuxue Feng RENEWAL
James G SlusarskiGermanyXuxue Feng NEW
Arvin Y RutaUnited KingdomIvan Magalhaes PROPOSAL
Jefferson M PerinRussiaBernardo Dominic RENEWAL
Morrow M SergiJapanIoni Bowcher NEGOTIATION
Leja E RutaSpainAnna Fali UNQUALIFIED
Ivar L PerinJapanAnna Fali UNQUALIFIED
Juan Z WaycottFranceOnyama Limba UNQUALIFIED
Mujtaba C RulapaughCanadaXuxue Feng QUALIFIED
Jones Q GauchoArgentinaStephen Shaw UNQUALIFIED
Maisha B InouyeRussiaIvan Magalhaes NEGOTIATION
Morrow J DoeRussiaIoni Bowcher RENEWAL
Greenwood X WaycottSpainStephen Shaw UNQUALIFIED
Deepesh A StensethRussiaBernardo Dominic QUALIFIED
David U FigeroaGermanyOnyama Limba NEGOTIATION
Ivar R MorascaIndiaStephen Shaw UNQUALIFIED
James C PoquetteArgentinaAsiya Javayant PROPOSAL
Francesco N StockhamSpainStephen Shaw PROPOSAL
Nicolas V SaylorsArgentinaAnna Fali QUALIFIED
Deepesh E NestleUnited KingdomOnyama Limba UNQUALIFIED
Julie Y RimRussiaAsiya Javayant QUALIFIED
James N FerenczRussiaAsiya Javayant NEGOTIATION
Antonio X CaldareraFranceXuxue Feng UNQUALIFIED
Chavez D CaldareraIndiaAnna Fali UNQUALIFIED
Smith N PaprockiUnited KingdomXuxue Feng NEW
Clifford Q MacleadIndiaIoni Bowcher QUALIFIED
Juan L FigeroaRussiaStephen Shaw NEW
Izzy G PoquetteJapanIvan Magalhaes PROPOSAL
Jeanfrancois S IturbideSpainAsiya Javayant UNQUALIFIED
Kaitlin X AmigonSpainElwin Sharvill QUALIFIED
Kaitlin J KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Emily F NestleCanadaOnyama Limba UNQUALIFIED
James G CaldareraJapanOnyama Limba PROPOSAL
Kaitlin M PerinCanadaAnna Fali UNQUALIFIED
Mujtaba N PoquetteSpainOnyama Limba NEW
Jeanfrancois O MorascaBrazilAnna Fali NEW
Salvatore G FigeroaJapanAmy Elsner PROPOSAL
Adams N FerenczCanadaAnna Fali RENEWAL
Claire Z GauchoAustraliaAnna Fali PROPOSAL
Frozen Columns
Name
Sinclair O Slusarski
Misaki I Malet
Antonio K Waycott
Mayumi W Whobrey
Ashley K Wieser
Salvatore G Maclead
Darci A Sergi
Leja C Inouye
Maria U Poquette
Mujtaba U Sergi
Claire D Morasca
Murillo D Ostrosky
Mayumi B Caldarera
Wickens T Darakjy
Mujtaba B Nicka
Izzy L Foller
Jeanfrancois V Schemmer
Antonio V Albares
Nicolas M Morasca
Jeanfrancois Z Darakjy
Ashley P Rulapaugh
Silvio B Perin
Nicolas E Foller
Clifford U Royster
Kaitlin L Inouye
Faith P Ruta
Smith U Shinko
Isabel A Albares
Leon V Marrier
Deepesh V Campain
Aditya W Slusarski
Johnson U Butt
Emily U Saylors
Ivar P Vocelka
David R Garufi
Leja L Schemmer
Maria M Vocelka
Nicolas J Caldarera
Clifford Z Wieser
Faith F Whobrey
Munro H Rim
Mayumi K Wieser
Greenwood X Nestle
Izzy Y Figeroa
Nicolas Q Marrier
Ashley L Inouye
Mayumi W Caudy
Ricardo X Ferencz
Nicolas T Oldroyd
Maria Y Glick
IdCountryDate
1000India2026-06-26
1001Japan2026-06-30
1002Russia2026-06-01
1003India2026-06-15
1004Brazil2026-06-06
1005Australia2026-06-15
1006France2026-06-20
1007Canada2026-06-19
1008Spain2026-06-07
1009Italy2026-06-23
1010France2026-06-26
1011Spain2026-06-09
1012Russia2026-06-05
1013Japan2026-06-27
1014Russia2026-06-05
1015France2026-06-17
1016India2026-06-18
1017Italy2026-06-24
1018Brazil2026-06-16
1019Canada2026-06-11
1020Brazil2026-06-22
1021Germany2026-06-22
1022Italy2026-06-07
1023United Kingdom2026-06-10
1024Australia2026-06-02
1025Italy2026-06-02
1026Argentina2026-06-29
1027United Kingdom2026-06-04
1028Germany2026-06-10
1029Japan2026-06-01
1030Australia2026-06-13
1031Russia2026-06-04
1032Spain2026-06-03
1033India2026-06-16
1034India2026-06-17
1035United Kingdom2026-06-13
1036United Kingdom2026-06-02
1037Japan2026-06-27
1038Japan2026-06-03
1039Russia2026-06-28
1040Argentina2026-06-05
1041Japan2026-06-18
1042Argentina2026-06-27
1043Russia2026-06-23
1044India2026-06-14
1045United Kingdom2026-06-04
1046Canada2026-06-26
1047Japan2026-06-20
1048Argentina2026-06-27
1049Brazil2026-06-11

On-Demand Data

NameIdCountryDate
Greenwood T Bowley1000France2026-06-06
Adams L Malet1001Spain2026-06-13
Faith W Shinko1002Canada2026-06-14
Tony K Garufi1003India2026-06-27
Maisha H Paprocki1004Germany2026-06-05
Misaki U Sergi1005Italy2026-06-14
Murillo E Poquette1006Spain2026-06-13
Ricardo O Poquette1007Canada2026-06-12
David S Bowley1008Australia2026-06-18
Munro T Whobrey1009Spain2026-06-15
Clifford Y Rulapaugh1010Russia2026-06-14
Ivar H Nestle1011Argentina2026-06-01
Leja R Rulapaugh1012Russia2026-06-23
Ivar J Marrier1013Spain2026-06-05
Smith W Caldarera1014Canada2026-06-14
Stacey I Tollner1015Brazil2026-06-20
Wickens Y Ferencz1016Germany2026-06-10
Emily H Marrier1017Australia2026-06-12
Leon V Caudy1018Canada2026-06-18
Adams K Campain1019Australia2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja K BologniaGermanyIoni Bowcher NEW
Smith K StensethAustraliaElwin Sharvill UNQUALIFIED
Izzy Q GlickUnited KingdomXuxue Feng RENEWAL
Maisha Y RoysterBrazilStephen Shaw RENEWAL
Smith H VenereFranceBernardo Dominic UNQUALIFIED
Antonio P FollerRussiaElwin Sharvill RENEWAL
Johnson J PerinGermanyOnyama Limba NEGOTIATION
Leja P MorascaCanadaBernardo Dominic NEGOTIATION
Chavez Z SergiJapanOnyama Limba UNQUALIFIED
Emily F DilliardUnited KingdomXuxue Feng NEGOTIATION
Stacey P DilliardBrazilAnna Fali RENEWAL
Adams R DilliardJapanIvan Magalhaes RENEWAL
Deepesh V GlickCanadaAsiya Javayant NEW
Ashley Q VocelkaAustraliaAnna Fali NEW
Ivar B RimCanadaElwin Sharvill QUALIFIED
Alejandro I SaylorsAustraliaStephen Shaw PROPOSAL
Leja D RulapaughJapanAnna Fali NEGOTIATION
Smith L WhobreyRussiaBernardo Dominic UNQUALIFIED
Jones W BowleyIndiaIvan Magalhaes QUALIFIED
Stacey R SlusarskiArgentinaIoni Bowcher RENEWAL
Sinclair B CaldareraCanadaElwin Sharvill NEGOTIATION
Arvin Q BologniaSpainElwin Sharvill UNQUALIFIED
Silvio Y StensethItalyXuxue Feng RENEWAL
Isabel T DarakjySpainAsiya Javayant RENEWAL
Murillo T GillianArgentinaStephen Shaw QUALIFIED
Darci O StockhamSpainBernardo Dominic NEW
Arvin K VenereUnited KingdomStephen Shaw PROPOSAL
Wickens Y FerenczAustraliaOnyama Limba UNQUALIFIED
Darci U IturbideUnited KingdomElwin Sharvill RENEWAL
Julie D DilliardCanadaIoni Bowcher NEW
Costa A IturbideItalyOnyama Limba UNQUALIFIED
Alejandro E StockhamSpainIoni Bowcher QUALIFIED
Arvin O CaudyRussiaAmy Elsner NEW
Murillo X PerinFranceXuxue Feng QUALIFIED
James G FlosiRussiaIoni Bowcher NEGOTIATION
Chavez M CampainArgentinaElwin Sharvill NEGOTIATION
Adams H GarufiSpainXuxue Feng UNQUALIFIED
Munro X DilliardCanadaOnyama Limba NEW
Faith W ButtJapanAsiya Javayant RENEWAL
Francesco G GlickFranceElwin Sharvill PROPOSAL

<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>