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
Alejandro K ShinkoIndiaIoni Bowcher PROPOSAL
Aika N ShinkoUnited KingdomAmy Elsner UNQUALIFIED
Chavez C DilliardItalyIvan Magalhaes NEGOTIATION
Cody N MaletIndiaAsiya Javayant PROPOSAL
David L MorascaBrazilAnna Fali QUALIFIED
Aditya D IturbideBrazilElwin Sharvill NEW
Murillo F SergiCanadaIoni Bowcher QUALIFIED
Kadeem G NestleIndiaXuxue Feng NEGOTIATION
Wickens Y PoquetteRussiaStephen Shaw PROPOSAL
James G DarakjyBrazilAsiya Javayant UNQUALIFIED
Jennifer B DoeJapanOnyama Limba QUALIFIED
Antonio H WieserGermanyElwin Sharvill RENEWAL
Emily D NestleFranceAsiya Javayant QUALIFIED
Johnson Q ShinkoIndiaAmy Elsner PROPOSAL
Murillo G FollerGermanyAsiya Javayant UNQUALIFIED
Juan S SaylorsIndiaXuxue Feng PROPOSAL
Murillo F CampainJapanAmy Elsner NEW
Sinclair P VocelkaItalyOnyama Limba UNQUALIFIED
Maisha Z FollerSpainXuxue Feng NEW
Antonio X PaprockiItalyXuxue Feng QUALIFIED
Salvatore X WhobreyRussiaElwin Sharvill QUALIFIED
Arvin A OstroskyIndiaOnyama Limba NEW
Tony Y MarrierSpainIvan Magalhaes QUALIFIED
Aika W VenereRussiaStephen Shaw QUALIFIED
Aditya Z FigeroaArgentinaIoni Bowcher RENEWAL
Maisha X DarakjyArgentinaElwin Sharvill NEW
Adams E GlickCanadaIvan Magalhaes PROPOSAL
Johnson Z InouyeGermanyAnna Fali PROPOSAL
Alejandro H FerenczAustraliaElwin Sharvill UNQUALIFIED
Nicolas H SchemmerCanadaIoni Bowcher UNQUALIFIED
Claire D AmigonItalyIvan Magalhaes NEW
Cody P WaycottIndiaBernardo Dominic UNQUALIFIED
Munro J SergiCanadaOnyama Limba NEGOTIATION
Stacey L BriddickGermanyAnna Fali NEGOTIATION
Rodrigues Z KolmetzUnited KingdomAsiya Javayant RENEWAL
Smith D BologniaBrazilBernardo Dominic UNQUALIFIED
David A MaletArgentinaOnyama Limba PROPOSAL
Aika H SlusarskiArgentinaStephen Shaw QUALIFIED
Izzy Y StensethItalyIvan Magalhaes UNQUALIFIED
Wickens R VenereJapanStephen Shaw RENEWAL
Faith Z SergiBrazilIvan Magalhaes PROPOSAL
Salvatore P SchemmerGermanyStephen Shaw PROPOSAL
Julie V MarrierUnited KingdomAnna Fali NEGOTIATION
Faith J VenereCanadaIoni Bowcher NEGOTIATION
Cody Z DoeUnited KingdomBernardo Dominic PROPOSAL
Octavia O MaletArgentinaIoni Bowcher QUALIFIED
Jeanfrancois A MarrierSpainAmy Elsner QUALIFIED
Tony M FerenczItalyIvan Magalhaes PROPOSAL
Salvatore U PerinAustraliaBernardo Dominic NEGOTIATION
Aditya T WhobreyIndiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia P BriddickAustraliaStephen Shaw NEW
Jennifer U DilliardRussiaElwin Sharvill QUALIFIED
Cody E RutaSpainElwin Sharvill UNQUALIFIED
Leja B NickaCanadaAnna Fali NEGOTIATION
Leja R BologniaAustraliaElwin Sharvill NEW
Murillo X SchemmerRussiaIoni Bowcher NEW
Izzy F MarrierFranceBernardo Dominic RENEWAL
James N CampainIndiaIoni Bowcher UNQUALIFIED
Darci H RutaIndiaAsiya Javayant PROPOSAL
Faith Z GauchoRussiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco U BowleyUnited Kingdom2026-07-11Feiner Bros QUALIFIED34Stephen Shaw
1001Adams V AlbaresSpain2026-07-19Commercial Press UNQUALIFIED35Asiya Javayant
1002Misaki N NickaBrazil2026-06-27Dorl, James J Esq UNQUALIFIED81Amy Elsner
1003Leon B StockhamFrance2026-07-10Feltz Printing Service UNQUALIFIED20Ivan Magalhaes
1004Ricardo E DoeFrance2026-07-03Chemel, James L Cpa RENEWAL94Asiya Javayant
1005Aditya J SchemmerRussia2026-07-05Feiner Bros PROPOSAL49Asiya Javayant
1006Julie T FollerArgentina2026-07-03Rangoni Of Florence UNQUALIFIED20Amy Elsner
1007Juan U SlusarskiBrazil2026-07-03Feiner Bros NEW71Amy Elsner
1008Arvin S MacleadAustralia2026-07-08Rangoni Of Florence UNQUALIFIED37Anna Fali
1009Aditya H FerenczUnited Kingdom2026-07-04Dorl, James J Esq UNQUALIFIED58Asiya Javayant
1010Leon Q AlbaresArgentina2026-07-19Chanay, Jeffrey A Esq RENEWAL5Elwin Sharvill
1011Smith V OstroskyGermany2026-07-06Truhlar And Truhlar Attys NEW2Onyama Limba
1012Kaitlin G ShinkoSpain2026-07-15Rousseaux, Michael Esq PROPOSAL9Anna Fali
1013Tony R ButtJapan2026-07-21Chemel, James L Cpa RENEWAL19Ivan Magalhaes
1014Aruna N GarufiJapan2026-06-29Rangoni Of Florence RENEWAL63Elwin Sharvill
1015Alejandro X GlickIndia2026-07-21Benton, John B Jr NEGOTIATION48Bernardo Dominic
1016Smith L GauchoGermany2026-07-19Benton, John B Jr UNQUALIFIED82Ivan Magalhaes
1017Jeanfrancois F BowleySpain2026-07-14Rousseaux, Michael Esq PROPOSAL95Onyama Limba
1018Clifford C RimBrazil2026-06-29Rousseaux, Michael Esq PROPOSAL44Stephen Shaw
1019Jones I CaldareraItaly2026-07-14Chapman, Ross E Esq NEGOTIATION39Ioni Bowcher
1020Kaitlin K KuskoRussia2026-07-20Printing Dimensions QUALIFIED93Bernardo Dominic
1021Jefferson C MaletArgentina2026-07-02Truhlar And Truhlar Attys NEGOTIATION35Ivan Magalhaes
1022Mayumi H OldroydArgentina2026-06-26Rangoni Of Florence RENEWAL51Amy Elsner
1023Jefferson F AmigonUnited Kingdom2026-07-11Truhlar And Truhlar Attys UNQUALIFIED39Stephen Shaw
1024Jennifer Q AmigonFrance2026-07-17Feiner Bros NEGOTIATION69Bernardo Dominic
1025Adams I WaycottRussia2026-06-23Printing Dimensions PROPOSAL74Bernardo Dominic
1026Maria X SchemmerJapan2026-06-23Chemel, James L Cpa RENEWAL22Amy Elsner
1027Misaki N GlickRussia2026-07-13Chemel, James L Cpa NEW9Ioni Bowcher
1028Aditya Y BowleyBrazil2026-06-26Morlong Associates UNQUALIFIED40Elwin Sharvill
1029Juan Q ShinkoItaly2026-07-12Printing Dimensions QUALIFIED29Anna Fali
1030Emily W GillianGermany2026-07-14Morlong Associates UNQUALIFIED66Amy Elsner
1031Wickens B PoquetteArgentina2026-07-15Chanay, Jeffrey A Esq NEGOTIATION85Bernardo Dominic
1032Leon S CaudyUnited Kingdom2026-07-15Commercial Press RENEWAL83Amy Elsner
1033Mujtaba F TollnerFrance2026-06-30Truhlar And Truhlar Attys NEGOTIATION3Elwin Sharvill
1034Ashley K PaprockiFrance2026-07-04Commercial Press NEW3Bernardo Dominic
1035Francesco Y NickaSpain2026-07-14Rousseaux, Michael Esq PROPOSAL14Xuxue Feng
1036Salvatore J GarufiUnited Kingdom2026-06-23Commercial Press NEW31Xuxue Feng
1037Isabel N DoeRussia2026-06-27King, Christopher A Esq QUALIFIED92Asiya Javayant
1038Tony K PaprockiBrazil2026-07-01Printing Dimensions PROPOSAL86Asiya Javayant
1039Salvatore X ButtRussia2026-07-04Printing Dimensions UNQUALIFIED3Ivan Magalhaes
1040Nicolas Z BriddickAustralia2026-07-13Buckley Miller Wright UNQUALIFIED11Stephen Shaw
1041Jones I RoysterAustralia2026-07-21Dorl, James J Esq QUALIFIED77Amy Elsner
1042Mujtaba L AlbaresCanada2026-06-27Feltz Printing Service QUALIFIED57Ioni Bowcher
1043Wickens M RoysterJapan2026-07-07Commercial Press RENEWAL9Anna Fali
1044Clifford E OstroskyRussia2026-07-08Commercial Press NEW84Ioni Bowcher
1045Jennifer D WieserIndia2026-07-22Chapman, Ross E Esq UNQUALIFIED43Ivan Magalhaes
1046Jennifer X NickaArgentina2026-07-09Chapman, Ross E Esq RENEWAL26Asiya Javayant
1047Izzy Q DarakjyAustralia2026-07-01Rousseaux, Michael Esq NEGOTIATION2Onyama Limba
1048Cody F SchemmerCanada2026-07-20Rangoni Of Florence NEGOTIATION79Ivan Magalhaes
1049Jefferson U IturbideSpain2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED58Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
David R RoysterSpainIoni Bowcher PROPOSAL
Emily D ChuiIndiaIoni Bowcher UNQUALIFIED
Tony Y SlusarskiItalyXuxue Feng NEGOTIATION
Francesco J MacleadArgentinaBernardo Dominic NEGOTIATION
Kaitlin Y VocelkaGermanyIoni Bowcher UNQUALIFIED
Misaki Y GlickRussiaXuxue Feng PROPOSAL
Sinclair M IturbideUnited KingdomElwin Sharvill RENEWAL
Julie H FollerCanadaBernardo Dominic PROPOSAL
Murillo X DarakjyIndiaElwin Sharvill UNQUALIFIED
Jennifer R NestleAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois X GauchoGermanyStephen Shaw PROPOSAL
Silvio Y MacleadIndiaAsiya Javayant PROPOSAL
Stacey T MaletRussiaIoni Bowcher NEW
Jones A AmigonGermanyStephen Shaw NEGOTIATION
Jeanfrancois I MarrierFranceOnyama Limba NEGOTIATION
Kadeem U VenereUnited KingdomStephen Shaw NEGOTIATION
Kadeem Q RimUnited KingdomIvan Magalhaes RENEWAL
Ashley A BologniaItalyAnna Fali RENEWAL
Salvatore X MacleadGermanyIvan Magalhaes PROPOSAL
Alejandro L CampainGermanyAnna Fali QUALIFIED
Isabel N TollnerItalyAsiya Javayant RENEWAL
Aika T GauchoUnited KingdomBernardo Dominic RENEWAL
Juan B WieserBrazilOnyama Limba QUALIFIED
Maria T FerenczRussiaBernardo Dominic NEGOTIATION
Cody O ButtFranceElwin Sharvill RENEWAL
Octavia K FigeroaJapanAnna Fali NEW
Johnson I MaletRussiaAmy Elsner UNQUALIFIED
Costa T TollnerRussiaStephen Shaw NEW
Leon K CampainArgentinaBernardo Dominic PROPOSAL
Salvatore G OstroskySpainIvan Magalhaes UNQUALIFIED
Arvin A OstroskyIndiaAnna Fali QUALIFIED
Morrow R InouyeArgentinaXuxue Feng UNQUALIFIED
Jeanfrancois U ShinkoFranceBernardo Dominic RENEWAL
Aruna K IturbideSpainAnna Fali PROPOSAL
Munro Y MarrierArgentinaXuxue Feng PROPOSAL
Wickens D GarufiJapanAmy Elsner NEGOTIATION
Munro Q DarakjyUnited KingdomBernardo Dominic RENEWAL
Stacey S RoysterAustraliaAmy Elsner RENEWAL
Tony P StockhamRussiaAnna Fali UNQUALIFIED
Aika C StensethRussiaXuxue Feng UNQUALIFIED
Aruna P CampainGermanyIvan Magalhaes PROPOSAL
Isabel B MacleadIndiaAmy Elsner QUALIFIED
Kadeem K PaprockiArgentinaAnna Fali NEW
Faith D FollerCanadaXuxue Feng PROPOSAL
Ricardo X ShinkoFranceElwin Sharvill RENEWAL
Jennifer N DoeArgentinaStephen Shaw UNQUALIFIED
Juan L TollnerFranceStephen Shaw PROPOSAL
Jeanfrancois Y NestleFranceAsiya Javayant RENEWAL
Octavia X BologniaArgentinaStephen Shaw PROPOSAL
Stacey G VenereJapanAnna Fali NEGOTIATION
Frozen Columns
Name
Sinclair G Garufi
Morrow N Venere
Greenwood Y Nicka
Isabel N Schemmer
Izzy A Poquette
Munro A Stockham
Clifford K Rulapaugh
Murillo O Caldarera
Emily B Shinko
Aruna Q Waycott
Greenwood K Perin
Faith R Marrier
Isabel V Saylors
Ashley E Briddick
Smith H Shinko
Claire M Chui
Munro H Malet
Leja N Sergi
Maria P Stenseth
Nicolas G Caldarera
Greenwood Y Dilliard
Jones P Bowley
Nicolas Z Stockham
Misaki U Malet
Silvio C Ostrosky
Costa E Ferencz
Tony X Bolognia
Tony Q Morasca
Leja N Marrier
Aika T Wieser
Julie Y Ruta
Salvatore Y Kusko
Jennifer U Paprocki
Jones H Foller
Maisha E Glick
Munro H Ruta
David H Dilliard
Greenwood E Ruta
Aruna O Schemmer
Maisha Y Doe
Claire R Sergi
Greenwood D Saylors
Silvio H Campain
Ashley B Glick
Francesco X Caldarera
Misaki I Wieser
Ricardo S Stockham
Leon C Ruta
Kaitlin T Foller
Darci P Bowley
IdCountryDate
1000France2026-06-26
1001Brazil2026-06-27
1002Canada2026-06-28
1003Australia2026-06-27
1004Canada2026-07-08
1005United Kingdom2026-07-09
1006France2026-07-01
1007Germany2026-07-18
1008Brazil2026-06-28
1009Germany2026-06-27
1010United Kingdom2026-07-14
1011India2026-07-14
1012Australia2026-07-15
1013Italy2026-07-14
1014Italy2026-07-03
1015Spain2026-06-24
1016Spain2026-07-01
1017Italy2026-07-05
1018Brazil2026-07-06
1019Japan2026-07-10
1020France2026-07-14
1021India2026-07-02
1022Italy2026-07-11
1023Australia2026-07-16
1024Russia2026-06-26
1025Germany2026-06-23
1026Germany2026-06-28
1027United Kingdom2026-07-14
1028Australia2026-07-14
1029Australia2026-07-13
1030United Kingdom2026-06-27
1031United Kingdom2026-06-30
1032United Kingdom2026-07-08
1033Italy2026-06-26
1034Germany2026-07-06
1035Italy2026-06-23
1036United Kingdom2026-06-29
1037Russia2026-06-28
1038United Kingdom2026-07-19
1039Australia2026-06-24
1040Australia2026-07-19
1041Brazil2026-07-18
1042Russia2026-07-10
1043Brazil2026-06-26
1044Canada2026-07-07
1045Brazil2026-06-27
1046Argentina2026-06-30
1047Germany2026-06-28
1048Brazil2026-07-22
1049Argentina2026-07-04

