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
Darci D TollnerArgentinaBernardo Dominic RENEWAL
Nicolas G DarakjyUnited KingdomAmy Elsner RENEWAL
Aika H CampainFranceStephen Shaw NEW
Nicolas O VocelkaJapanElwin Sharvill QUALIFIED
Jeanfrancois V OstroskyRussiaElwin Sharvill QUALIFIED
Octavia V FollerGermanyIvan Magalhaes RENEWAL
Munro M DoeAustraliaStephen Shaw NEW
Isabel P SergiIndiaIvan Magalhaes NEGOTIATION
Kadeem I KuskoArgentinaStephen Shaw UNQUALIFIED
Adams P StensethIndiaXuxue Feng NEW
Kadeem D DarakjyBrazilAmy Elsner NEW
Julie Q BowleyItalyElwin Sharvill UNQUALIFIED
Ashley B RoysterRussiaIvan Magalhaes NEGOTIATION
Morrow H VocelkaAustraliaAmy Elsner PROPOSAL
Clifford E MarrierArgentinaXuxue Feng PROPOSAL
Jeanfrancois D AlbaresItalyIoni Bowcher RENEWAL
Silvio W MaletRussiaAsiya Javayant PROPOSAL
Smith U DilliardGermanyIoni Bowcher RENEWAL
Aruna F InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Leja P RimAustraliaIoni Bowcher NEGOTIATION
Aika B FlosiArgentinaAnna Fali PROPOSAL
Izzy E CaldareraFranceBernardo Dominic UNQUALIFIED
Faith W SlusarskiGermanyXuxue Feng RENEWAL
Antonio H GauchoUnited KingdomAnna Fali NEGOTIATION
Izzy E FigeroaRussiaAmy Elsner UNQUALIFIED
Munro B SaylorsAustraliaXuxue Feng NEW
Rodrigues N StockhamGermanyIvan Magalhaes NEGOTIATION
Rodrigues S KolmetzCanadaBernardo Dominic RENEWAL
Francesco Y CaldareraUnited KingdomElwin Sharvill NEW
Mujtaba Q MorascaIndiaIoni Bowcher NEW
Leon C CaudyGermanyOnyama Limba PROPOSAL
Aditya F SergiJapanAmy Elsner RENEWAL
Cody N GlickUnited KingdomAsiya Javayant RENEWAL
Arvin O DoeRussiaAsiya Javayant PROPOSAL
Aika U FerenczRussiaElwin Sharvill NEW
Maria S BologniaCanadaXuxue Feng QUALIFIED
Kaitlin A FlosiIndiaAnna Fali UNQUALIFIED
Clifford R SaylorsSpainXuxue Feng QUALIFIED
Silvio M AmigonSpainAsiya Javayant NEGOTIATION
Salvatore A MaletItalyElwin Sharvill UNQUALIFIED
Sinclair Y WieserGermanyOnyama Limba RENEWAL
Antonio Q MaletAustraliaBernardo Dominic RENEWAL
Deepesh O GlickCanadaAsiya Javayant NEGOTIATION
Deepesh D SlusarskiItalyStephen Shaw QUALIFIED
Julie B FollerItalyXuxue Feng PROPOSAL
Morrow R AlbaresArgentinaAnna Fali PROPOSAL
Claire Y StockhamItalyAmy Elsner NEGOTIATION
Sinclair K FigeroaBrazilElwin Sharvill QUALIFIED
Stacey Z NestleCanadaBernardo Dominic UNQUALIFIED
Ricardo J MacleadFranceIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon W SchemmerItalyBernardo Dominic NEW
Murillo L RulapaughAustraliaBernardo Dominic PROPOSAL
Wickens W BologniaItalyXuxue Feng PROPOSAL
Ricardo R StockhamJapanIoni Bowcher NEW
Isabel X VenereIndiaIoni Bowcher RENEWAL
Aruna Z PerinItalyStephen Shaw NEW
Mujtaba J RoysterIndiaAmy Elsner QUALIFIED
Claire A TollnerJapanAnna Fali QUALIFIED
Maria W FerenczRussiaElwin Sharvill NEGOTIATION
Arvin T GauchoIndiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja S CaldareraAustralia2026-07-21King, Christopher A Esq NEW82Elwin Sharvill
1001Stacey U ShinkoRussia2026-07-21Truhlar And Truhlar Attys NEW11Stephen Shaw
1002Maria Y MacleadSpain2026-07-16Buckley Miller Wright PROPOSAL84Anna Fali
1003Nicolas J GarufiRussia2026-07-09Feiner Bros PROPOSAL52Bernardo Dominic
1004Jeanfrancois X BowleyArgentina2026-08-03Feiner Bros UNQUALIFIED38Ivan Magalhaes
1005Stacey J WieserAustralia2026-07-19Rousseaux, Michael Esq QUALIFIED71Ivan Magalhaes
1006Maria Q VocelkaRussia2026-07-13Truhlar And Truhlar Attys PROPOSAL82Asiya Javayant
1007Johnson D NestleSpain2026-08-05Benton, John B Jr PROPOSAL30Amy Elsner
1008Kaitlin F CampainAustralia2026-07-24Rousseaux, Michael Esq NEW6Anna Fali
1009Leon E BowleyFrance2026-07-26Feltz Printing Service NEGOTIATION8Asiya Javayant
1010Kadeem T FigeroaIndia2026-07-22Dorl, James J Esq NEGOTIATION80Onyama Limba
1011Kaitlin T SaylorsJapan2026-07-12King, Christopher A Esq UNQUALIFIED87Xuxue Feng
1012Wickens B FigeroaGermany2026-07-18Feiner Bros NEW44Onyama Limba
1013Antonio T IturbideRussia2026-08-02Feltz Printing Service NEGOTIATION63Ivan Magalhaes
1014Arvin Y ButtSpain2026-07-27Chanay, Jeffrey A Esq NEW84Amy Elsner
1015Kadeem J GillianItaly2026-07-17Dorl, James J Esq UNQUALIFIED17Asiya Javayant
1016Jennifer T KuskoRussia2026-07-22King, Christopher A Esq NEW61Bernardo Dominic
1017Munro G WaycottAustralia2026-07-09Benton, John B Jr NEW8Onyama Limba
1018Sinclair N DoeUnited Kingdom2026-07-22Buckley Miller Wright QUALIFIED55Xuxue Feng
1019Costa G AlbaresRussia2026-07-20Chanay, Jeffrey A Esq RENEWAL36Stephen Shaw
1020Aruna T PoquetteJapan2026-07-25Morlong Associates NEGOTIATION45Anna Fali
1021Jeanfrancois U MarrierAustralia2026-07-18Feiner Bros QUALIFIED32Elwin Sharvill
1022Munro W WhobreyUnited Kingdom2026-07-20Chanay, Jeffrey A Esq NEGOTIATION22Ioni Bowcher
1023Misaki M ButtIndia2026-08-06Rangoni Of Florence NEW52Anna Fali
1024Ashley B BriddickItaly2026-07-31Rangoni Of Florence NEW85Elwin Sharvill
1025Octavia E MaletSpain2026-07-16Printing Dimensions NEW29Bernardo Dominic
1026Cody M KuskoArgentina2026-08-07Dorl, James J Esq RENEWAL60Xuxue Feng
1027Johnson Y IturbideArgentina2026-07-22Feltz Printing Service RENEWAL64Elwin Sharvill
1028Emily Y MaletRussia2026-07-31Feltz Printing Service NEGOTIATION98Stephen Shaw
1029Morrow Q CampainBrazil2026-07-15King, Christopher A Esq NEGOTIATION55Xuxue Feng
1030Jeanfrancois Q WaycottArgentina2026-07-27Buckley Miller Wright NEGOTIATION61Elwin Sharvill
1031Silvio A NestleBrazil2026-07-09Benton, John B Jr UNQUALIFIED36Stephen Shaw
1032Faith R MaletUnited Kingdom2026-07-17Rousseaux, Michael Esq NEGOTIATION47Anna Fali
1033Wickens O IturbideGermany2026-07-31Truhlar And Truhlar Attys NEW50Ioni Bowcher
1034Maisha M WaycottUnited Kingdom2026-07-12Benton, John B Jr NEGOTIATION49Bernardo Dominic
1035Aditya F AmigonArgentina2026-07-30Commercial Press NEGOTIATION37Ioni Bowcher
1036Rodrigues L ShinkoFrance2026-07-29Chanay, Jeffrey A Esq RENEWAL6Asiya Javayant
1037Julie C VocelkaBrazil2026-07-17Buckley Miller Wright UNQUALIFIED60Anna Fali
1038Aditya Z RimArgentina2026-07-13Chapman, Ross E Esq NEGOTIATION31Xuxue Feng
1039Adams Q PerinCanada2026-08-01Feltz Printing Service NEW48Asiya Javayant
1040Johnson D CaldareraBrazil2026-08-04Morlong Associates NEW48Ioni Bowcher
1041Costa J BowleyAustralia2026-07-11Feltz Printing Service NEW85Elwin Sharvill
1042Cody J NestleUnited Kingdom2026-07-21Buckley Miller Wright RENEWAL61Anna Fali
1043Deepesh U GlickUnited Kingdom2026-07-16Chemel, James L Cpa QUALIFIED3Anna Fali
1044Stacey O PoquetteJapan2026-07-24Rangoni Of Florence UNQUALIFIED77Onyama Limba
1045Francesco A KuskoSpain2026-07-25Morlong Associates NEGOTIATION10Bernardo Dominic
1046Greenwood N StensethFrance2026-07-27Buckley Miller Wright NEW13Ioni Bowcher
1047Leon C KuskoJapan2026-08-04Dorl, James J Esq NEGOTIATION74Xuxue Feng
1048Emily U AlbaresArgentina2026-07-12Buckley Miller Wright NEW72Onyama Limba
1049Silvio C ButtBrazil2026-08-03Benton, John B Jr NEW13Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kadeem J PoquetteSpainOnyama Limba UNQUALIFIED
Darci U DarakjyRussiaIvan Magalhaes NEW
Costa K FerenczGermanyXuxue Feng QUALIFIED
Salvatore S DilliardGermanyIoni Bowcher RENEWAL
Rodrigues L TollnerUnited KingdomXuxue Feng UNQUALIFIED
David Y StensethArgentinaElwin Sharvill NEW
Kaitlin R KolmetzCanadaIvan Magalhaes NEW
Faith Z PerinArgentinaAnna Fali QUALIFIED
Rodrigues E StensethUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba Q BriddickItalyElwin Sharvill NEW
James I PerinJapanStephen Shaw UNQUALIFIED
Kadeem I SergiArgentinaIoni Bowcher NEW
Mujtaba T FlosiRussiaXuxue Feng PROPOSAL
Maria M SlusarskiArgentinaAsiya Javayant NEGOTIATION
Octavia D VenereIndiaStephen Shaw NEGOTIATION
Leon Z NickaArgentinaOnyama Limba PROPOSAL
Misaki U FollerUnited KingdomStephen Shaw PROPOSAL
Izzy X KuskoGermanyIvan Magalhaes PROPOSAL
Leja I BowleyItalyOnyama Limba RENEWAL
Johnson E GillianFranceOnyama Limba QUALIFIED
Izzy F MacleadCanadaAnna Fali QUALIFIED
Isabel M IturbideItalyOnyama Limba NEGOTIATION
Silvio J MacleadUnited KingdomStephen Shaw NEGOTIATION
Ivar K BriddickJapanBernardo Dominic NEGOTIATION
Antonio M FlosiSpainBernardo Dominic UNQUALIFIED
Izzy K ChuiFranceIvan Magalhaes RENEWAL
Stacey H KuskoSpainElwin Sharvill QUALIFIED
Leon W MorascaBrazilStephen Shaw UNQUALIFIED
James O MorascaAustraliaAnna Fali NEW
Sinclair X MacleadIndiaElwin Sharvill QUALIFIED
Isabel S WaycottAustraliaAmy Elsner PROPOSAL
Octavia M MaletArgentinaStephen Shaw PROPOSAL
Mayumi K WhobreyFranceIvan Magalhaes UNQUALIFIED
Salvatore A DarakjyIndiaXuxue Feng UNQUALIFIED
Wickens Y OldroydSpainAsiya Javayant QUALIFIED
Jennifer X WaycottRussiaAmy Elsner PROPOSAL
Kaitlin M WieserJapanOnyama Limba QUALIFIED
Kaitlin D AlbaresIndiaElwin Sharvill RENEWAL
Izzy N AmigonGermanyAsiya Javayant UNQUALIFIED
Leon J GlickArgentinaAsiya Javayant QUALIFIED
Murillo P DarakjyIndiaOnyama Limba RENEWAL
Tony Z DoeArgentinaBernardo Dominic RENEWAL
Stacey G ShinkoGermanyIoni Bowcher PROPOSAL
Salvatore P BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Costa B DilliardIndiaStephen Shaw PROPOSAL
Maisha X AmigonIndiaAmy Elsner PROPOSAL
Costa U GlickGermanyElwin Sharvill UNQUALIFIED
Jennifer T PaprockiIndiaElwin Sharvill RENEWAL
Johnson M WieserGermanyAnna Fali PROPOSAL
Maria O InouyeJapanElwin Sharvill RENEWAL
Frozen Columns
Name
Adams E Butt
Morrow A Doe
Tony H Figeroa
Jennifer P Morasca
Aruna U Perin
Ivar G Garufi
Smith L Nestle
Arvin I Marrier
Salvatore T Doe
David B Saylors
Arvin C Ostrosky
Isabel O Wieser
Izzy S Whobrey
Emily U Albares
Ashley U Stockham
Claire E Schemmer
Darci P Stockham
Adams W Royster
Deepesh H Kolmetz
Jones N Stenseth
Salvatore T Stenseth
Aditya R Kolmetz
Cody X Morasca
Leja X Chui
Rodrigues Y Kusko
Tony D Oldroyd
Alejandro V Morasca
Salvatore B Iturbide
Arvin N Darakjy
Darci P Kolmetz
Mayumi W Stenseth
Clifford B Iturbide
Mayumi R Saylors
Aditya T Stenseth
Jeanfrancois Z Paprocki
Clifford F Malet
Jeanfrancois A Paprocki
Wickens Q Darakjy
Isabel X Darakjy
Rodrigues D Darakjy
Clifford E Rulapaugh
Smith D Gillian
Misaki O Schemmer
Chavez D Caldarera
Juan K Perin
Octavia I Iturbide
Emily H Caudy
Mujtaba Y Garufi
Ricardo F Waycott
Mujtaba Y Wieser
IdCountryDate
1000United Kingdom2026-07-23
1001Australia2026-07-31
1002France2026-07-12
1003Japan2026-07-28
1004Italy2026-07-29
1005Russia2026-08-06
1006Spain2026-07-25
1007Spain2026-07-14
1008Brazil2026-08-01
1009France2026-07-20
1010Argentina2026-07-20
1011Argentina2026-07-20
1012Italy2026-07-15
1013India2026-07-22
1014Italy2026-07-11
1015Spain2026-08-04
1016Argentina2026-08-04
1017France2026-08-07
1018India2026-07-17
1019Italy2026-07-29
1020France2026-07-25
1021Canada2026-07-22
1022Canada2026-08-05
1023France2026-07-30
1024Argentina2026-07-12
1025Canada2026-08-06
1026Russia2026-08-03
1027Australia2026-07-14
1028Japan2026-07-22
1029Italy2026-08-05
1030Australia2026-08-03
1031Argentina2026-08-02
1032Spain2026-07-31
1033United Kingdom2026-07-30
1034France2026-07-31
1035Spain2026-07-29
1036Canada2026-07-27
1037Canada2026-08-07
1038Italy2026-07-17
1039Germany2026-07-18
1040United Kingdom2026-07-26
1041Japan2026-08-01
1042Italy2026-07-29
1043Australia2026-07-23
1044Germany2026-07-14
1045Japan2026-07-31
1046Russia2026-08-02
1047Spain2026-08-05
1048France2026-07-27
1049Japan2026-07-14

