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
Chavez L DilliardFranceAmy Elsner RENEWAL
Adams R SlusarskiGermanyXuxue Feng PROPOSAL
Sinclair S AlbaresArgentinaXuxue Feng NEGOTIATION
Darci T RulapaughUnited KingdomXuxue Feng RENEWAL
Ivar X DarakjyFranceIvan Magalhaes NEGOTIATION
Munro L BologniaJapanIvan Magalhaes QUALIFIED
Chavez L AmigonArgentinaIvan Magalhaes PROPOSAL
Johnson B SlusarskiFranceIvan Magalhaes RENEWAL
Kaitlin J ShinkoBrazilAmy Elsner PROPOSAL
Isabel M GlickItalyIoni Bowcher UNQUALIFIED
Darci D IturbideAustraliaIoni Bowcher PROPOSAL
Arvin N CaudySpainIvan Magalhaes RENEWAL
Darci M OldroydJapanXuxue Feng UNQUALIFIED
Aruna B FlosiGermanyXuxue Feng NEW
Kadeem N FlosiAustraliaIvan Magalhaes PROPOSAL
Chavez E NickaIndiaIoni Bowcher PROPOSAL
Wickens Q OstroskyRussiaXuxue Feng RENEWAL
Maria R FerenczBrazilOnyama Limba NEW
Johnson Y PerinFranceXuxue Feng NEGOTIATION
Mujtaba T ShinkoSpainAnna Fali QUALIFIED
Leon G CampainUnited KingdomAsiya Javayant RENEWAL
Cody X SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Wickens A CaudyGermanyOnyama Limba RENEWAL
David S FollerGermanyIoni Bowcher PROPOSAL
Kaitlin A VenereUnited KingdomAnna Fali QUALIFIED
Leja Q FlosiUnited KingdomStephen Shaw UNQUALIFIED
Faith O RoysterBrazilAnna Fali QUALIFIED
Aika M GlickGermanyIvan Magalhaes RENEWAL
Darci T CampainItalyElwin Sharvill NEW
Salvatore R PoquetteUnited KingdomAmy Elsner NEW
Emily D FollerRussiaAsiya Javayant NEW
Julie M MaletArgentinaAnna Fali UNQUALIFIED
Misaki P AlbaresRussiaAnna Fali NEGOTIATION
Sinclair D PaprockiJapanIvan Magalhaes PROPOSAL
Nicolas H NickaItalyBernardo Dominic NEGOTIATION
Jefferson L GlickJapanOnyama Limba QUALIFIED
Aditya H AlbaresBrazilAsiya Javayant NEW
Adams P GarufiAustraliaIoni Bowcher NEW
David X MaletBrazilIoni Bowcher RENEWAL
Wickens O WhobreyFranceIvan Magalhaes QUALIFIED
Jennifer V FlosiJapanBernardo Dominic PROPOSAL
Johnson G TollnerItalyOnyama Limba RENEWAL
David Q SchemmerJapanIoni Bowcher UNQUALIFIED
James Y DilliardCanadaOnyama Limba NEW
Julie P GarufiUnited KingdomElwin Sharvill QUALIFIED
Claire R GillianGermanyElwin Sharvill UNQUALIFIED
Jennifer Z MacleadGermanyAsiya Javayant UNQUALIFIED
Octavia L BologniaRussiaElwin Sharvill RENEWAL
Claire N MarrierGermanyStephen Shaw PROPOSAL
Jeanfrancois T FerenczItalyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith G StensethGermanyAmy Elsner QUALIFIED
Julie K VocelkaItalyIvan Magalhaes PROPOSAL
Ashley I ShinkoIndiaElwin Sharvill UNQUALIFIED
Cody E GarufiJapanBernardo Dominic NEGOTIATION
Cody T DoeArgentinaElwin Sharvill NEGOTIATION
Maisha F BologniaAustraliaIvan Magalhaes PROPOSAL
Johnson N VocelkaArgentinaAsiya Javayant UNQUALIFIED
Stacey K GarufiJapanAmy Elsner QUALIFIED
Sinclair B DoeItalyIvan Magalhaes NEW
Ivar L FigeroaAustraliaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey K FerenczUnited Kingdom2026-07-06Feltz Printing Service RENEWAL52Ioni Bowcher
1001Mayumi K CampainFrance2026-07-20Chemel, James L Cpa UNQUALIFIED90Ioni Bowcher
1002Aruna H ButtUnited Kingdom2026-07-09Benton, John B Jr RENEWAL75Amy Elsner
1003Greenwood T MaletCanada2026-06-27Rangoni Of Florence RENEWAL10Xuxue Feng
1004Johnson S CaudySpain2026-07-08Feltz Printing Service NEW57Onyama Limba
1005Munro S SlusarskiSpain2026-06-24Chanay, Jeffrey A Esq NEGOTIATION94Bernardo Dominic
1006Octavia T GlickAustralia2026-06-27Printing Dimensions RENEWAL33Ivan Magalhaes
1007Aruna S MaletItaly2026-07-15Chemel, James L Cpa NEGOTIATION76Stephen Shaw
1008Isabel A OstroskyRussia2026-06-26Commercial Press QUALIFIED39Ioni Bowcher
1009Octavia R MarrierUnited Kingdom2026-07-16Rangoni Of Florence PROPOSAL20Ioni Bowcher
1010Kaitlin Y CaldareraUnited Kingdom2026-07-08Benton, John B Jr UNQUALIFIED89Onyama Limba
1011Julie R NickaBrazil2026-06-28Dorl, James J Esq RENEWAL11Ivan Magalhaes
1012Julie U MorascaFrance2026-06-23Chapman, Ross E Esq UNQUALIFIED16Xuxue Feng
1013Salvatore W RimAustralia2026-06-24Benton, John B Jr QUALIFIED70Elwin Sharvill
1014Salvatore D BologniaBrazil2026-07-12Chapman, Ross E Esq NEW53Anna Fali
1015Jones W StensethArgentina2026-07-12Chanay, Jeffrey A Esq RENEWAL82Stephen Shaw
1016Izzy B CaudyCanada2026-07-07Dorl, James J Esq NEGOTIATION77Asiya Javayant
1017Ashley W StensethBrazil2026-07-11Chanay, Jeffrey A Esq QUALIFIED51Anna Fali
1018Antonio N GarufiArgentina2026-06-24Commercial Press UNQUALIFIED8Stephen Shaw
1019Jennifer N OstroskyJapan2026-07-04Truhlar And Truhlar Attys PROPOSAL85Anna Fali
1020Maria S ButtItaly2026-06-30Chemel, James L Cpa NEW6Ioni Bowcher
1021Salvatore G WieserIndia2026-07-18Chapman, Ross E Esq UNQUALIFIED62Xuxue Feng
1022Kaitlin T DilliardJapan2026-07-18Printing Dimensions QUALIFIED87Amy Elsner
1023Juan C PerinArgentina2026-07-20Benton, John B Jr QUALIFIED89Stephen Shaw
1024Misaki K NickaRussia2026-07-05Buckley Miller Wright UNQUALIFIED0Amy Elsner
1025Kaitlin K SchemmerCanada2026-07-14Chapman, Ross E Esq PROPOSAL12Stephen Shaw
1026Alejandro B GlickArgentina2026-07-20Printing Dimensions RENEWAL0Stephen Shaw
1027Greenwood B MacleadUnited Kingdom2026-07-09Benton, John B Jr QUALIFIED86Xuxue Feng
1028Leja K GarufiBrazil2026-07-02Printing Dimensions NEW23Ioni Bowcher
1029Jennifer K BowleySpain2026-07-21Buckley Miller Wright RENEWAL35Ioni Bowcher
1030David K BriddickAustralia2026-06-22Commercial Press PROPOSAL86Asiya Javayant
1031Julie U ChuiFrance2026-07-15Morlong Associates RENEWAL26Xuxue Feng
1032Smith F CaudyBrazil2026-07-18Chanay, Jeffrey A Esq QUALIFIED51Stephen Shaw
1033Isabel B StensethSpain2026-07-02Feltz Printing Service NEGOTIATION28Stephen Shaw
1034Julie F DilliardFrance2026-07-10Buckley Miller Wright QUALIFIED62Onyama Limba
1035Nicolas F MaletFrance2026-07-14Chemel, James L Cpa QUALIFIED13Onyama Limba
1036Jefferson Q SaylorsUnited Kingdom2026-07-02Printing Dimensions RENEWAL28Ioni Bowcher
1037Claire E SchemmerGermany2026-07-10Chapman, Ross E Esq QUALIFIED78Asiya Javayant
1038Jones F BriddickBrazil2026-06-25Buckley Miller Wright QUALIFIED96Bernardo Dominic
1039Leon G VocelkaCanada2026-07-21Morlong Associates RENEWAL93Anna Fali
1040Maria W RimRussia2026-07-16Buckley Miller Wright QUALIFIED86Stephen Shaw
1041Deepesh I ShinkoItaly2026-06-25Truhlar And Truhlar Attys PROPOSAL94Ioni Bowcher
1042Leon L TollnerBrazil2026-07-05Feltz Printing Service UNQUALIFIED29Amy Elsner
1043Murillo A GlickBrazil2026-06-22Chanay, Jeffrey A Esq RENEWAL49Onyama Limba
1044Clifford U AlbaresArgentina2026-07-05Dorl, James J Esq UNQUALIFIED12Asiya Javayant
1045Greenwood F GillianJapan2026-07-17King, Christopher A Esq NEGOTIATION27Elwin Sharvill
1046David E AmigonArgentina2026-07-19Benton, John B Jr PROPOSAL77Anna Fali
1047Morrow N MorascaFrance2026-07-03Rousseaux, Michael Esq UNQUALIFIED72Onyama Limba
1048Jeanfrancois Y GarufiArgentina2026-07-03King, Christopher A Esq PROPOSAL78Ivan Magalhaes
1049Jeanfrancois Y WaycottSpain2026-07-11Truhlar And Truhlar Attys UNQUALIFIED66Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Julie A MarrierFranceStephen Shaw PROPOSAL
Wickens N SchemmerSpainIvan Magalhaes UNQUALIFIED
Jefferson V MacleadRussiaElwin Sharvill QUALIFIED
Wickens W WaycottJapanXuxue Feng NEW
Mayumi J BowleyRussiaOnyama Limba NEGOTIATION
Morrow P KolmetzUnited KingdomXuxue Feng RENEWAL
Aika X RimUnited KingdomIoni Bowcher RENEWAL
Sinclair H SergiAustraliaIoni Bowcher PROPOSAL
Costa E PaprockiCanadaAsiya Javayant NEGOTIATION
Deepesh C BologniaBrazilOnyama Limba QUALIFIED
Maria U RoysterFranceElwin Sharvill NEW
Chavez S BriddickItalyIvan Magalhaes QUALIFIED
Isabel V KuskoSpainOnyama Limba RENEWAL
Murillo N VenereGermanyAmy Elsner UNQUALIFIED
Chavez U DoeFranceXuxue Feng QUALIFIED
Antonio Q PaprockiGermanyAsiya Javayant NEGOTIATION
Alejandro U OldroydArgentinaIvan Magalhaes QUALIFIED
Mujtaba U RimGermanyXuxue Feng PROPOSAL
Cody G RutaUnited KingdomAmy Elsner RENEWAL
Antonio F StensethBrazilXuxue Feng UNQUALIFIED
Jennifer B BriddickArgentinaStephen Shaw PROPOSAL
Antonio O FlosiJapanIvan Magalhaes UNQUALIFIED
Juan Q RulapaughCanadaXuxue Feng RENEWAL
Faith V GlickRussiaIoni Bowcher UNQUALIFIED
Stacey L PaprockiUnited KingdomStephen Shaw QUALIFIED
Misaki G IturbideIndiaOnyama Limba RENEWAL
Mayumi F RulapaughIndiaStephen Shaw UNQUALIFIED
Aruna M MarrierArgentinaElwin Sharvill NEGOTIATION
Jones Q ShinkoIndiaOnyama Limba UNQUALIFIED
Stacey X BowleyUnited KingdomAsiya Javayant PROPOSAL
Greenwood G GlickJapanOnyama Limba NEGOTIATION
Jefferson G WaycottSpainIvan Magalhaes PROPOSAL
Misaki Q PerinJapanOnyama Limba NEGOTIATION
Chavez V FerenczSpainAnna Fali QUALIFIED
Salvatore K DarakjyAustraliaAnna Fali RENEWAL
Darci Z RulapaughSpainElwin Sharvill RENEWAL
Izzy K BowleySpainAsiya Javayant QUALIFIED
Jones L KuskoBrazilElwin Sharvill QUALIFIED
Darci M DilliardRussiaIoni Bowcher PROPOSAL
Aika F DoeBrazilAsiya Javayant NEGOTIATION
Aika V GarufiItalyElwin Sharvill RENEWAL
Deepesh O MaletSpainIvan Magalhaes UNQUALIFIED
Octavia J PoquetteUnited KingdomBernardo Dominic NEW
Mayumi U BriddickGermanyIoni Bowcher NEW
Mayumi R MaletItalyAmy Elsner UNQUALIFIED
Claire A MorascaGermanyIvan Magalhaes NEGOTIATION
Morrow Z KuskoJapanElwin Sharvill NEGOTIATION
Misaki X DilliardFranceIvan Magalhaes QUALIFIED
Julie L GarufiBrazilOnyama Limba QUALIFIED
James F RutaBrazilIvan Magalhaes PROPOSAL
Frozen Columns
Name
Costa Z Kusko
Darci V Whobrey
Faith Z Malet
Leja R Vocelka
Chavez Z Stenseth
Aditya Z Ferencz
Jones F Darakjy
Ivar U Inouye
Deepesh G Glick
Octavia F Waycott
Leon K Poquette
Rodrigues Q Iturbide
Arvin H Stockham
Jefferson R Morasca
Chavez K Malet
Murillo E Ferencz
Maisha W Nestle
Costa J Vocelka
James Y Venere
Sinclair S Vocelka
Stacey Q Malet
Salvatore X Morasca
Aruna R Whobrey
Jennifer H Inouye
Mayumi A Stenseth
Octavia V Albares
Leon N Butt
Rodrigues I Gillian
Adams T Wieser
Nicolas C Whobrey
Salvatore L Malet
Greenwood K Albares
Kadeem K Nestle
Wickens G Foller
Smith M Nicka
Smith W Iturbide
Greenwood J Morasca
Izzy M Flosi
Leon T Wieser
Murillo D Caldarera
Silvio U Ruta
Aruna O Perin
Stacey R Saylors
David W Iturbide
Nicolas B Iturbide
Adams I Chui
Costa F Morasca
Emily X Rulapaugh
Murillo F Gillian
Octavia I Saylors
IdCountryDate
1000India2026-07-17
1001Brazil2026-06-22
1002United Kingdom2026-06-28
1003Russia2026-07-20
1004Australia2026-06-28
1005Canada2026-06-25
1006Canada2026-07-05
1007Canada2026-07-05
1008France2026-06-29
1009United Kingdom2026-07-21
1010India2026-07-01
1011Spain2026-07-08
1012Italy2026-07-19
1013Australia2026-06-24
1014Australia2026-06-26
1015Australia2026-06-23
1016Australia2026-07-21
1017Australia2026-07-02
1018Italy2026-07-04
1019Brazil2026-07-21
1020India2026-07-10
1021Germany2026-07-01
1022Germany2026-07-08
1023India2026-07-10
1024Italy2026-06-26
1025Brazil2026-06-22
1026United Kingdom2026-07-03
1027Spain2026-07-10
1028Germany2026-06-25
1029United Kingdom2026-06-24
1030United Kingdom2026-07-18
1031Canada2026-06-26
1032Russia2026-06-23
1033Germany2026-07-08
1034Brazil2026-07-02
1035India2026-07-08
1036Germany2026-07-18
1037Canada2026-07-01
1038India2026-07-12
1039Brazil2026-07-02
1040Australia2026-07-17
1041Russia2026-07-07
1042Germany2026-07-10
1043United Kingdom2026-07-16
1044Spain2026-07-06
1045United Kingdom2026-06-23
1046Canada2026-06-27
1047Brazil2026-07-04
1048Australia2026-07-07
1049Japan2026-06-23

