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
Aditya Z VocelkaIndiaStephen Shaw NEGOTIATION
Ashley A FlosiGermanyAsiya Javayant NEGOTIATION
Julie L CampainIndiaElwin Sharvill QUALIFIED
Rodrigues Z DilliardSpainAsiya Javayant NEW
Silvio B OldroydUnited KingdomBernardo Dominic NEW
Nicolas M SaylorsFranceIvan Magalhaes NEGOTIATION
Darci H PaprockiJapanIvan Magalhaes RENEWAL
Kaitlin F GauchoGermanyOnyama Limba QUALIFIED
Wickens M DarakjyCanadaAnna Fali UNQUALIFIED
Cody L TollnerArgentinaBernardo Dominic QUALIFIED
Faith T InouyeAustraliaStephen Shaw NEW
Claire N BologniaJapanElwin Sharvill NEGOTIATION
Chavez K CaldareraFranceAsiya Javayant UNQUALIFIED
Deepesh I DoeRussiaBernardo Dominic QUALIFIED
Octavia E FigeroaRussiaIoni Bowcher NEW
Leon Z FlosiGermanyIvan Magalhaes UNQUALIFIED
Alejandro D IturbideGermanyAmy Elsner UNQUALIFIED
Julie U TollnerGermanyElwin Sharvill RENEWAL
Misaki V SlusarskiJapanIvan Magalhaes PROPOSAL
Aruna C ButtItalyAsiya Javayant QUALIFIED
Jones P RimArgentinaXuxue Feng NEGOTIATION
Aika U AlbaresJapanAmy Elsner NEW
Mayumi F FlosiBrazilAsiya Javayant NEW
Faith I SchemmerArgentinaAsiya Javayant NEGOTIATION
Stacey W OstroskyFranceBernardo Dominic RENEWAL
Isabel Y IturbideCanadaBernardo Dominic QUALIFIED
Maisha I KolmetzArgentinaBernardo Dominic RENEWAL
Deepesh H SlusarskiCanadaBernardo Dominic RENEWAL
Rodrigues T RulapaughFranceAnna Fali QUALIFIED
Kaitlin P NickaIndiaOnyama Limba RENEWAL
Greenwood A ButtSpainBernardo Dominic NEGOTIATION
Rodrigues H RoysterAustraliaBernardo Dominic UNQUALIFIED
Deepesh U PerinAustraliaIvan Magalhaes RENEWAL
Aika V AlbaresCanadaAsiya Javayant NEW
Nicolas B BowleyArgentinaElwin Sharvill PROPOSAL
Adams B StockhamItalyElwin Sharvill UNQUALIFIED
Smith U OstroskyJapanOnyama Limba RENEWAL
Faith O DarakjyCanadaOnyama Limba RENEWAL
Costa F SchemmerIndiaAsiya Javayant NEGOTIATION
Tony Y InouyeArgentinaBernardo Dominic RENEWAL
Sinclair D SchemmerCanadaBernardo Dominic UNQUALIFIED
Costa Z WaycottSpainOnyama Limba PROPOSAL
Kadeem A KuskoIndiaIvan Magalhaes NEGOTIATION
Arvin G GauchoUnited KingdomXuxue Feng NEW
Izzy N OstroskyAustraliaStephen Shaw UNQUALIFIED
Clifford T VenereItalyXuxue Feng QUALIFIED
Juan W FollerCanadaBernardo Dominic RENEWAL
Jeanfrancois I GarufiUnited KingdomIvan Magalhaes QUALIFIED
Isabel K GarufiArgentinaIvan Magalhaes NEW
Clifford C ButtCanadaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody U MarrierUnited KingdomElwin Sharvill RENEWAL
Ashley P FlosiFranceIvan Magalhaes NEW
Greenwood I BriddickRussiaAnna Fali UNQUALIFIED
Silvio C BologniaItalyAsiya Javayant NEGOTIATION
Darci K FerenczBrazilOnyama Limba QUALIFIED
Aruna K GarufiItalyIvan Magalhaes UNQUALIFIED
Murillo J DoeIndiaBernardo Dominic NEGOTIATION
Silvio Z ButtIndiaIoni Bowcher UNQUALIFIED
Ivar A DilliardArgentinaBernardo Dominic UNQUALIFIED
Kaitlin F StockhamUnited KingdomIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire T FigeroaRussia2024-06-17Chapman, Ross E Esq NEW35Ivan Magalhaes
1001Ashley Z WaycottItaly2024-06-03Chanay, Jeffrey A Esq NEW39Ivan Magalhaes
1002Nicolas E RimUnited Kingdom2024-06-13Printing Dimensions RENEWAL77Ioni Bowcher
1003Deepesh X PoquetteJapan2024-06-09Commercial Press NEW76Stephen Shaw
1004Francesco R PerinArgentina2024-06-01Chapman, Ross E Esq PROPOSAL23Amy Elsner
1005Juan C MorascaArgentina2024-06-21Chapman, Ross E Esq NEGOTIATION28Bernardo Dominic
1006Juan Z MorascaGermany2024-06-03Dorl, James J Esq UNQUALIFIED1Amy Elsner
1007Aruna D FollerJapan2024-05-28Rangoni Of Florence UNQUALIFIED90Ivan Magalhaes
1008Adams M GauchoSpain2024-06-12Feltz Printing Service NEGOTIATION5Elwin Sharvill
1009Chavez T BriddickIndia2024-05-26Truhlar And Truhlar Attys RENEWAL38Xuxue Feng
1010Deepesh H GillianBrazil2024-05-26Rangoni Of Florence RENEWAL59Ivan Magalhaes
1011Alejandro Y WaycottRussia2024-06-14Chapman, Ross E Esq QUALIFIED90Asiya Javayant
1012Leon E RimBrazil2024-06-14Chanay, Jeffrey A Esq NEW31Anna Fali
1013Aruna B ChuiIndia2024-06-14Morlong Associates UNQUALIFIED3Amy Elsner
1014Chavez I FlosiJapan2024-06-06Truhlar And Truhlar Attys NEGOTIATION57Bernardo Dominic
1015Ricardo R NickaBrazil2024-05-30King, Christopher A Esq UNQUALIFIED58Anna Fali
1016Isabel V RoysterSpain2024-05-25Chapman, Ross E Esq RENEWAL8Asiya Javayant
1017Wickens J ChuiUnited Kingdom2024-05-28Rousseaux, Michael Esq RENEWAL95Xuxue Feng
1018Jones N WaycottGermany2024-06-11Feltz Printing Service UNQUALIFIED22Onyama Limba
1019Antonio F SaylorsUnited Kingdom2024-05-27Truhlar And Truhlar Attys NEW19Bernardo Dominic
1020James K MorascaArgentina2024-05-31Rangoni Of Florence UNQUALIFIED58Asiya Javayant
1021Greenwood X SergiUnited Kingdom2024-05-30Buckley Miller Wright NEGOTIATION66Onyama Limba
1022Clifford X MaletIndia2024-05-25Rousseaux, Michael Esq NEGOTIATION66Elwin Sharvill
1023Darci W GauchoCanada2024-05-31Chapman, Ross E Esq QUALIFIED55Onyama Limba
1024Johnson S SchemmerFrance2024-06-14Buckley Miller Wright QUALIFIED22Xuxue Feng
1025Claire K RoysterItaly2024-06-07Commercial Press RENEWAL51Anna Fali
1026Claire P RimIndia2024-06-04Chanay, Jeffrey A Esq NEW15Ivan Magalhaes
1027Claire U VocelkaBrazil2024-06-09Truhlar And Truhlar Attys QUALIFIED83Anna Fali
1028Tony Z KolmetzGermany2024-06-15Benton, John B Jr NEGOTIATION46Stephen Shaw
1029Ashley Y SlusarskiIndia2024-06-13Rousseaux, Michael Esq UNQUALIFIED62Anna Fali
1030Kaitlin P MacleadArgentina2024-06-16Dorl, James J Esq PROPOSAL3Bernardo Dominic
1031Leon L SlusarskiAustralia2024-05-29Chemel, James L Cpa NEGOTIATION73Elwin Sharvill
1032Clifford Z FerenczSpain2024-06-15Feiner Bros QUALIFIED36Bernardo Dominic
1033Octavia F FigeroaCanada2024-06-14Printing Dimensions QUALIFIED70Elwin Sharvill
1034Octavia X WieserUnited Kingdom2024-06-10Chemel, James L Cpa RENEWAL5Asiya Javayant
1035Jones S SaylorsUnited Kingdom2024-06-16Benton, John B Jr RENEWAL83Anna Fali
1036Greenwood H InouyeJapan2024-06-15Chapman, Ross E Esq NEGOTIATION92Onyama Limba
1037James A BowleyGermany2024-06-14Rangoni Of Florence UNQUALIFIED58Ioni Bowcher
1038Claire D CaldareraSpain2024-06-02Dorl, James J Esq RENEWAL53Xuxue Feng
1039Ashley D FigeroaFrance2024-06-17Buckley Miller Wright PROPOSAL19Amy Elsner
1040Kaitlin I AmigonUnited Kingdom2024-06-02Rangoni Of Florence QUALIFIED28Xuxue Feng
1041Mujtaba I RulapaughJapan2024-05-27Commercial Press NEGOTIATION19Bernardo Dominic
1042Deepesh Y IturbideCanada2024-06-05Commercial Press UNQUALIFIED85Ioni Bowcher
1043Arvin Q OldroydAustralia2024-06-18Dorl, James J Esq PROPOSAL3Ivan Magalhaes
1044Izzy K PerinItaly2024-05-27Printing Dimensions NEGOTIATION74Bernardo Dominic
1045Juan N IturbideUnited Kingdom2024-06-19Feltz Printing Service QUALIFIED65Bernardo Dominic
1046Adams H WaycottUnited Kingdom2024-06-12Dorl, James J Esq RENEWAL84Xuxue Feng
1047Leon W CampainJapan2024-06-21Printing Dimensions NEGOTIATION5Onyama Limba
1048Nicolas K RulapaughIndia2024-05-31Buckley Miller Wright QUALIFIED75Ioni Bowcher
1049Ivar A CampainAustralia2024-06-12King, Christopher A Esq NEGOTIATION26Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mayumi D ShinkoJapanAmy Elsner UNQUALIFIED
Jones X OldroydCanadaAsiya Javayant QUALIFIED
Tony X ChuiSpainIoni Bowcher NEGOTIATION
Chavez A WhobreyBrazilIoni Bowcher QUALIFIED
Alejandro V VenereIndiaStephen Shaw NEW
Kadeem K KuskoJapanIoni Bowcher RENEWAL
Maisha E PoquetteFranceElwin Sharvill RENEWAL
Stacey K SchemmerFranceAmy Elsner UNQUALIFIED
Maisha W VenereSpainAmy Elsner NEW
Chavez O FigeroaIndiaStephen Shaw NEGOTIATION
Stacey B MaletUnited KingdomAnna Fali NEW
Jennifer P GarufiArgentinaStephen Shaw NEGOTIATION
Jennifer S RoysterBrazilAmy Elsner UNQUALIFIED
Leon F NickaSpainElwin Sharvill PROPOSAL
Antonio M MaletAustraliaIvan Magalhaes QUALIFIED
Chavez T OldroydBrazilIvan Magalhaes RENEWAL
Greenwood J InouyeUnited KingdomBernardo Dominic PROPOSAL
Alejandro R VenereIndiaIvan Magalhaes RENEWAL
Claire L WieserIndiaOnyama Limba RENEWAL
Aika G FollerJapanAmy Elsner RENEWAL
Nicolas H MaletAustraliaXuxue Feng NEGOTIATION
Stacey B InouyeFranceAnna Fali NEGOTIATION
Greenwood V AlbaresArgentinaElwin Sharvill RENEWAL
Octavia M NickaIndiaElwin Sharvill NEW
Aditya X RutaBrazilAsiya Javayant NEW
Maria X CaudyJapanIoni Bowcher NEW
Alejandro B FollerUnited KingdomStephen Shaw NEW
Maria I KuskoIndiaAmy Elsner RENEWAL
Costa H KolmetzAustraliaXuxue Feng RENEWAL
Aika G PaprockiArgentinaAnna Fali NEGOTIATION
Octavia C ShinkoAustraliaIvan Magalhaes PROPOSAL
Isabel B SergiUnited KingdomAmy Elsner NEGOTIATION
Alejandro G BologniaArgentinaElwin Sharvill UNQUALIFIED
Leja V WhobreyArgentinaXuxue Feng PROPOSAL
Jones O BriddickUnited KingdomAsiya Javayant PROPOSAL
David Y StensethRussiaStephen Shaw PROPOSAL
Tony Y IturbideBrazilIoni Bowcher NEW
Ricardo Y FerenczRussiaAmy Elsner UNQUALIFIED
Johnson H GarufiAustraliaOnyama Limba NEW
Sinclair O ShinkoCanadaBernardo Dominic PROPOSAL
Kadeem A KuskoUnited KingdomOnyama Limba QUALIFIED
Kaitlin I WieserItalyBernardo Dominic RENEWAL
Faith K MaletJapanOnyama Limba QUALIFIED
Jennifer Z MacleadItalyStephen Shaw NEGOTIATION
Clifford V NestleSpainIvan Magalhaes UNQUALIFIED
Antonio U CampainUnited KingdomAsiya Javayant NEGOTIATION
Francesco Z AlbaresItalyElwin Sharvill RENEWAL
Morrow G WaycottGermanyBernardo Dominic UNQUALIFIED
Salvatore N PerinAustraliaAnna Fali RENEWAL
Arvin W IturbideArgentinaBernardo Dominic QUALIFIED
Frozen Columns
Name
Ashley R Sergi
Izzy T Kusko
Aika B Saylors
Deepesh T Nestle
Misaki V Briddick
Octavia K Butt
Cody O Ferencz
Izzy S Paprocki
Jones V Paprocki
Antonio W Schemmer
Johnson P Darakjy
Ashley X Oldroyd
Salvatore O Sergi
Ashley Y Royster
Jennifer W Whobrey
Darci Z Morasca
Greenwood I Perin
Chavez P Bowley
Leja M Tollner
Ashley D Saylors
Misaki D Glick
Murillo Q Stenseth
Clifford Z Malet
Silvio B Garufi
Ivar M Stockham
Jefferson R Sergi
David C Gillian
Mujtaba C Garufi
Cody Z Malet
Johnson Z Ruta
Cody I Darakjy
Jefferson T Shinko
Morrow P Marrier
Jones I Chui
Sinclair G Briddick
Jones Z Briddick
Cody B Flosi
Leon E Figeroa
Deepesh U Doe
Munro N Ferencz
Darci I Iturbide
Wickens Z Perin
Aditya O Inouye
Claire A Paprocki
Octavia B Foller
Juan S Bolognia
Leon V Foller
Julie C Nicka
Faith N Caudy
Murillo P Vocelka
IdCountryDate
1000Australia2024-06-09
1001Italy2024-06-03
1002Argentina2024-06-08
1003India2024-06-13
1004Germany2024-06-22
1005Brazil2024-06-16
1006Germany2024-06-01
1007Germany2024-06-23
1008United Kingdom2024-06-07
1009Russia2024-06-12
1010Japan2024-05-25
1011Argentina2024-06-12
1012Spain2024-06-09
1013France2024-05-31
1014Russia2024-06-01
1015Italy2024-05-29
1016Australia2024-06-19
1017Japan2024-05-31
1018India2024-06-20
1019Australia2024-06-09
1020Brazil2024-06-06
1021Italy2024-06-06
1022Brazil2024-06-21
1023Brazil2024-06-18
1024Canada2024-06-15
1025Japan2024-05-30
1026United Kingdom2024-06-12
1027Australia2024-05-25
1028Brazil2024-06-21
1029Japan2024-06-23
1030India2024-06-20
1031Brazil2024-05-27
1032Brazil2024-05-30
1033Italy2024-05-25
1034Canada2024-06-14
1035India2024-06-23
1036Argentina2024-06-17
1037Canada2024-06-07
1038Russia2024-05-29
1039Australia2024-06-08
1040Canada2024-05-25
1041Argentina2024-06-10
1042India2024-06-16
1043France2024-05-26
1044Japan2024-05-26
1045Brazil2024-06-16
1046Argentina2024-06-19
1047Australia2024-06-13
1048United Kingdom2024-06-12
1049Brazil2024-05-30

