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
Stacey A RimAustraliaIoni Bowcher UNQUALIFIED
Rodrigues M WhobreyAustraliaIvan Magalhaes PROPOSAL
Jefferson L CampainFranceAsiya Javayant NEW
Stacey U ChuiBrazilOnyama Limba UNQUALIFIED
Sinclair I SergiArgentinaAnna Fali UNQUALIFIED
Chavez J MarrierBrazilIoni Bowcher RENEWAL
Isabel B GillianFranceOnyama Limba UNQUALIFIED
Greenwood O KolmetzSpainBernardo Dominic NEGOTIATION
Silvio T GauchoBrazilStephen Shaw NEGOTIATION
Maria J TollnerBrazilAnna Fali QUALIFIED
Adams A RoysterSpainAmy Elsner RENEWAL
Jennifer J MaletItalyAsiya Javayant NEGOTIATION
James X BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Leon A FigeroaGermanyOnyama Limba UNQUALIFIED
Morrow O ButtJapanAnna Fali NEW
Ashley C PoquetteGermanyStephen Shaw NEGOTIATION
David P FlosiArgentinaXuxue Feng RENEWAL
Juan J NestleJapanIvan Magalhaes UNQUALIFIED
Maria Y DarakjyJapanOnyama Limba NEW
Jefferson T WieserGermanyBernardo Dominic NEW
Leon D InouyeJapanBernardo Dominic RENEWAL
Leon O NestleBrazilBernardo Dominic RENEWAL
Adams H FerenczCanadaElwin Sharvill NEW
Kadeem N MaletSpainIvan Magalhaes RENEWAL
Arvin G DilliardBrazilStephen Shaw PROPOSAL
Jennifer E DarakjyGermanyAmy Elsner RENEWAL
Octavia E PaprockiJapanOnyama Limba NEGOTIATION
Nicolas U MorascaSpainStephen Shaw QUALIFIED
Nicolas D MarrierRussiaAsiya Javayant QUALIFIED
Isabel C GauchoBrazilAnna Fali PROPOSAL
Isabel K SlusarskiAustraliaXuxue Feng RENEWAL
Aruna M IturbideIndiaIvan Magalhaes UNQUALIFIED
Kaitlin U VenereUnited KingdomElwin Sharvill UNQUALIFIED
Adams F OstroskyBrazilIoni Bowcher RENEWAL
Aika Y WhobreyFranceIvan Magalhaes NEW
Wickens Z AmigonUnited KingdomAmy Elsner NEGOTIATION
Johnson P GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues K VocelkaArgentinaElwin Sharvill UNQUALIFIED
Smith I VenereItalyXuxue Feng NEW
Murillo G StensethGermanyOnyama Limba UNQUALIFIED
Wickens K CaldareraBrazilIoni Bowcher RENEWAL
Ricardo T BologniaJapanXuxue Feng UNQUALIFIED
Ivar F OstroskyArgentinaIvan Magalhaes QUALIFIED
Izzy R SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Chavez U DarakjyArgentinaAsiya Javayant NEW
Arvin M InouyeCanadaElwin Sharvill NEGOTIATION
Ivar V CampainSpainBernardo Dominic QUALIFIED
Jones M MaletBrazilStephen Shaw NEGOTIATION
Aruna J WieserGermanyBernardo Dominic NEW
Jennifer H FlosiAustraliaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford D MacleadIndiaIvan Magalhaes UNQUALIFIED
Juan A KuskoJapanOnyama Limba NEGOTIATION
Aruna K BriddickJapanElwin Sharvill NEGOTIATION
Clifford P KuskoFranceXuxue Feng QUALIFIED
Aruna Q StensethArgentinaAsiya Javayant QUALIFIED
Salvatore T FerenczSpainXuxue Feng NEW
David D SlusarskiArgentinaAnna Fali QUALIFIED
Jones R StensethIndiaBernardo Dominic QUALIFIED
Mayumi J AmigonUnited KingdomOnyama Limba NEW
Stacey X KuskoGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois O FigeroaAustralia2024-05-13Buckley Miller Wright PROPOSAL23Anna Fali
1001Ashley N FerenczAustralia2024-05-19Benton, John B Jr UNQUALIFIED2Elwin Sharvill
1002Emily K FerenczUnited Kingdom2024-05-08Chemel, James L Cpa NEGOTIATION80Xuxue Feng
1003David K RulapaughUnited Kingdom2024-05-31Truhlar And Truhlar Attys NEGOTIATION13Anna Fali
1004Julie O MaletUnited Kingdom2024-05-08Truhlar And Truhlar Attys PROPOSAL13Elwin Sharvill
1005Morrow F RimCanada2024-05-31Morlong Associates PROPOSAL31Asiya Javayant
1006Ivar R RutaSpain2024-06-05Feiner Bros RENEWAL74Stephen Shaw
1007Jeanfrancois Q SchemmerRussia2024-05-12Printing Dimensions QUALIFIED49Xuxue Feng
1008Morrow E CampainUnited Kingdom2024-05-17Printing Dimensions NEGOTIATION27Amy Elsner
1009Juan H BowleyGermany2024-05-07Chanay, Jeffrey A Esq UNQUALIFIED41Onyama Limba
1010Jefferson A NestleItaly2024-05-28King, Christopher A Esq QUALIFIED9Amy Elsner
1011Clifford U MacleadIndia2024-05-24Truhlar And Truhlar Attys PROPOSAL52Xuxue Feng
1012Deepesh F BologniaAustralia2024-05-18Feiner Bros QUALIFIED9Asiya Javayant
1013Alejandro F MorascaJapan2024-05-13Chapman, Ross E Esq PROPOSAL25Ivan Magalhaes
1014Adams Z RulapaughAustralia2024-05-12Chanay, Jeffrey A Esq QUALIFIED56Elwin Sharvill
1015Kadeem R PoquetteIndia2024-06-01King, Christopher A Esq PROPOSAL79Asiya Javayant
1016Jennifer A SergiCanada2024-06-01Benton, John B Jr RENEWAL63Onyama Limba
1017Johnson A GillianCanada2024-05-20Morlong Associates RENEWAL27Elwin Sharvill
1018Silvio N ShinkoAustralia2024-05-31Feiner Bros UNQUALIFIED54Anna Fali
1019Faith Q MacleadIndia2024-05-25Benton, John B Jr NEW44Elwin Sharvill
1020Nicolas D FollerArgentina2024-05-10Chanay, Jeffrey A Esq NEW12Anna Fali
1021Costa X BologniaUnited Kingdom2024-05-21Commercial Press UNQUALIFIED25Amy Elsner
1022Octavia W FigeroaRussia2024-06-03Printing Dimensions NEW58Ivan Magalhaes
1023Clifford E RulapaughIndia2024-05-14Dorl, James J Esq QUALIFIED15Ioni Bowcher
1024Antonio I OldroydUnited Kingdom2024-05-14Rangoni Of Florence QUALIFIED27Bernardo Dominic
1025Ashley X VocelkaAustralia2024-05-14Morlong Associates PROPOSAL70Ioni Bowcher
1026Ivar L ButtRussia2024-05-23Chanay, Jeffrey A Esq RENEWAL17Elwin Sharvill
1027Jones U SlusarskiArgentina2024-05-24Chapman, Ross E Esq PROPOSAL2Ivan Magalhaes
1028Munro X RimIndia2024-05-17Buckley Miller Wright NEGOTIATION70Bernardo Dominic
1029Morrow H TollnerGermany2024-05-10Commercial Press RENEWAL39Elwin Sharvill
1030Jeanfrancois D RoysterAustralia2024-05-22Truhlar And Truhlar Attys QUALIFIED9Ivan Magalhaes
1031Octavia M WhobreyFrance2024-05-11Truhlar And Truhlar Attys NEGOTIATION42Ivan Magalhaes
1032Faith Y MorascaGermany2024-05-10Morlong Associates PROPOSAL43Onyama Limba
1033Jennifer X GarufiSpain2024-05-21Rousseaux, Michael Esq QUALIFIED48Asiya Javayant
1034Sinclair K CaldareraItaly2024-06-03Feiner Bros RENEWAL73Onyama Limba
1035Wickens F PaprockiGermany2024-05-14Chemel, James L Cpa UNQUALIFIED4Bernardo Dominic
1036Costa M CaudyItaly2024-05-15Buckley Miller Wright NEW97Ioni Bowcher
1037Tony G RoysterGermany2024-05-08Feiner Bros NEW88Stephen Shaw
1038Antonio E RimUnited Kingdom2024-06-04Buckley Miller Wright NEGOTIATION83Ivan Magalhaes
1039Aika K ChuiAustralia2024-06-02Chemel, James L Cpa RENEWAL66Xuxue Feng
1040Adams Y FollerFrance2024-06-04Truhlar And Truhlar Attys PROPOSAL79Bernardo Dominic
1041James M MaletAustralia2024-05-24Chemel, James L Cpa NEGOTIATION64Bernardo Dominic
1042Johnson E FlosiItaly2024-05-11Commercial Press QUALIFIED17Anna Fali
1043Rodrigues P TollnerArgentina2024-05-12Dorl, James J Esq UNQUALIFIED56Asiya Javayant
1044Jones O MaletJapan2024-05-31Commercial Press NEW6Elwin Sharvill
1045Adams V SaylorsRussia2024-05-15King, Christopher A Esq PROPOSAL70Anna Fali
1046Tony C RulapaughRussia2024-05-14Chapman, Ross E Esq UNQUALIFIED25Amy Elsner
1047Aruna U BriddickJapan2024-06-04Buckley Miller Wright RENEWAL0Stephen Shaw
1048Leja J InouyeJapan2024-05-16Rousseaux, Michael Esq QUALIFIED17Ivan Magalhaes
1049Leon Z NickaGermany2024-05-30Chapman, Ross E Esq QUALIFIED55Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar C OstroskyGermanyElwin Sharvill NEW
Ivar P SergiArgentinaXuxue Feng PROPOSAL
Kaitlin W NickaArgentinaOnyama Limba RENEWAL
Jones H SergiIndiaIvan Magalhaes QUALIFIED
Arvin D PoquetteRussiaStephen Shaw QUALIFIED
Greenwood L AmigonSpainAmy Elsner NEW
Morrow G RimCanadaAsiya Javayant RENEWAL
Jennifer U SlusarskiUnited KingdomIvan Magalhaes NEW
Nicolas F PaprockiUnited KingdomAmy Elsner QUALIFIED
Misaki R FerenczIndiaIoni Bowcher PROPOSAL
Leon N PerinRussiaIvan Magalhaes PROPOSAL
Aditya X CampainAustraliaAsiya Javayant UNQUALIFIED
Alejandro I SergiArgentinaStephen Shaw NEGOTIATION
Darci I AlbaresAustraliaElwin Sharvill NEW
Jones K OldroydAustraliaIoni Bowcher NEGOTIATION
Salvatore P KuskoUnited KingdomAmy Elsner RENEWAL
Julie L ShinkoGermanyOnyama Limba RENEWAL
Jefferson Y CaudyRussiaAmy Elsner NEW
Stacey Y KuskoAustraliaXuxue Feng QUALIFIED
Rodrigues X PerinBrazilAnna Fali UNQUALIFIED
Alejandro U FlosiJapanXuxue Feng PROPOSAL
Aditya V MorascaGermanyElwin Sharvill NEGOTIATION
Jeanfrancois H AmigonUnited KingdomAnna Fali NEGOTIATION
Maisha D MaletRussiaAnna Fali QUALIFIED
Greenwood Y StockhamIndiaIvan Magalhaes NEGOTIATION
Faith Q MaletJapanElwin Sharvill RENEWAL
Misaki J GillianFranceAnna Fali UNQUALIFIED
Julie S WaycottRussiaStephen Shaw PROPOSAL
Chavez Z OldroydIndiaStephen Shaw NEGOTIATION
Alejandro Z GauchoBrazilIvan Magalhaes UNQUALIFIED
Johnson R WhobreyGermanyElwin Sharvill NEGOTIATION
Smith T FlosiFranceIvan Magalhaes UNQUALIFIED
Mayumi T MarrierBrazilElwin Sharvill NEW
Costa L RulapaughBrazilXuxue Feng NEW
Leja A WhobreyBrazilAnna Fali UNQUALIFIED
Leja M DoeJapanXuxue Feng UNQUALIFIED
Ivar D AlbaresCanadaStephen Shaw QUALIFIED
Antonio N CampainItalyXuxue Feng QUALIFIED
Jones P BowleyGermanyOnyama Limba PROPOSAL
Emily E SaylorsRussiaElwin Sharvill RENEWAL
Munro D OstroskyCanadaBernardo Dominic PROPOSAL
Mujtaba W StensethIndiaBernardo Dominic PROPOSAL
Munro L ButtRussiaStephen Shaw UNQUALIFIED
Stacey A VenereBrazilElwin Sharvill QUALIFIED
Kadeem J BowleyGermanyXuxue Feng NEW
Alejandro K WieserFranceOnyama Limba NEGOTIATION
Kaitlin O AlbaresJapanStephen Shaw NEGOTIATION
Johnson T FlosiGermanyIvan Magalhaes RENEWAL
Munro O StockhamItalyAnna Fali PROPOSAL
Ivar A WhobreyArgentinaElwin Sharvill QUALIFIED
Frozen Columns
Name
Mujtaba K Nestle
Isabel L Rulapaugh
Aditya G Doe
Francesco O Bowley
Misaki V Campain
Aditya Y Iturbide
Darci S Sergi
Emily F Butt
Misaki Y Sergi
Murillo D Sergi
Rodrigues C Bolognia
Francesco I Stenseth
Julie J Caldarera
Cody K Whobrey
Arvin H Stenseth
Darci B Doe
Salvatore P Whobrey
Misaki X Royster
Johnson S Briddick
Ivar R Darakjy
Aditya B Malet
Misaki N Malet
Costa V Campain
Morrow P Bowley
Kaitlin W Gillian
Morrow M Ostrosky
Johnson A Bolognia
Mujtaba Y Figeroa
James G Schemmer
Leon V Briddick
Murillo F Caldarera
Kadeem I Gaucho
Kaitlin Q Malet
Salvatore H Briddick
Jefferson R Ferencz
Julie R Maclead
Morrow Z Ferencz
Octavia V Oldroyd
Adams G Vocelka
Isabel R Nicka
Antonio E Oldroyd
Juan A Ostrosky
Costa K Saylors
Sinclair E Kusko
Leon H Slusarski
Darci C Ferencz
Salvatore U Stenseth
Nicolas S Stockham
Tony L Rim
Silvio Y Waycott
IdCountryDate
1000Germany2024-05-31
1001Spain2024-05-14
1002Brazil2024-05-27
1003Canada2024-06-02
1004Spain2024-05-16
1005Spain2024-05-14
1006Australia2024-05-29
1007Argentina2024-05-12
1008India2024-05-25
1009Russia2024-05-12
1010United Kingdom2024-05-25
1011Russia2024-05-15
1012France2024-06-01
1013United Kingdom2024-05-10
1014Japan2024-05-29
1015Germany2024-05-19
1016Japan2024-05-14
1017Spain2024-05-23
1018Italy2024-05-19
1019United Kingdom2024-05-22
1020Australia2024-05-08
1021Italy2024-05-22
1022Australia2024-05-24
1023Brazil2024-05-18
1024Australia2024-05-29
1025Argentina2024-05-10
1026India2024-05-19
1027Canada2024-06-05
1028Germany2024-06-04
1029United Kingdom2024-05-24
1030Brazil2024-05-28
1031United Kingdom2024-05-10
1032Argentina2024-05-22
1033Germany2024-05-25
1034Brazil2024-05-30
1035Italy2024-05-31
1036Brazil2024-05-29
1037Russia2024-05-12
1038Argentina2024-05-08
1039Spain2024-05-22
1040Canada2024-05-30
1041Germany2024-05-21
1042Brazil2024-06-03
1043France2024-05-28
1044Italy2024-05-30
1045United Kingdom2024-05-16
1046Canada2024-05-15
1047France2024-06-01
1048Spain2024-05-15
1049Brazil2024-05-26

