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
Jefferson Y CampainJapanStephen Shaw QUALIFIED
Octavia S FerenczFranceStephen Shaw QUALIFIED
Julie P CampainUnited KingdomOnyama Limba RENEWAL
Arvin J FigeroaBrazilOnyama Limba PROPOSAL
Rodrigues Q SaylorsSpainIoni Bowcher PROPOSAL
Ivar L VenereSpainOnyama Limba RENEWAL
Kadeem V MorascaGermanyOnyama Limba PROPOSAL
Jones E FigeroaAustraliaAnna Fali RENEWAL
Mayumi K OstroskyGermanyBernardo Dominic NEW
Mujtaba E PoquetteIndiaIvan Magalhaes PROPOSAL
Faith Q RoysterUnited KingdomElwin Sharvill RENEWAL
Sinclair U RoysterBrazilElwin Sharvill RENEWAL
Aruna E MaletAustraliaElwin Sharvill UNQUALIFIED
Silvio G RulapaughAustraliaAnna Fali PROPOSAL
Stacey T CaudyIndiaAmy Elsner QUALIFIED
Aruna Z FerenczRussiaIoni Bowcher PROPOSAL
Octavia E GlickArgentinaStephen Shaw RENEWAL
Kadeem U ShinkoJapanStephen Shaw NEW
Octavia B RutaRussiaAmy Elsner NEGOTIATION
Izzy F FlosiJapanBernardo Dominic NEGOTIATION
Sinclair V BologniaJapanOnyama Limba NEGOTIATION
Rodrigues F SlusarskiGermanyOnyama Limba RENEWAL
Stacey Z FerenczUnited KingdomXuxue Feng PROPOSAL
Faith V CaudyGermanyBernardo Dominic UNQUALIFIED
Kadeem G VenereSpainElwin Sharvill RENEWAL
David B SlusarskiJapanXuxue Feng RENEWAL
Jones V RutaJapanOnyama Limba RENEWAL
James S RulapaughRussiaAsiya Javayant PROPOSAL
Misaki H FollerItalyAsiya Javayant UNQUALIFIED
Francesco F GarufiGermanyXuxue Feng QUALIFIED
Nicolas W PaprockiJapanIoni Bowcher UNQUALIFIED
Francesco X GillianJapanAmy Elsner UNQUALIFIED
Adams R NickaGermanyOnyama Limba NEW
Jefferson K CaudyIndiaAmy Elsner RENEWAL
Silvio I NestleBrazilAnna Fali UNQUALIFIED
Sinclair E WhobreyArgentinaBernardo Dominic NEGOTIATION
Rodrigues Y VocelkaRussiaXuxue Feng QUALIFIED
Maisha C GlickFranceOnyama Limba RENEWAL
Salvatore L FigeroaSpainIvan Magalhaes UNQUALIFIED
Smith A ButtIndiaElwin Sharvill NEW
Faith K MorascaItalyElwin Sharvill QUALIFIED
Ivar D MarrierIndiaAsiya Javayant QUALIFIED
Kadeem T MacleadIndiaElwin Sharvill RENEWAL
Wickens F FollerArgentinaIvan Magalhaes NEGOTIATION
Silvio D SlusarskiAustraliaBernardo Dominic NEGOTIATION
Silvio O ButtFranceAnna Fali PROPOSAL
Julie D RulapaughRussiaIvan Magalhaes RENEWAL
Antonio C RimBrazilStephen Shaw NEGOTIATION
Mayumi N CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Claire C AlbaresUnited KingdomAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James M MaletCanadaAmy Elsner RENEWAL
Alejandro E NestleRussiaOnyama Limba PROPOSAL
Kadeem I SlusarskiCanadaBernardo Dominic UNQUALIFIED
Costa S AmigonRussiaBernardo Dominic QUALIFIED
Ashley J PoquetteCanadaAnna Fali PROPOSAL
Sinclair R TollnerBrazilAsiya Javayant UNQUALIFIED
Chavez N PoquetteSpainAsiya Javayant UNQUALIFIED
Maisha Q WieserArgentinaAnna Fali QUALIFIED
Deepesh Z InouyeFranceOnyama Limba RENEWAL
Alejandro W MarrierFranceStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna P NestleIndia2024-06-13Chapman, Ross E Esq QUALIFIED37Bernardo Dominic
1001Tony C DarakjyIndia2024-06-05Commercial Press UNQUALIFIED5Ioni Bowcher
1002Leja B InouyeJapan2024-06-07Truhlar And Truhlar Attys NEW91Anna Fali
1003Greenwood H OstroskyArgentina2024-05-20King, Christopher A Esq RENEWAL80Amy Elsner
1004Misaki D MaletAustralia2024-05-16Rousseaux, Michael Esq QUALIFIED73Amy Elsner
1005Izzy J FigeroaRussia2024-06-09Rousseaux, Michael Esq UNQUALIFIED36Xuxue Feng
1006Mayumi M StensethAustralia2024-05-27Chemel, James L Cpa PROPOSAL96Xuxue Feng
1007Arvin E IturbideAustralia2024-05-15Rousseaux, Michael Esq RENEWAL72Amy Elsner
1008Rodrigues Q GlickArgentina2024-05-28Chemel, James L Cpa UNQUALIFIED24Ioni Bowcher
1009Kaitlin S IturbideArgentina2024-06-09Printing Dimensions UNQUALIFIED12Onyama Limba
1010Isabel Y GauchoAustralia2024-06-09Buckley Miller Wright NEGOTIATION29Elwin Sharvill
1011Morrow Y SaylorsIndia2024-05-20Truhlar And Truhlar Attys QUALIFIED40Amy Elsner
1012Jeanfrancois S FollerBrazil2024-06-04Rousseaux, Michael Esq UNQUALIFIED27Xuxue Feng
1013Smith X PaprockiCanada2024-06-13Truhlar And Truhlar Attys QUALIFIED49Bernardo Dominic
1014Emily P ButtBrazil2024-05-21Printing Dimensions PROPOSAL7Elwin Sharvill
1015Morrow E SaylorsRussia2024-06-02Buckley Miller Wright PROPOSAL4Stephen Shaw
1016Clifford R OstroskyRussia2024-06-08Rousseaux, Michael Esq RENEWAL23Ioni Bowcher
1017Jeanfrancois U FigeroaSpain2024-05-25Dorl, James J Esq NEW73Onyama Limba
1018Rodrigues U BriddickItaly2024-06-10Feiner Bros NEGOTIATION86Amy Elsner
1019Mujtaba H VocelkaGermany2024-05-28King, Christopher A Esq UNQUALIFIED67Ivan Magalhaes
1020Aruna I GarufiFrance2024-06-11Chemel, James L Cpa NEW52Asiya Javayant
1021Kaitlin O FigeroaGermany2024-06-06Chapman, Ross E Esq UNQUALIFIED98Bernardo Dominic
1022Aditya I OstroskyIndia2024-05-20Chemel, James L Cpa NEGOTIATION41Ioni Bowcher
1023Julie T MorascaArgentina2024-05-29Chemel, James L Cpa UNQUALIFIED38Elwin Sharvill
1024Alejandro J NickaCanada2024-05-28Rousseaux, Michael Esq NEW79Elwin Sharvill
1025Maria U RoysterIndia2024-06-01Commercial Press NEGOTIATION72Anna Fali
1026Leon N PoquetteArgentina2024-05-17Dorl, James J Esq RENEWAL78Elwin Sharvill
1027Johnson Q CampainAustralia2024-06-06Feltz Printing Service NEGOTIATION29Stephen Shaw
1028Stacey N ButtFrance2024-05-17Rousseaux, Michael Esq QUALIFIED76Xuxue Feng
1029Izzy M SchemmerAustralia2024-05-22Chanay, Jeffrey A Esq NEW3Amy Elsner
1030Darci V FerenczSpain2024-05-29Dorl, James J Esq NEW15Anna Fali
1031Sinclair A CampainRussia2024-05-25Feiner Bros QUALIFIED74Ioni Bowcher
1032Aruna S KuskoRussia2024-05-18Feltz Printing Service PROPOSAL12Amy Elsner
1033Deepesh V BowleyBrazil2024-06-07Chapman, Ross E Esq NEGOTIATION53Elwin Sharvill
1034Rodrigues Q FlosiJapan2024-05-17Benton, John B Jr NEGOTIATION44Elwin Sharvill
1035Ashley F BologniaAustralia2024-05-23Morlong Associates NEGOTIATION43Ivan Magalhaes
1036Ashley C CaudyBrazil2024-05-31Printing Dimensions NEGOTIATION92Stephen Shaw
1037Greenwood Y SergiRussia2024-06-02Commercial Press PROPOSAL46Onyama Limba
1038Costa T OstroskyGermany2024-05-19Chanay, Jeffrey A Esq RENEWAL9Stephen Shaw
1039Morrow T OstroskyFrance2024-05-29Dorl, James J Esq QUALIFIED43Ioni Bowcher
1040Silvio N CaldareraBrazil2024-06-09Morlong Associates UNQUALIFIED31Bernardo Dominic
1041Deepesh U RutaSpain2024-05-29Benton, John B Jr QUALIFIED32Amy Elsner
1042Silvio C WhobreyIndia2024-05-21Benton, John B Jr RENEWAL97Amy Elsner
1043Costa S OldroydArgentina2024-05-24Morlong Associates QUALIFIED91Ioni Bowcher
1044Murillo B PaprockiFrance2024-05-17Dorl, James J Esq NEW28Ioni Bowcher
1045Izzy M GauchoUnited Kingdom2024-06-11Truhlar And Truhlar Attys RENEWAL29Onyama Limba
1046Izzy U FollerItaly2024-06-09Chanay, Jeffrey A Esq PROPOSAL39Onyama Limba
1047Murillo E SchemmerSpain2024-05-19Feltz Printing Service NEGOTIATION85Bernardo Dominic
1048James G RulapaughArgentina2024-05-24Dorl, James J Esq RENEWAL50Xuxue Feng
1049Leon V SchemmerAustralia2024-06-10Commercial Press NEW15Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair W PoquetteGermanyBernardo Dominic QUALIFIED
Deepesh I VenereFranceIoni Bowcher PROPOSAL
Darci T RoysterBrazilXuxue Feng QUALIFIED
Julie B CaldareraJapanElwin Sharvill RENEWAL
Greenwood V MarrierRussiaAsiya Javayant NEGOTIATION
Nicolas S SergiUnited KingdomXuxue Feng PROPOSAL
Smith U GauchoItalyIoni Bowcher PROPOSAL
Stacey J AlbaresSpainAnna Fali UNQUALIFIED
David V FlosiBrazilOnyama Limba QUALIFIED
Ivar X SchemmerArgentinaAsiya Javayant NEW
James W BowleyAustraliaAnna Fali UNQUALIFIED
Maria Z GlickUnited KingdomIoni Bowcher QUALIFIED
Maria Y AmigonUnited KingdomElwin Sharvill RENEWAL
Leja K NestleGermanyIvan Magalhaes UNQUALIFIED
Alejandro P WhobreyIndiaBernardo Dominic UNQUALIFIED
Juan K NestleItalyElwin Sharvill NEGOTIATION
James Y AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh I SergiCanadaElwin Sharvill NEW
James A WaycottSpainBernardo Dominic NEGOTIATION
Sinclair U GlickGermanyXuxue Feng PROPOSAL
Mayumi C OldroydArgentinaStephen Shaw NEGOTIATION
Cody F ButtGermanyAnna Fali QUALIFIED
Darci V SchemmerUnited KingdomElwin Sharvill QUALIFIED
Rodrigues A BologniaIndiaBernardo Dominic RENEWAL
Faith C MaletAustraliaBernardo Dominic NEGOTIATION
Aruna M IturbideUnited KingdomAmy Elsner PROPOSAL
Mayumi G BriddickUnited KingdomIvan Magalhaes NEW
Octavia A FollerUnited KingdomStephen Shaw NEGOTIATION
Mujtaba X ButtItalyOnyama Limba UNQUALIFIED
Munro I DilliardItalyBernardo Dominic NEW
Juan B OldroydCanadaIvan Magalhaes QUALIFIED
Francesco K FerenczCanadaAsiya Javayant RENEWAL
Aika D FlosiArgentinaAmy Elsner NEGOTIATION
Jefferson W RimFranceElwin Sharvill UNQUALIFIED
Faith G CaldareraIndiaElwin Sharvill UNQUALIFIED
James R OstroskyGermanyOnyama Limba NEW
Johnson V OldroydCanadaOnyama Limba QUALIFIED
Kaitlin Z NickaItalyOnyama Limba NEW
Aruna R CampainAustraliaElwin Sharvill PROPOSAL
Aditya X NestleBrazilBernardo Dominic UNQUALIFIED
Stacey Y CampainGermanyBernardo Dominic PROPOSAL
Misaki D MaletAustraliaAnna Fali NEW
Chavez V CampainJapanOnyama Limba QUALIFIED
Salvatore M MorascaFranceAnna Fali UNQUALIFIED
Mayumi G WhobreyCanadaBernardo Dominic RENEWAL
Octavia U MaletItalyIoni Bowcher UNQUALIFIED
Jeanfrancois L RulapaughUnited KingdomAsiya Javayant PROPOSAL
Greenwood N SchemmerBrazilXuxue Feng RENEWAL
Ashley M FlosiBrazilStephen Shaw NEW
Murillo Q StensethFranceOnyama Limba UNQUALIFIED
Frozen Columns
Name
Chavez G Butt
Aditya D Paprocki
Costa S Bowley
Octavia J Briddick
Aruna I Slusarski
Tony Q Ferencz
Octavia O Rulapaugh
Izzy H Shinko
Adams W Ferencz
Salvatore A Foller
Maisha B Gillian
Kadeem W Briddick
Salvatore U Marrier
Octavia Z Vocelka
David K Poquette
Murillo L Darakjy
Juan Q Whobrey
Maisha K Shinko
Cody N Tollner
Silvio U Paprocki
Jefferson D Schemmer
Ricardo M Whobrey
Jones Q Stenseth
Sinclair Q Sergi
Leja Z Bowley
Kadeem W Figeroa
Jones W Chui
Aditya D Venere
Misaki E Nestle
Emily C Briddick
Deepesh L Figeroa
Darci M Venere
Isabel M Schemmer
Greenwood Z Doe
Maria U Amigon
Tony G Doe
Stacey B Paprocki
Jeanfrancois L Kolmetz
Munro W Kolmetz
Clifford S Rulapaugh
Aika H Venere
Arvin Q Sergi
Nicolas X Doe
Murillo G Darakjy
Mujtaba Z Garufi
Izzy R Maclead
Alejandro K Chui
Jefferson M Royster
Leon I Rulapaugh
Maria K Waycott
IdCountryDate
1000Brazil2024-06-13
1001Japan2024-05-17
1002Canada2024-06-09
1003Australia2024-06-10
1004Brazil2024-06-03
1005Germany2024-06-08
1006Australia2024-05-15
1007France2024-05-29
1008France2024-06-13
1009Australia2024-05-21
1010India2024-05-24
1011Italy2024-06-07
1012France2024-05-18
1013Spain2024-06-06
1014United Kingdom2024-06-13
1015France2024-05-21
1016Brazil2024-05-29
1017United Kingdom2024-06-06
1018Germany2024-06-02
1019Spain2024-06-06
1020Brazil2024-05-17
1021Argentina2024-06-08
1022United Kingdom2024-05-19
1023Brazil2024-05-29
1024France2024-05-29
1025Japan2024-05-26
1026Italy2024-05-17
1027Germany2024-05-16
1028United Kingdom2024-05-22
1029Argentina2024-06-11
1030Australia2024-05-16
1031Russia2024-05-20
1032Russia2024-06-10
1033Australia2024-05-30
1034Italy2024-06-10
1035France2024-06-01
1036France2024-05-28
1037Japan2024-06-01
1038Japan2024-06-12
1039Canada2024-06-04
1040France2024-05-31
1041United Kingdom2024-05-28
1042Canada2024-06-07
1043Brazil2024-05-16
1044United Kingdom2024-05-21
1045India2024-05-19
1046Germany2024-05-20
1047India2024-05-28
1048Argentina2024-06-07
1049Brazil2024-06-04

