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
Costa R PaprockiUnited KingdomXuxue Feng QUALIFIED
Antonio R GauchoUnited KingdomStephen Shaw NEW
Tony F FollerBrazilBernardo Dominic UNQUALIFIED
Maria H SergiGermanyAnna Fali PROPOSAL
Octavia A WhobreyRussiaIvan Magalhaes NEGOTIATION
Greenwood V IturbideCanadaAsiya Javayant QUALIFIED
Claire H RutaCanadaElwin Sharvill NEGOTIATION
Morrow Z ShinkoItalyIoni Bowcher NEW
Maisha D FlosiFranceAmy Elsner RENEWAL
Maisha U NestleArgentinaIoni Bowcher RENEWAL
Salvatore J DoeBrazilAnna Fali NEGOTIATION
Mayumi S PaprockiRussiaIoni Bowcher PROPOSAL
Salvatore R TollnerCanadaIoni Bowcher NEW
Kaitlin Y CaldareraJapanIvan Magalhaes QUALIFIED
Rodrigues T CampainRussiaIoni Bowcher NEW
Alejandro F PaprockiBrazilBernardo Dominic NEW
Izzy C RulapaughItalyAsiya Javayant NEGOTIATION
Antonio E CaldareraJapanBernardo Dominic PROPOSAL
Wickens J DarakjyIndiaIvan Magalhaes UNQUALIFIED
Munro I CaldareraUnited KingdomOnyama Limba QUALIFIED
Murillo B PerinBrazilAmy Elsner NEW
Claire V SlusarskiIndiaOnyama Limba UNQUALIFIED
Isabel Z VocelkaRussiaXuxue Feng PROPOSAL
Leja K KuskoBrazilIvan Magalhaes RENEWAL
Jones Z MaletCanadaElwin Sharvill UNQUALIFIED
Morrow F RoysterGermanyAnna Fali QUALIFIED
Antonio Q NickaCanadaAnna Fali QUALIFIED
Cody B AlbaresUnited KingdomBernardo Dominic RENEWAL
Wickens B PerinJapanAsiya Javayant NEW
Claire T MaletCanadaAnna Fali NEGOTIATION
Clifford G BowleyIndiaIoni Bowcher NEGOTIATION
Maisha T MaletArgentinaAsiya Javayant PROPOSAL
Leja N MacleadJapanElwin Sharvill PROPOSAL
Morrow K BowleyFranceElwin Sharvill PROPOSAL
David M RutaFranceIvan Magalhaes NEGOTIATION
Murillo K NickaGermanyIoni Bowcher QUALIFIED
Maria O GillianJapanAnna Fali UNQUALIFIED
Wickens C ChuiJapanXuxue Feng NEGOTIATION
Tony S RulapaughSpainAnna Fali NEW
Misaki Y KuskoArgentinaIoni Bowcher UNQUALIFIED
Sinclair Y AlbaresGermanyIoni Bowcher UNQUALIFIED
David W VocelkaRussiaAnna Fali NEW
Claire E VocelkaGermanyElwin Sharvill NEGOTIATION
Jeanfrancois M SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro W SchemmerUnited KingdomOnyama Limba RENEWAL
Antonio Y VocelkaSpainIvan Magalhaes NEW
Ivar E ShinkoRussiaIvan Magalhaes UNQUALIFIED
Maria G OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Aika A RoysterGermanyElwin Sharvill RENEWAL
Jeanfrancois K SergiBrazilOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore N WaycottArgentinaAnna Fali RENEWAL
David J ShinkoIndiaIvan Magalhaes NEGOTIATION
Wickens U KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Jones F OstroskyArgentinaAnna Fali NEGOTIATION
Emily K NestleFranceBernardo Dominic PROPOSAL
Ricardo W CampainAustraliaElwin Sharvill UNQUALIFIED
Tony X SergiCanadaOnyama Limba RENEWAL
Darci N WaycottSpainBernardo Dominic NEW
Chavez Z MaletAustraliaAnna Fali PROPOSAL
Alejandro X PoquetteUnited KingdomOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford G CampainBrazil2024-05-30Commercial Press NEW9Anna Fali
1001Mujtaba D MaletUnited Kingdom2024-06-22Chanay, Jeffrey A Esq QUALIFIED78Ioni Bowcher
1002Salvatore U BowleyAustralia2024-06-19Chapman, Ross E Esq QUALIFIED6Asiya Javayant
1003Leja I IturbideArgentina2024-06-07Feltz Printing Service UNQUALIFIED41Stephen Shaw
1004James J ChuiSpain2024-05-27Chemel, James L Cpa RENEWAL82Ivan Magalhaes
1005Arvin R MorascaAustralia2024-06-13Rousseaux, Michael Esq NEGOTIATION38Xuxue Feng
1006Juan C ButtRussia2024-06-17Truhlar And Truhlar Attys UNQUALIFIED90Amy Elsner
1007Mujtaba J WaycottSpain2024-06-11Rousseaux, Michael Esq NEW15Ioni Bowcher
1008Leon B WieserRussia2024-06-16Chanay, Jeffrey A Esq QUALIFIED73Ioni Bowcher
1009Aruna G PoquetteUnited Kingdom2024-06-16Dorl, James J Esq RENEWAL70Elwin Sharvill
1010Darci I ChuiSpain2024-06-11Feiner Bros NEW87Elwin Sharvill
1011Tony I NestleSpain2024-06-10Truhlar And Truhlar Attys NEGOTIATION39Stephen Shaw
1012Juan Z DoeArgentina2024-06-19Buckley Miller Wright RENEWAL94Xuxue Feng
1013Salvatore C RoysterBrazil2024-06-17Buckley Miller Wright UNQUALIFIED72Asiya Javayant
1014Maria Z StockhamFrance2024-06-16Feltz Printing Service NEW4Asiya Javayant
1015Murillo Q CaudyArgentina2024-06-01Chapman, Ross E Esq PROPOSAL25Bernardo Dominic
1016Juan J RoysterCanada2024-06-19Rangoni Of Florence QUALIFIED83Anna Fali
1017Mayumi V WaycottJapan2024-06-14Chemel, James L Cpa PROPOSAL96Onyama Limba
1018Ricardo Y WhobreyArgentina2024-06-06Chemel, James L Cpa RENEWAL94Ivan Magalhaes
1019Izzy T SchemmerBrazil2024-06-07Benton, John B Jr PROPOSAL42Elwin Sharvill
1020Jones K DilliardItaly2024-06-07Truhlar And Truhlar Attys NEW89Ioni Bowcher
1021Sinclair C CaudyAustralia2024-06-03Rangoni Of Florence UNQUALIFIED67Ivan Magalhaes
1022Misaki D GauchoRussia2024-06-23Truhlar And Truhlar Attys NEW1Bernardo Dominic
1023Alejandro E AmigonGermany2024-06-19Truhlar And Truhlar Attys NEW1Xuxue Feng
1024Aruna G VocelkaItaly2024-06-01King, Christopher A Esq NEW81Onyama Limba
1025Costa S DarakjySpain2024-06-21Buckley Miller Wright RENEWAL65Ioni Bowcher
1026Adams D KuskoItaly2024-06-06Printing Dimensions NEW79Stephen Shaw
1027David O FerenczRussia2024-06-17Chanay, Jeffrey A Esq NEW27Ioni Bowcher
1028Ricardo I StockhamCanada2024-06-04Chemel, James L Cpa NEGOTIATION80Ivan Magalhaes
1029Octavia M KolmetzGermany2024-06-12Dorl, James J Esq NEW57Anna Fali
1030Emily F CampainCanada2024-06-15Buckley Miller Wright NEGOTIATION34Anna Fali
1031Maria J CaldareraSpain2024-06-21King, Christopher A Esq NEGOTIATION43Asiya Javayant
1032Darci K BowleyJapan2024-06-10Rousseaux, Michael Esq UNQUALIFIED17Anna Fali
1033Salvatore X BowleyFrance2024-06-17Rousseaux, Michael Esq NEW79Bernardo Dominic
1034Rodrigues D OstroskyGermany2024-06-09Chanay, Jeffrey A Esq QUALIFIED81Bernardo Dominic
1035Ricardo A RimItaly2024-06-02Dorl, James J Esq QUALIFIED84Amy Elsner
1036Morrow U PaprockiUnited Kingdom2024-06-06Rousseaux, Michael Esq QUALIFIED60Ioni Bowcher
1037Aruna C WieserArgentina2024-06-15Rangoni Of Florence PROPOSAL94Amy Elsner
1038Antonio F RulapaughUnited Kingdom2024-06-16King, Christopher A Esq QUALIFIED89Anna Fali
1039Leon X MaletBrazil2024-06-07King, Christopher A Esq RENEWAL42Ivan Magalhaes
1040Aika E BologniaItaly2024-05-31Dorl, James J Esq UNQUALIFIED49Ioni Bowcher
1041Jennifer T PoquetteBrazil2024-06-16Feltz Printing Service QUALIFIED66Anna Fali
1042Leon Y FollerIndia2024-06-04Feltz Printing Service QUALIFIED76Ivan Magalhaes
1043Leja J DarakjyCanada2024-06-03Commercial Press UNQUALIFIED26Xuxue Feng
1044Murillo B WhobreyArgentina2024-06-19Chanay, Jeffrey A Esq UNQUALIFIED21Ioni Bowcher
1045David N VenereCanada2024-06-11Feiner Bros NEW96Bernardo Dominic
1046Deepesh C OstroskyCanada2024-06-06Chanay, Jeffrey A Esq RENEWAL45Anna Fali
1047Jefferson V MaletJapan2024-06-06Rousseaux, Michael Esq NEGOTIATION41Elwin Sharvill
1048Adams D DoeJapan2024-05-28Chemel, James L Cpa NEW8Ioni Bowcher
1049Kadeem S SergiBrazil2024-06-22Printing Dimensions NEGOTIATION8Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro I SlusarskiFranceAnna Fali NEGOTIATION
Nicolas H GillianUnited KingdomAmy Elsner QUALIFIED
Juan O MaletJapanIvan Magalhaes NEGOTIATION
Ivar O DoeUnited KingdomXuxue Feng PROPOSAL
Sinclair Z SaylorsJapanOnyama Limba QUALIFIED
Francesco P TollnerJapanAmy Elsner PROPOSAL
Juan G WaycottJapanAnna Fali NEGOTIATION
Jefferson Q GlickUnited KingdomAsiya Javayant NEGOTIATION
Alejandro J MaletFranceXuxue Feng UNQUALIFIED
Francesco P MacleadFranceAnna Fali NEGOTIATION
Leja N RoysterIndiaStephen Shaw RENEWAL
David A VocelkaGermanyAnna Fali NEGOTIATION
Stacey B InouyeRussiaAmy Elsner PROPOSAL
Munro S GlickAustraliaAnna Fali QUALIFIED
Aditya F RulapaughIndiaAnna Fali PROPOSAL
Salvatore Q RulapaughRussiaOnyama Limba NEW
Stacey I SergiFranceXuxue Feng RENEWAL
Isabel H ButtBrazilAsiya Javayant UNQUALIFIED
Munro P MorascaCanadaStephen Shaw NEGOTIATION
Octavia H InouyeItalyElwin Sharvill QUALIFIED
Stacey W CaldareraAustraliaStephen Shaw RENEWAL
Deepesh C IturbideSpainStephen Shaw PROPOSAL
Jones O FollerArgentinaBernardo Dominic QUALIFIED
Jeanfrancois C PerinSpainAnna Fali PROPOSAL
Cody C PerinArgentinaIoni Bowcher PROPOSAL
Silvio A CaldareraAustraliaAnna Fali UNQUALIFIED
Adams E MarrierRussiaAnna Fali NEW
Ashley J MaletRussiaIoni Bowcher NEGOTIATION
Leon A TollnerArgentinaOnyama Limba PROPOSAL
Isabel Z SaylorsSpainAsiya Javayant QUALIFIED
Jeanfrancois E DilliardCanadaAsiya Javayant QUALIFIED
Ricardo P PaprockiCanadaOnyama Limba RENEWAL
Adams P GlickIndiaOnyama Limba QUALIFIED
Sinclair C WhobreyArgentinaAnna Fali PROPOSAL
Arvin D WieserBrazilIvan Magalhaes PROPOSAL
Johnson R NickaAustraliaBernardo Dominic UNQUALIFIED
Mayumi G BriddickBrazilIoni Bowcher UNQUALIFIED
Murillo W InouyeUnited KingdomOnyama Limba NEGOTIATION
Mujtaba I MaletUnited KingdomAmy Elsner PROPOSAL
Julie Y CampainAustraliaAsiya Javayant UNQUALIFIED
Isabel G MacleadUnited KingdomAsiya Javayant QUALIFIED
Octavia F WhobreyBrazilXuxue Feng QUALIFIED
Smith W MarrierRussiaIvan Magalhaes RENEWAL
Salvatore I PoquetteAustraliaStephen Shaw NEGOTIATION
Leja C BologniaAustraliaAsiya Javayant NEGOTIATION
Jefferson W BologniaGermanyOnyama Limba UNQUALIFIED
Ivar A RutaIndiaAmy Elsner NEGOTIATION
Cody Y InouyeArgentinaAnna Fali RENEWAL
James C KolmetzFranceIvan Magalhaes NEGOTIATION
Jeanfrancois D FollerSpainAnna Fali NEW
Frozen Columns
Name
Munro Y Nicka
James W Gillian
Kadeem L Waycott
Aika U Poquette
Isabel S Ostrosky
Morrow I Shinko
James F Maclead
Isabel X Darakjy
Greenwood Q Malet
Adams J Kolmetz
Jones Y Malet
Deepesh D Oldroyd
Greenwood O Slusarski
Antonio Q Ferencz
Kaitlin T Garufi
Sinclair Z Doe
Antonio L Kusko
Juan R Doe
Morrow C Whobrey
Kaitlin O Saylors
Greenwood I Doe
David J Gaucho
Salvatore E Ostrosky
Ivar W Caudy
Francesco Y Stockham
Jennifer I Glick
Antonio I Maclead
Octavia K Slusarski
Leja D Caudy
Juan H Ferencz
Morrow U Sergi
Nicolas A Sergi
Chavez K Oldroyd
Octavia Q Kolmetz
Ivar D Paprocki
Julie H Kusko
Claire J Albares
Aditya Z Tollner
Stacey M Kusko
Mayumi W Caldarera
Darci L Saylors
Emily G Shinko
Greenwood Y Caldarera
Greenwood D Poquette
Cody I Stenseth
Alejandro D Bowley
Deepesh L Albares
Jones K Flosi
Ashley J Stockham
Murillo K Gaucho
IdCountryDate
1000Canada2024-05-31
1001Japan2024-06-16
1002Argentina2024-06-08
1003Italy2024-06-07
1004Japan2024-06-22
1005Brazil2024-06-01
1006Australia2024-05-28
1007Australia2024-06-17
1008Italy2024-05-29
1009India2024-05-27
1010India2024-06-03
1011Germany2024-06-04
1012Canada2024-05-30
1013Argentina2024-06-01
1014Japan2024-05-27
1015Spain2024-05-28
1016Italy2024-06-09
1017France2024-05-25
1018Spain2024-06-08
1019Spain2024-05-30
1020India2024-06-03
1021India2024-06-03
1022France2024-05-25
1023Russia2024-06-14
1024Brazil2024-06-10
1025United Kingdom2024-05-30
1026India2024-06-05
1027India2024-06-07
1028Germany2024-06-14
1029Japan2024-06-16
1030Argentina2024-06-06
1031Argentina2024-06-21
1032Canada2024-06-06
1033Canada2024-06-15
1034Germany2024-06-01
1035Germany2024-06-23
1036Brazil2024-06-22
1037Brazil2024-06-07
1038Argentina2024-05-29
1039France2024-05-26
1040United Kingdom2024-06-14
1041Italy2024-06-06
1042United Kingdom2024-06-02
1043Brazil2024-06-07
1044Germany2024-06-19
1045Canada2024-06-20
1046India2024-06-17
1047Japan2024-06-07
1048Canada2024-05-26
1049Spain2024-06-21

