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
Darci K StensethUnited KingdomAsiya Javayant NEGOTIATION
Smith N VocelkaSpainBernardo Dominic NEW
Murillo V RoysterJapanStephen Shaw QUALIFIED
Kadeem T BologniaGermanyStephen Shaw RENEWAL
Jefferson H PoquetteArgentinaXuxue Feng RENEWAL
Deepesh D AmigonIndiaAmy Elsner NEW
Adams G FigeroaCanadaIoni Bowcher PROPOSAL
Jennifer K BologniaJapanStephen Shaw NEGOTIATION
Kaitlin J TollnerIndiaXuxue Feng RENEWAL
Aika K KuskoArgentinaElwin Sharvill UNQUALIFIED
Kaitlin J PaprockiRussiaAmy Elsner PROPOSAL
Munro Q NestleArgentinaOnyama Limba QUALIFIED
Mujtaba W FerenczCanadaAmy Elsner NEGOTIATION
Maria L DarakjyAustraliaAsiya Javayant QUALIFIED
Aruna M MorascaIndiaAmy Elsner PROPOSAL
Stacey Y MaletAustraliaBernardo Dominic UNQUALIFIED
Leon C BologniaUnited KingdomXuxue Feng NEGOTIATION
Smith I StensethRussiaStephen Shaw NEGOTIATION
Aditya L RutaJapanIvan Magalhaes RENEWAL
Julie A PerinUnited KingdomXuxue Feng NEGOTIATION
Aruna Q AmigonArgentinaElwin Sharvill UNQUALIFIED
Murillo H WaycottIndiaStephen Shaw UNQUALIFIED
Ricardo C FerenczSpainStephen Shaw RENEWAL
Stacey M FigeroaRussiaIvan Magalhaes PROPOSAL
David B PerinRussiaIvan Magalhaes PROPOSAL
Kaitlin B KuskoGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois Z CaldareraGermanyAnna Fali RENEWAL
Nicolas W BologniaBrazilOnyama Limba QUALIFIED
Octavia N StensethSpainAsiya Javayant QUALIFIED
Nicolas Q VenereGermanyOnyama Limba PROPOSAL
Sinclair U GillianGermanyAsiya Javayant RENEWAL
Leon S AlbaresItalyOnyama Limba QUALIFIED
Misaki K PaprockiBrazilIoni Bowcher UNQUALIFIED
Cody I CaldareraRussiaBernardo Dominic NEW
Aditya Y DilliardRussiaIvan Magalhaes NEW
Emily Y ShinkoBrazilOnyama Limba QUALIFIED
Morrow P SergiIndiaBernardo Dominic PROPOSAL
Leja J VocelkaFranceStephen Shaw PROPOSAL
Maisha P BriddickBrazilAnna Fali NEGOTIATION
Greenwood Y CampainSpainIoni Bowcher RENEWAL
Chavez R RoysterUnited KingdomAnna Fali UNQUALIFIED
Smith B GarufiIndiaIvan Magalhaes NEW
Deepesh L CaldareraRussiaXuxue Feng RENEWAL
Stacey N BriddickAustraliaStephen Shaw PROPOSAL
Antonio U NestleItalyIoni Bowcher NEW
Adams T DilliardUnited KingdomAmy Elsner UNQUALIFIED
Morrow K GarufiGermanyAnna Fali QUALIFIED
David Z SergiRussiaXuxue Feng QUALIFIED
Greenwood Q CaudyItalyStephen Shaw QUALIFIED
Munro S BowleyCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley C BologniaRussiaBernardo Dominic UNQUALIFIED
Octavia S RimGermanyOnyama Limba UNQUALIFIED
Deepesh A VenereJapanIvan Magalhaes NEW
Jennifer N DoeItalyAnna Fali UNQUALIFIED
Cody M SlusarskiGermanyStephen Shaw QUALIFIED
Morrow P GillianGermanyOnyama Limba UNQUALIFIED
Deepesh D SergiJapanAmy Elsner UNQUALIFIED
Silvio B KuskoCanadaAnna Fali UNQUALIFIED
Cody C RutaJapanElwin Sharvill PROPOSAL
Darci N InouyeRussiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer K WaycottArgentina2024-05-28Rousseaux, Michael Esq NEGOTIATION29Asiya Javayant
1001Kaitlin X FigeroaBrazil2024-06-19Dorl, James J Esq RENEWAL93Xuxue Feng
1002Silvio B FollerFrance2024-06-20Truhlar And Truhlar Attys QUALIFIED28Onyama Limba
1003Cody P NickaSpain2024-06-05Feiner Bros PROPOSAL16Bernardo Dominic
1004Cody F IturbideBrazil2024-06-06Feiner Bros QUALIFIED21Elwin Sharvill
1005Kadeem T MarrierAustralia2024-06-21Chemel, James L Cpa UNQUALIFIED24Ioni Bowcher
1006Jennifer N OstroskyFrance2024-06-05Buckley Miller Wright NEGOTIATION22Bernardo Dominic
1007Johnson I GauchoIndia2024-05-24Chapman, Ross E Esq UNQUALIFIED86Stephen Shaw
1008Aika U PaprockiFrance2024-05-29Benton, John B Jr RENEWAL17Amy Elsner
1009Clifford C MarrierCanada2024-06-04Benton, John B Jr NEGOTIATION93Xuxue Feng
1010Aika P ButtFrance2024-06-04Chapman, Ross E Esq NEW18Ivan Magalhaes
1011Clifford U GillianBrazil2024-06-06Benton, John B Jr NEGOTIATION0Stephen Shaw
1012James C MarrierBrazil2024-06-17Commercial Press UNQUALIFIED16Xuxue Feng
1013Cody C StensethGermany2024-06-10Benton, John B Jr NEGOTIATION28Stephen Shaw
1014Greenwood S FerenczBrazil2024-06-16Chanay, Jeffrey A Esq UNQUALIFIED29Elwin Sharvill
1015Aruna R PaprockiIndia2024-05-25Truhlar And Truhlar Attys RENEWAL42Ivan Magalhaes
1016Faith C NickaArgentina2024-06-19Rousseaux, Michael Esq RENEWAL36Ivan Magalhaes
1017Tony J MacleadCanada2024-06-19Benton, John B Jr PROPOSAL34Asiya Javayant
1018David L IturbideCanada2024-05-31Buckley Miller Wright NEGOTIATION23Xuxue Feng
1019Jones Z FerenczSpain2024-06-02Dorl, James J Esq NEGOTIATION73Stephen Shaw
1020Maria Z BriddickSpain2024-06-14Chanay, Jeffrey A Esq PROPOSAL71Amy Elsner
1021Julie K KolmetzFrance2024-06-17Feltz Printing Service NEGOTIATION46Asiya Javayant
1022Jennifer K MaletSpain2024-06-07Morlong Associates NEW17Xuxue Feng
1023Munro U DarakjyArgentina2024-06-12Chanay, Jeffrey A Esq UNQUALIFIED19Amy Elsner
1024Jennifer P SlusarskiCanada2024-06-03Feiner Bros QUALIFIED2Stephen Shaw
1025Aika A CaudySpain2024-06-21Chemel, James L Cpa NEW27Anna Fali
1026Wickens V DoeSpain2024-06-17Rousseaux, Michael Esq QUALIFIED28Asiya Javayant
1027Faith W PerinCanada2024-05-31Benton, John B Jr RENEWAL20Anna Fali
1028Stacey D VenereAustralia2024-05-28Truhlar And Truhlar Attys RENEWAL95Bernardo Dominic
1029Tony L MarrierFrance2024-05-30Feiner Bros NEGOTIATION91Asiya Javayant
1030Ashley I MaletGermany2024-06-11Commercial Press QUALIFIED41Bernardo Dominic
1031Ashley J CaldareraItaly2024-06-05King, Christopher A Esq RENEWAL83Bernardo Dominic
1032Johnson A MarrierGermany2024-06-07Morlong Associates QUALIFIED5Anna Fali
1033Silvio P FerenczItaly2024-05-26Printing Dimensions QUALIFIED21Stephen Shaw
1034Ashley Q MacleadBrazil2024-06-20Commercial Press NEGOTIATION1Amy Elsner
1035Aruna A CaldareraCanada2024-05-27Commercial Press NEGOTIATION61Xuxue Feng
1036Emily H RulapaughCanada2024-06-15King, Christopher A Esq QUALIFIED85Asiya Javayant
1037Munro R SchemmerBrazil2024-05-31Printing Dimensions NEW11Ioni Bowcher
1038Ashley N GillianBrazil2024-06-21Rousseaux, Michael Esq RENEWAL7Amy Elsner
1039Isabel T KuskoItaly2024-06-05Chemel, James L Cpa QUALIFIED14Stephen Shaw
1040Mujtaba Q RoysterUnited Kingdom2024-06-20Truhlar And Truhlar Attys NEW46Xuxue Feng
1041Costa T TollnerArgentina2024-06-15Morlong Associates QUALIFIED78Ivan Magalhaes
1042Emily G IturbideAustralia2024-06-11Rousseaux, Michael Esq RENEWAL99Elwin Sharvill
1043Julie X FlosiSpain2024-06-14Feiner Bros NEW28Bernardo Dominic
1044Salvatore N FollerArgentina2024-05-27Truhlar And Truhlar Attys PROPOSAL4Xuxue Feng
1045Tony L RutaFrance2024-06-19Chemel, James L Cpa NEGOTIATION2Ivan Magalhaes
1046Izzy U FigeroaArgentina2024-06-14Buckley Miller Wright NEW66Stephen Shaw
1047Mujtaba X DilliardJapan2024-06-13Dorl, James J Esq NEGOTIATION21Amy Elsner
1048Mujtaba P OldroydRussia2024-06-06Buckley Miller Wright PROPOSAL18Anna Fali
1049Maria T ButtJapan2024-06-01Buckley Miller Wright NEW94Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maisha T FigeroaIndiaAmy Elsner NEGOTIATION
Aditya A MacleadAustraliaOnyama Limba NEGOTIATION
Ivar F FigeroaSpainAmy Elsner NEW
Mujtaba D FerenczJapanBernardo Dominic NEW
Octavia K FigeroaJapanAmy Elsner QUALIFIED
Kadeem T VocelkaAustraliaAnna Fali UNQUALIFIED
Morrow D SaylorsItalyAnna Fali PROPOSAL
Francesco W InouyeSpainElwin Sharvill NEW
Juan H BowleyUnited KingdomAsiya Javayant QUALIFIED
Alejandro H AmigonRussiaIvan Magalhaes NEGOTIATION
James F WhobreyUnited KingdomXuxue Feng NEW
Jeanfrancois S DoeGermanyAmy Elsner UNQUALIFIED
Deepesh V GillianArgentinaAmy Elsner RENEWAL
Smith Y CampainArgentinaXuxue Feng QUALIFIED
Claire A MaletUnited KingdomIvan Magalhaes RENEWAL
Johnson Y GlickJapanStephen Shaw UNQUALIFIED
Clifford S PoquetteIndiaXuxue Feng RENEWAL
Wickens E SchemmerCanadaBernardo Dominic NEGOTIATION
Claire Q GauchoFranceStephen Shaw RENEWAL
David Q AmigonUnited KingdomAmy Elsner PROPOSAL
Kadeem I VenereBrazilStephen Shaw QUALIFIED
Salvatore K TollnerBrazilAmy Elsner RENEWAL
Isabel H MaletGermanyAsiya Javayant RENEWAL
Chavez M RulapaughFranceElwin Sharvill UNQUALIFIED
Juan C DarakjyCanadaOnyama Limba PROPOSAL
Emily A FerenczItalyIoni Bowcher NEGOTIATION
Clifford B AmigonGermanyElwin Sharvill UNQUALIFIED
Emily K FlosiGermanyIvan Magalhaes PROPOSAL
Emily W AlbaresGermanyIoni Bowcher UNQUALIFIED
Faith D WhobreySpainBernardo Dominic NEGOTIATION
Maria H IturbideBrazilOnyama Limba QUALIFIED
Wickens B IturbideRussiaIoni Bowcher QUALIFIED
Ricardo S MaletFranceIoni Bowcher QUALIFIED
Jones N BowleyUnited KingdomBernardo Dominic NEGOTIATION
Cody W CampainFranceIvan Magalhaes PROPOSAL
Kadeem A SergiCanadaElwin Sharvill QUALIFIED
Murillo T CaudyAustraliaAnna Fali PROPOSAL
Munro I RutaCanadaOnyama Limba PROPOSAL
David W AmigonSpainAnna Fali RENEWAL
Adams M PoquetteGermanyOnyama Limba UNQUALIFIED
Stacey B TollnerUnited KingdomAsiya Javayant PROPOSAL
Maisha W BologniaRussiaAsiya Javayant UNQUALIFIED
Alejandro E ButtAustraliaAmy Elsner PROPOSAL
Jefferson H ButtFranceIvan Magalhaes RENEWAL
Smith X FerenczGermanyOnyama Limba RENEWAL
Faith M FerenczUnited KingdomXuxue Feng NEGOTIATION
Johnson T NickaRussiaAmy Elsner PROPOSAL
Juan T VenereRussiaIoni Bowcher RENEWAL
Ivar P WhobreyArgentinaIvan Magalhaes RENEWAL
Arvin F GauchoBrazilIvan Magalhaes PROPOSAL
Frozen Columns
Name
Jefferson X Gaucho
Alejandro V Royster
Kaitlin W Kolmetz
Salvatore B Gaucho
Tony D Rulapaugh
Francesco J Marrier
Ivar E Albares
Aruna U Shinko
Smith T Sergi
James U Schemmer
David B Whobrey
Alejandro I Oldroyd
Clifford C Garufi
Johnson L Gillian
Izzy Q Perin
Ricardo M Slusarski
Munro C Morasca
Aditya F Ferencz
Kadeem U Waycott
Munro H Rim
Leja J Rim
Maria H Perin
Tony K Glick
Chavez D Oldroyd
Aika B Whobrey
Johnson F Maclead
Isabel A Malet
Ashley W Tollner
Octavia N Glick
Misaki E Malet
Antonio I Bowley
Jennifer K Paprocki
Johnson V Sergi
Chavez B Malet
Claire Z Ostrosky
Stacey Y Inouye
Julie B Albares
Izzy E Ruta
Faith S Tollner
Jefferson I Caudy
Munro J Ferencz
Leon Y Figeroa
Claire W Kusko
Kadeem Y Doe
Cody P Rulapaugh
Antonio J Venere
Johnson P Tollner
Silvio O Caldarera
Jeanfrancois P Darakjy
Smith F Bolognia
IdCountryDate
1000Spain2024-06-11
1001Brazil2024-06-12
1002Australia2024-06-09
1003Italy2024-06-05
1004Spain2024-06-11
1005France2024-06-14
1006Canada2024-06-10
1007Japan2024-06-05
1008Brazil2024-06-05
1009Italy2024-06-10
1010Canada2024-06-02
1011Argentina2024-06-20
1012Italy2024-06-13
1013Russia2024-06-10
1014India2024-06-18
1015Japan2024-06-13
1016France2024-06-01
1017Brazil2024-05-30
1018Brazil2024-05-24
1019Japan2024-06-19
1020Brazil2024-06-17
1021Japan2024-05-31
1022Australia2024-05-30
1023United Kingdom2024-06-08
1024Canada2024-05-26
1025Spain2024-06-13
1026Canada2024-05-27
1027Germany2024-06-18
1028Italy2024-05-30
1029Italy2024-06-14
1030Germany2024-06-20
1031Russia2024-06-02
1032Australia2024-06-13
1033Italy2024-05-31
1034United Kingdom2024-06-18
1035France2024-06-16
1036Japan2024-06-14
1037Russia2024-06-17
1038Spain2024-06-01
1039Argentina2024-06-09
1040Spain2024-05-25
1041France2024-06-13
1042Italy2024-06-21
1043India2024-06-10
1044Brazil2024-06-06
1045France2024-06-16
1046Japan2024-06-13
1047France2024-06-08
1048Russia2024-06-22
1049Canada2024-06-01