On-Demand Data

NameIdCountryDate
Claire B Bowley1000Italy2024-05-31
Antonio I Morasca1001Australia2024-05-20
Aruna T Glick1002Germany2024-06-11
Julie B Kolmetz1003Italy2024-06-12
Kaitlin W Venere1004Australia2024-05-24
Aika E Paprocki1005United Kingdom2024-05-27
Octavia R Darakjy1006Japan2024-06-05
Chavez O Stockham1007Australia2024-06-09
Munro K Nestle1008Japan2024-06-07
Mayumi H Waycott1009France2024-05-24
Tony D Campain1010Japan2024-05-29
Jefferson U Sergi1011United Kingdom2024-05-28
Jones B Gillian1012United Kingdom2024-06-02
Maria V Venere1013Australia2024-06-06
Salvatore F Rulapaugh1014Argentina2024-06-09
Antonio F Gillian1015Spain2024-05-29
Munro P Rulapaugh1016Germany2024-06-03
Emily Z Whobrey1017Canada2024-05-27
Jones D Waycott1018Argentina2024-06-06
Jones Q Ruta1019Canada2024-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem S IturbideFranceOnyama Limba RENEWAL
Francesco S GlickAustraliaAsiya Javayant UNQUALIFIED
Ivar W MarrierIndiaStephen Shaw NEGOTIATION
Rodrigues C WaycottBrazilStephen Shaw NEGOTIATION
Emily V MarrierGermanyIoni Bowcher RENEWAL
Maisha K VenereUnited KingdomAsiya Javayant PROPOSAL
Rodrigues Q WieserRussiaAnna Fali PROPOSAL
Chavez E MorascaItalyAmy Elsner UNQUALIFIED
Izzy F OldroydCanadaElwin Sharvill UNQUALIFIED
Maria A MaletAustraliaAsiya Javayant PROPOSAL
Aruna M NickaBrazilIvan Magalhaes PROPOSAL
Leon L SergiRussiaOnyama Limba NEGOTIATION
Jennifer Z BologniaSpainXuxue Feng RENEWAL
Aika K RulapaughItalyIvan Magalhaes NEGOTIATION
Emily U RoysterArgentinaStephen Shaw NEGOTIATION
Ivar J AmigonCanadaAnna Fali PROPOSAL
Leon Y BowleySpainOnyama Limba UNQUALIFIED
Adams F SchemmerRussiaAnna Fali UNQUALIFIED
Jennifer W ChuiUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba J BowleyArgentinaIoni Bowcher QUALIFIED
Cody H PoquetteSpainAmy Elsner QUALIFIED
Arvin A CampainBrazilIvan Magalhaes NEW
Jefferson D KuskoArgentinaAmy Elsner NEGOTIATION
Julie S DoeJapanIvan Magalhaes NEW
Wickens O OldroydSpainBernardo Dominic NEW
Kaitlin Z FlosiRussiaBernardo Dominic NEW
Kadeem S CaudyArgentinaIvan Magalhaes NEW
Stacey Q GauchoIndiaAnna Fali QUALIFIED
Clifford N StockhamSpainAnna Fali QUALIFIED
Greenwood M RoysterRussiaAnna Fali UNQUALIFIED
Claire S SchemmerIndiaStephen Shaw NEW
Kaitlin O AmigonJapanStephen Shaw NEGOTIATION
Wickens M OstroskyAustraliaBernardo Dominic UNQUALIFIED
Alejandro E SaylorsItalyAnna Fali NEW
Stacey S GlickCanadaXuxue Feng QUALIFIED
Stacey A RoysterSpainBernardo Dominic RENEWAL
Salvatore B VenereAustraliaXuxue Feng RENEWAL
Jefferson E CaudyAustraliaIoni Bowcher RENEWAL
Ashley M CaudyFranceAnna Fali NEGOTIATION
Isabel T SlusarskiArgentinaAmy Elsner NEW

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