On-Demand Data

NameIdCountryDate
Cody Q Inouye1000Brazil2024-06-23
Costa U Inouye1001Russia2024-06-16
Izzy G Briddick1002Canada2024-05-30
Isabel P Maclead1003United Kingdom2024-06-03
Salvatore D Chui1004Australia2024-05-30
Jeanfrancois A Figeroa1005Argentina2024-06-09
Greenwood F Butt1006United Kingdom2024-06-07
Clifford H Tollner1007India2024-06-18
James Y Rim1008Russia2024-05-29
Francesco M Kolmetz1009Canada2024-06-02
Emily Q Caudy1010France2024-06-12
Ivar B Flosi1011Italy2024-06-16
Adams C Morasca1012Russia2024-06-18
Adams Q Tollner1013Japan2024-06-08
Francesco I Doe1014Japan2024-06-15
Aditya C Ostrosky1015Argentina2024-06-02
Darci V Caudy1016Germany2024-05-31
Jones H Inouye1017Canada2024-06-04
Kaitlin B Iturbide1018Japan2024-06-18
Izzy M Albares1019Brazil2024-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco F PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow Y BowleyGermanyBernardo Dominic RENEWAL
Faith F GarufiGermanyAnna Fali RENEWAL
Jeanfrancois A SergiGermanyAnna Fali RENEWAL
Julie U MarrierIndiaIvan Magalhaes UNQUALIFIED
Chavez A DilliardItalyIoni Bowcher NEGOTIATION
Octavia G ButtUnited KingdomBernardo Dominic UNQUALIFIED
Francesco R AlbaresJapanAsiya Javayant NEW
Izzy I RulapaughUnited KingdomIoni Bowcher NEW
Wickens D WaycottCanadaXuxue Feng RENEWAL
Darci U SaylorsFranceAnna Fali UNQUALIFIED
Jefferson E NickaAustraliaXuxue Feng PROPOSAL
Jones R WhobreySpainOnyama Limba PROPOSAL
Ashley L InouyeSpainOnyama Limba NEGOTIATION
Julie E ShinkoArgentinaStephen Shaw UNQUALIFIED
Nicolas M PaprockiJapanXuxue Feng NEGOTIATION
Alejandro V SlusarskiGermanyStephen Shaw RENEWAL
David O PerinRussiaIoni Bowcher RENEWAL
Silvio P SchemmerRussiaElwin Sharvill PROPOSAL
Claire N ButtRussiaAnna Fali NEGOTIATION
Leja Z MarrierUnited KingdomIoni Bowcher UNQUALIFIED
Ivar D InouyeRussiaIvan Magalhaes NEW
Maria A SchemmerArgentinaStephen Shaw PROPOSAL
Munro O RutaArgentinaXuxue Feng QUALIFIED
Greenwood K CampainIndiaOnyama Limba UNQUALIFIED
Adams A BriddickRussiaAsiya Javayant QUALIFIED
Sinclair X SaylorsIndiaIoni Bowcher NEGOTIATION
Salvatore U SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Adams G MorascaSpainElwin Sharvill NEW
Jennifer E FigeroaItalyBernardo Dominic RENEWAL
Ivar P CaldareraRussiaAsiya Javayant NEW
Morrow Y PerinItalyAmy Elsner QUALIFIED
Nicolas H MorascaIndiaIoni Bowcher UNQUALIFIED
Mujtaba S PoquetteIndiaElwin Sharvill RENEWAL
Wickens W FlosiRussiaAmy Elsner NEW
Ashley R MaletIndiaAmy Elsner NEGOTIATION
Juan O PaprockiItalyAmy Elsner RENEWAL
Smith P OstroskyFranceElwin Sharvill QUALIFIED
Ricardo S BriddickJapanOnyama Limba NEW
Maisha F StensethSpainAsiya 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>