On-Demand Data

NameIdCountryDate
Clifford W Perin1000Germany2024-06-12
Morrow N Wieser1001Australia2024-06-20
Antonio K Poquette1002Argentina2024-06-11
Aika Y Darakjy1003Germany2024-06-08
Mayumi K Doe1004Brazil2024-06-10
David C Waycott1005Brazil2024-06-06
Kaitlin S Doe1006Germany2024-06-23
Jefferson C Poquette1007Japan2024-06-14
Jefferson E Saylors1008United Kingdom2024-06-21
Jones W Poquette1009Canada2024-06-14
Sinclair V Shinko1010Germany2024-05-31
Adams H Caldarera1011Canada2024-06-01
Jefferson Y Saylors1012France2024-06-02
Stacey J Nestle1013India2024-06-12
Sinclair O Nicka1014France2024-06-19
Nicolas O Ruta1015Italy2024-06-17
Ricardo T Gillian1016India2024-05-30
Juan M Paprocki1017Spain2024-06-15
Munro N Poquette1018Canada2024-05-28
Smith M Morasca1019Argentina2024-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro T FlosiAustraliaXuxue Feng PROPOSAL
Costa Q RulapaughIndiaElwin Sharvill NEW
Clifford F RulapaughAustraliaElwin Sharvill RENEWAL
Leon S OstroskySpainAsiya Javayant UNQUALIFIED
Sinclair Q RulapaughSpainAmy Elsner NEW
Misaki H InouyeItalyAmy Elsner QUALIFIED
Costa G SergiRussiaAmy Elsner NEW
Maria B SaylorsAustraliaAmy Elsner PROPOSAL
Jeanfrancois Y CampainRussiaOnyama Limba PROPOSAL
Murillo K CaudyUnited KingdomElwin Sharvill NEW
Salvatore O VocelkaRussiaElwin Sharvill PROPOSAL
Salvatore L SergiBrazilBernardo Dominic PROPOSAL
Clifford U GlickIndiaStephen Shaw RENEWAL
Wickens H GillianJapanXuxue Feng QUALIFIED
Salvatore M KuskoFranceElwin Sharvill RENEWAL
Mayumi C GarufiArgentinaAsiya Javayant PROPOSAL
Ivar E GlickFranceStephen Shaw NEGOTIATION
Faith X BologniaArgentinaBernardo Dominic NEW
Leon G OldroydUnited KingdomIoni Bowcher NEW
Francesco S ChuiGermanyIvan Magalhaes QUALIFIED
Adams Q KolmetzItalyIoni Bowcher PROPOSAL
Tony T FerenczBrazilAsiya Javayant PROPOSAL
Antonio T KuskoAustraliaAsiya Javayant NEW
Jefferson Z WhobreyGermanyBernardo Dominic NEGOTIATION
Jennifer X RulapaughBrazilIoni Bowcher RENEWAL
Wickens C KuskoBrazilIoni Bowcher QUALIFIED
Kaitlin I WieserSpainElwin Sharvill RENEWAL
Jefferson U MaletRussiaXuxue Feng RENEWAL
Isabel Y FerenczRussiaXuxue Feng NEGOTIATION
Octavia R RutaUnited KingdomStephen Shaw NEW
Morrow R RimUnited KingdomAsiya Javayant RENEWAL
Darci U IturbideAustraliaAmy Elsner NEGOTIATION
Salvatore N GarufiIndiaXuxue Feng NEGOTIATION
Mayumi L GlickCanadaStephen Shaw NEGOTIATION
Leja W StensethArgentinaElwin Sharvill NEGOTIATION
Claire S AmigonItalyAsiya Javayant RENEWAL
Leon S GlickGermanyStephen Shaw QUALIFIED
Faith H PaprockiItalyIvan Magalhaes QUALIFIED
Juan I RulapaughGermanyIoni Bowcher PROPOSAL
Kaitlin J VenereGermanyIvan Magalhaes NEGOTIATION

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