On-Demand Data

NameIdCountryDate
Adams G Garufi1000Canada2024-05-12
Darci V Gillian1001Brazil2024-06-04
Aditya S Royster1002Italy2024-05-15
Adams G Rim1003Argentina2024-05-30
Aruna F Royster1004Argentina2024-05-15
Johnson U Caudy1005Russia2024-05-25
Sinclair R Stockham1006United Kingdom2024-05-28
Murillo G Rulapaugh1007Germany2024-05-13
Francesco X Paprocki1008Germany2024-05-09
David P Morasca1009France2024-05-22
Octavia C Paprocki1010France2024-05-15
Adams Y Venere1011France2024-06-04
Adams W Gillian1012Australia2024-06-01
Misaki A Darakjy1013United Kingdom2024-05-20
Leon E Kolmetz1014Argentina2024-05-30
Mayumi V Dilliard1015United Kingdom2024-05-24
David V Chui1016India2024-05-12
Izzy J Caldarera1017India2024-05-29
Cody M Malet1018Russia2024-05-20
Deepesh X Slusarski1019Australia2024-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki V MaletGermanyXuxue Feng QUALIFIED
Octavia D RoysterJapanElwin Sharvill NEW
Isabel H VenereAustraliaBernardo Dominic QUALIFIED
Leja R BriddickFranceElwin Sharvill QUALIFIED
Stacey A GlickArgentinaAsiya Javayant UNQUALIFIED
Greenwood S TollnerCanadaAmy Elsner QUALIFIED
Izzy X CampainArgentinaBernardo Dominic UNQUALIFIED
Aruna X WhobreyFranceStephen Shaw NEGOTIATION
Antonio R SaylorsGermanyIvan Magalhaes UNQUALIFIED
Octavia L InouyeAustraliaIoni Bowcher NEGOTIATION
Francesco R DoeSpainAmy Elsner QUALIFIED
Chavez G KolmetzIndiaIvan Magalhaes UNQUALIFIED
Alejandro D NestleGermanyAnna Fali UNQUALIFIED
Costa A RimGermanyAsiya Javayant UNQUALIFIED
Isabel P MorascaIndiaXuxue Feng PROPOSAL
Antonio Y MaletFranceElwin Sharvill UNQUALIFIED
Julie J WieserBrazilAsiya Javayant NEGOTIATION
Antonio O StockhamCanadaAnna Fali UNQUALIFIED
Salvatore I DoeUnited KingdomElwin Sharvill UNQUALIFIED
Clifford S CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Morrow J SergiIndiaOnyama Limba UNQUALIFIED
Silvio N MarrierSpainIoni Bowcher PROPOSAL
Jeanfrancois T StensethRussiaAmy Elsner NEGOTIATION
Chavez L PoquetteSpainAnna Fali UNQUALIFIED
Sinclair C GarufiIndiaBernardo Dominic NEGOTIATION
Jefferson A InouyeCanadaXuxue Feng QUALIFIED
Julie K AmigonArgentinaIoni Bowcher QUALIFIED
Cody C MarrierRussiaXuxue Feng PROPOSAL
Jones Y VenereRussiaOnyama Limba RENEWAL
Kaitlin F ButtFranceOnyama Limba NEW
Aika F IturbideRussiaAnna Fali NEGOTIATION
Nicolas H RoysterFranceBernardo Dominic QUALIFIED
Aditya X IturbideRussiaIvan Magalhaes QUALIFIED
Mayumi V SaylorsGermanyIvan Magalhaes NEW
Emily V DarakjyItalyAnna Fali UNQUALIFIED
Jefferson Z SchemmerArgentinaIoni Bowcher UNQUALIFIED
James Y MaletRussiaIoni Bowcher NEGOTIATION
Adams P KolmetzCanadaBernardo Dominic RENEWAL
Chavez G AmigonCanadaAmy Elsner UNQUALIFIED
Alejandro I MaletJapanAnna Fali 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>