On-Demand Data

NameIdCountryDate
Izzy A Bowley1000Canada2026-07-19
Francesco K Foller1001Japan2026-07-31
Johnson C Foller1002United Kingdom2026-08-03
Adams E Royster1003France2026-07-09
Ivar W Rim1004Argentina2026-07-18
Kaitlin E Rulapaugh1005Germany2026-07-31
Maria V Caudy1006Spain2026-07-09
Faith I Sergi1007Spain2026-07-10
Darci X Darakjy1008Brazil2026-08-05
Leja L Glick1009Spain2026-07-29
James V Slusarski1010Brazil2026-07-16
Kadeem Z Malet1011Australia2026-08-02
Jones X Gillian1012Australia2026-08-07
Leon I Garufi1013United Kingdom2026-07-26
Leja F Butt1014Germany2026-07-31
Emily M Morasca1015Argentina2026-07-22
Morrow D Butt1016United Kingdom2026-07-21
Jefferson S Malet1017Russia2026-07-12
Faith P Rulapaugh1018Germany2026-07-11
Sinclair J Bowley1019Australia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh V WaycottFranceBernardo Dominic QUALIFIED
Wickens M OldroydUnited KingdomElwin Sharvill NEGOTIATION
Jennifer M MacleadJapanIoni Bowcher UNQUALIFIED
Jones Q WaycottIndiaXuxue Feng RENEWAL
Octavia Z OstroskyArgentinaElwin Sharvill QUALIFIED
David F WhobreyUnited KingdomOnyama Limba NEGOTIATION
Tony J InouyeCanadaStephen Shaw PROPOSAL
Johnson B MaletSpainOnyama Limba PROPOSAL
Sinclair H FlosiFranceXuxue Feng QUALIFIED
Maria J GarufiArgentinaXuxue Feng UNQUALIFIED
Leja H PaprockiAustraliaElwin Sharvill UNQUALIFIED
Johnson R InouyeArgentinaElwin Sharvill NEGOTIATION
Chavez B RimSpainIvan Magalhaes NEGOTIATION
Adams Y GlickBrazilBernardo Dominic NEGOTIATION
Julie A AmigonUnited KingdomElwin Sharvill RENEWAL
Greenwood T FigeroaRussiaIvan Magalhaes QUALIFIED
Octavia G WieserGermanyAnna Fali UNQUALIFIED
Wickens I IturbideArgentinaAmy Elsner QUALIFIED
Octavia V RimItalyOnyama Limba QUALIFIED
Aruna Y BowleyFranceOnyama Limba PROPOSAL
Stacey B MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues G SchemmerUnited KingdomAmy Elsner RENEWAL
Maisha W CaldareraUnited KingdomIoni Bowcher PROPOSAL
Rodrigues Y ShinkoCanadaAmy Elsner QUALIFIED
Alejandro O FerenczSpainAmy Elsner NEGOTIATION
Jones K SlusarskiJapanIvan Magalhaes RENEWAL
Clifford Y SaylorsGermanyStephen Shaw QUALIFIED
Izzy M FerenczJapanElwin Sharvill QUALIFIED
Alejandro L PoquetteFranceElwin Sharvill RENEWAL
Rodrigues B ButtSpainIoni Bowcher NEW
Julie G IturbideCanadaElwin Sharvill QUALIFIED
Jeanfrancois L KolmetzBrazilBernardo Dominic NEGOTIATION
Rodrigues Q SergiCanadaIvan Magalhaes NEW
Jones E BowleyCanadaElwin Sharvill NEW
Francesco P CampainUnited KingdomStephen Shaw UNQUALIFIED
Stacey Q SlusarskiCanadaIvan Magalhaes QUALIFIED
Ashley T WaycottSpainBernardo Dominic RENEWAL
Chavez E SergiArgentinaOnyama Limba UNQUALIFIED
Leon K MacleadBrazilOnyama Limba QUALIFIED
Murillo N RimUnited KingdomAmy Elsner 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>