On-Demand Data

NameIdCountryDate
Julie H Schemmer1000Canada2026-06-25
David P Sergi1001Japan2026-07-11
Jones E Inouye1002Japan2026-06-29
Ivar I Wieser1003Argentina2026-07-02
Juan O Amigon1004Brazil2026-06-26
Smith V Iturbide1005Spain2026-07-07
Ivar O Bolognia1006Canada2026-07-03
Alejandro I Shinko1007Italy2026-07-04
Kadeem V Malet1008India2026-07-08
James B Butt1009Argentina2026-07-09
Ivar L Iturbide1010Spain2026-07-11
Mayumi U Venere1011France2026-07-04
Aika U Schemmer1012Germany2026-07-17
Chavez J Campain1013Russia2026-07-18
Maisha G Bowley1014Japan2026-07-02
Nicolas K Doe1015Spain2026-06-26
Jefferson B Foller1016Japan2026-07-10
Izzy B Garufi1017Argentina2026-07-19
James E Oldroyd1018Canada2026-06-24
Chavez L Butt1019India2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio L WhobreyArgentinaIoni Bowcher NEW
Mayumi I SaylorsIndiaStephen Shaw QUALIFIED
Juan P AlbaresBrazilElwin Sharvill NEGOTIATION
Munro L OldroydItalyAmy Elsner PROPOSAL
Jeanfrancois Q VenereSpainAmy Elsner NEW
Munro O MaletAustraliaIoni Bowcher QUALIFIED
David M BologniaGermanyIoni Bowcher NEGOTIATION
Rodrigues A PaprockiGermanyStephen Shaw RENEWAL
Francesco S WhobreyUnited KingdomIoni Bowcher PROPOSAL
David X FlosiSpainAnna Fali NEW
Emily A NickaUnited KingdomAnna Fali UNQUALIFIED
Tony V ChuiCanadaStephen Shaw UNQUALIFIED
Jeanfrancois G BologniaFranceIoni Bowcher QUALIFIED
Alejandro E DilliardFranceIoni Bowcher RENEWAL
Stacey V BowleyArgentinaStephen Shaw RENEWAL
Darci G GlickSpainXuxue Feng NEW
Kadeem Y AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Isabel D StensethAustraliaXuxue Feng QUALIFIED
Johnson I FigeroaCanadaXuxue Feng NEGOTIATION
Ivar G VenereJapanStephen Shaw RENEWAL
Kaitlin U PoquetteSpainAsiya Javayant UNQUALIFIED
Jefferson P ShinkoIndiaElwin Sharvill QUALIFIED
Ricardo Z AmigonRussiaElwin Sharvill NEGOTIATION
Rodrigues J IturbideArgentinaOnyama Limba RENEWAL
Wickens Y WhobreyAustraliaAsiya Javayant NEGOTIATION
Darci H KolmetzIndiaAsiya Javayant RENEWAL
Octavia E CampainItalyOnyama Limba NEW
Salvatore M KuskoCanadaIoni Bowcher QUALIFIED
Jefferson T FollerIndiaOnyama Limba PROPOSAL
Jeanfrancois K RutaJapanIoni Bowcher RENEWAL
Jefferson M DarakjyArgentinaBernardo Dominic NEGOTIATION
Maisha D InouyeFranceBernardo Dominic RENEWAL
Jefferson T FerenczRussiaElwin Sharvill PROPOSAL
Jefferson G GauchoJapanIvan Magalhaes QUALIFIED
Stacey F CampainFranceBernardo Dominic UNQUALIFIED
Claire B StensethSpainAnna Fali NEGOTIATION
Isabel P CampainCanadaIoni Bowcher PROPOSAL
Julie X CampainAustraliaAsiya Javayant UNQUALIFIED
Smith L IturbideArgentinaAnna Fali NEW
Aika W FollerGermanyIvan 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>