On-Demand Data

NameIdCountryDate
Mayumi P Royster1000Germany2026-07-19
James I Glick1001United Kingdom2026-07-07
Stacey J Vocelka1002Canada2026-06-24
Deepesh K Ostrosky1003Japan2026-07-07
Ashley H Butt1004Japan2026-07-16
Adams H Nicka1005Canada2026-06-29
Sinclair D Dilliard1006Germany2026-07-07
Izzy L Malet1007Spain2026-07-10
Jeanfrancois Q Waycott1008Spain2026-07-18
Jefferson M Saylors1009Brazil2026-07-20
Ashley A Campain1010Japan2026-07-17
Costa A Doe1011Russia2026-07-02
Faith L Vocelka1012Russia2026-06-28
Arvin R Gillian1013India2026-07-05
Ivar P Marrier1014Brazil2026-06-29
Maria H Paprocki1015Australia2026-07-07
Stacey J Ostrosky1016Italy2026-07-03
Clifford D Oldroyd1017Australia2026-07-22
Aruna S Caudy1018Russia2026-07-10
Wickens A Bowley1019Canada2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco B RutaIndiaBernardo Dominic UNQUALIFIED
Ricardo J VocelkaBrazilIoni Bowcher NEW
Jennifer M FigeroaRussiaXuxue Feng RENEWAL
Murillo H WaycottUnited KingdomAsiya Javayant QUALIFIED
Faith B PoquetteUnited KingdomBernardo Dominic QUALIFIED
Juan C PerinUnited KingdomOnyama Limba RENEWAL
James P NickaSpainAmy Elsner QUALIFIED
Maria N CampainGermanyXuxue Feng RENEWAL
Arvin Z GauchoArgentinaAnna Fali UNQUALIFIED
Tony Z GlickJapanElwin Sharvill PROPOSAL
Kaitlin C RulapaughIndiaStephen Shaw RENEWAL
Ivar B OldroydGermanyAsiya Javayant RENEWAL
Antonio N MaletAustraliaXuxue Feng QUALIFIED
Maisha S InouyeRussiaXuxue Feng UNQUALIFIED
Kadeem F AmigonItalyAsiya Javayant NEGOTIATION
Smith K StockhamItalyIoni Bowcher NEGOTIATION
Emily S KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Leja V GillianJapanXuxue Feng PROPOSAL
Alejandro O CaudyBrazilAmy Elsner QUALIFIED
Maisha Y DoeJapanBernardo Dominic RENEWAL
Jeanfrancois O BowleyRussiaIvan Magalhaes NEW
Darci Y RimRussiaStephen Shaw RENEWAL
Murillo M SchemmerUnited KingdomAsiya Javayant PROPOSAL
David V SchemmerItalyAmy Elsner NEGOTIATION
Jones O SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Leja Y CaldareraRussiaAmy Elsner UNQUALIFIED
Munro L WieserCanadaStephen Shaw NEGOTIATION
Stacey E KuskoCanadaIoni Bowcher PROPOSAL
Julie O MarrierRussiaIvan Magalhaes QUALIFIED
Octavia R WaycottAustraliaIvan Magalhaes NEW
Emily R SergiBrazilBernardo Dominic PROPOSAL
Antonio D OldroydSpainXuxue Feng UNQUALIFIED
Aditya V CampainIndiaStephen Shaw UNQUALIFIED
Francesco W BriddickFranceAsiya Javayant QUALIFIED
Salvatore L PoquetteUnited KingdomOnyama Limba NEGOTIATION
Izzy E RoysterCanadaElwin Sharvill RENEWAL
Jeanfrancois J CampainArgentinaIvan Magalhaes QUALIFIED
James P RimRussiaOnyama Limba UNQUALIFIED
Leja Y FollerBrazilAmy Elsner QUALIFIED
Rodrigues I SchemmerJapanOnyama Limba 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>