On-Demand Data

NameIdCountryDate
Jennifer Q Tollner1000Canada2024-05-25
Mayumi E Venere1001Australia2024-06-13
Jeanfrancois C Gillian1002Canada2024-06-11
Nicolas V Schemmer1003France2024-06-20
Arvin E Chui1004Italy2024-05-29
Ashley A Malet1005Russia2024-06-05
Tony E Malet1006Canada2024-06-20
Deepesh U Campain1007Spain2024-06-03
Isabel F Sergi1008Canada2024-06-02
Ashley E Paprocki1009India2024-05-26
Aika V Slusarski1010India2024-06-21
James E Inouye1011Australia2024-06-13
Salvatore J Waycott1012France2024-06-10
Wickens B Garufi1013Canada2024-06-20
Jones K Maclead1014France2024-06-08
Antonio B Iturbide1015Italy2024-06-15
Maisha U Oldroyd1016France2024-05-30
Silvio B Glick1017Russia2024-06-04
Kadeem J Ostrosky1018Canada2024-06-01
Greenwood N Malet1019United Kingdom2024-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin G RoysterAustraliaStephen Shaw NEGOTIATION
Leja K CaldareraRussiaAmy Elsner QUALIFIED
Deepesh V WhobreyGermanyOnyama Limba RENEWAL
Kadeem S GillianAustraliaOnyama Limba RENEWAL
Chavez S BowleyBrazilElwin Sharvill NEGOTIATION
Faith V RulapaughAustraliaElwin Sharvill NEW
Maisha Q OstroskyUnited KingdomBernardo Dominic NEW
Kaitlin S StockhamCanadaOnyama Limba RENEWAL
Clifford G IturbideSpainStephen Shaw QUALIFIED
Isabel Q SaylorsBrazilBernardo Dominic NEGOTIATION
Mujtaba A MacleadBrazilAnna Fali UNQUALIFIED
Tony D TollnerUnited KingdomAsiya Javayant PROPOSAL
Wickens Z BologniaItalyXuxue Feng UNQUALIFIED
Smith O KolmetzCanadaAsiya Javayant UNQUALIFIED
Aruna N SaylorsSpainIvan Magalhaes RENEWAL
Smith X SlusarskiSpainStephen Shaw NEW
Salvatore P DarakjyRussiaBernardo Dominic RENEWAL
Leja Y MaletUnited KingdomXuxue Feng PROPOSAL
Kadeem G MaletBrazilBernardo Dominic NEW
Salvatore L NickaRussiaAsiya Javayant NEW
Aruna C GarufiIndiaAsiya Javayant QUALIFIED
Costa E CaldareraUnited KingdomStephen Shaw RENEWAL
Faith S ButtFranceAnna Fali NEGOTIATION
Aika O AlbaresBrazilIvan Magalhaes NEW
Faith R BologniaRussiaIvan Magalhaes UNQUALIFIED
Alejandro T SchemmerArgentinaAmy Elsner UNQUALIFIED
Rodrigues L ChuiFranceElwin Sharvill QUALIFIED
Clifford I BologniaGermanyStephen Shaw RENEWAL
Jones G DilliardSpainBernardo Dominic NEGOTIATION
Claire V SaylorsSpainAmy Elsner UNQUALIFIED
Darci X AlbaresBrazilAnna Fali PROPOSAL
Aika A GauchoArgentinaStephen Shaw NEGOTIATION
Antonio H GauchoAustraliaOnyama Limba PROPOSAL
Morrow A CaudyItalyOnyama Limba PROPOSAL
Jennifer W FollerGermanyAnna Fali QUALIFIED
Jeanfrancois K PaprockiGermanyBernardo Dominic UNQUALIFIED
Nicolas A ChuiArgentinaIoni Bowcher PROPOSAL
Francesco R InouyeBrazilXuxue Feng NEGOTIATION
Greenwood S ButtAustraliaAsiya Javayant QUALIFIED
Jones B MarrierArgentinaAsiya Javayant UNQUALIFIED

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