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
Morrow V RoysterUnited KingdomAmy Elsner RENEWAL
Alejandro V SaylorsFranceIoni Bowcher QUALIFIED
Nicolas S ShinkoCanadaStephen Shaw NEW
Emily G DarakjyItalyStephen Shaw QUALIFIED
Cody F PoquetteItalyElwin Sharvill RENEWAL
Arvin Y DoeBrazilAnna Fali NEW
Clifford D GarufiAustraliaOnyama Limba RENEWAL
Aika X WieserJapanAmy Elsner QUALIFIED
David J GarufiCanadaElwin Sharvill PROPOSAL
Ricardo A GlickIndiaXuxue Feng UNQUALIFIED
Julie C SergiArgentinaAmy Elsner NEGOTIATION
Aika F BowleyGermanyBernardo Dominic RENEWAL
Ricardo A ButtGermanyAnna Fali PROPOSAL
Maria Z BriddickBrazilBernardo Dominic RENEWAL
Smith L NickaArgentinaBernardo Dominic UNQUALIFIED
Salvatore H OstroskyUnited KingdomBernardo Dominic NEGOTIATION
Emily B ChuiIndiaAsiya Javayant PROPOSAL
Izzy S DarakjyCanadaAmy Elsner QUALIFIED
Murillo S CaudyUnited KingdomOnyama Limba RENEWAL
Jones J SlusarskiIndiaBernardo Dominic QUALIFIED
Emily Y ShinkoBrazilBernardo Dominic QUALIFIED
Leja X SlusarskiCanadaAsiya Javayant RENEWAL
Misaki D StensethAustraliaAmy Elsner RENEWAL
Cody P VocelkaSpainAsiya Javayant NEW
Sinclair C RulapaughFranceOnyama Limba QUALIFIED
Nicolas Q GauchoCanadaIvan Magalhaes NEW
Octavia H PerinItalyElwin Sharvill QUALIFIED
Jennifer K AlbaresArgentinaBernardo Dominic RENEWAL
Francesco S MaletFranceXuxue Feng QUALIFIED
Isabel R SaylorsBrazilOnyama Limba NEW
Jeanfrancois D WieserSpainStephen Shaw UNQUALIFIED
Maria Y BologniaUnited KingdomAnna Fali NEGOTIATION
Munro Z FerenczGermanyAmy Elsner NEW
Stacey P FollerFranceIvan Magalhaes NEGOTIATION
Greenwood O ChuiArgentinaAsiya Javayant RENEWAL
Smith L SlusarskiGermanyOnyama Limba QUALIFIED
Johnson Q SaylorsBrazilIvan Magalhaes QUALIFIED
Maria A DilliardArgentinaBernardo Dominic UNQUALIFIED
Sinclair T NestleFranceOnyama Limba RENEWAL
Kadeem Z CampainIndiaXuxue Feng UNQUALIFIED
Octavia N KuskoSpainIvan Magalhaes NEW
Aditya M GarufiFranceElwin Sharvill NEGOTIATION
Salvatore W WhobreyFranceBernardo Dominic PROPOSAL
Stacey F DoeRussiaStephen Shaw NEW
Clifford Q CaldareraBrazilOnyama Limba RENEWAL
Leon F InouyeAustraliaIoni Bowcher RENEWAL
Mayumi F InouyeSpainXuxue Feng NEGOTIATION
Jeanfrancois M DarakjyGermanyAnna Fali NEGOTIATION
Francesco W GauchoCanadaStephen Shaw PROPOSAL
Leja J PoquetteJapanAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Ashley M SchemmerRussiaXuxue Feng UNQUALIFIED
Julie B FigeroaJapanStephen Shaw PROPOSAL
Jeanfrancois W ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba M PoquetteBrazilXuxue Feng UNQUALIFIED
Izzy B DilliardIndiaIoni Bowcher RENEWAL
Wickens V BologniaItalyAmy Elsner RENEWAL
Aditya N PaprockiArgentinaIoni Bowcher RENEWAL
Aditya X IturbideItalyOnyama Limba NEGOTIATION
Nicolas Q RutaArgentinaIvan Magalhaes PROPOSAL
Aditya N FlosiBrazilAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel J RimBrazil2024-05-08Rangoni Of Florence NEGOTIATION44Ivan Magalhaes
1001Faith T RutaJapan2024-05-12Feiner Bros NEW2Stephen Shaw
1002James X NestleAustralia2024-05-20Morlong Associates NEW23Amy Elsner
1003James Q GauchoArgentina2024-04-29Buckley Miller Wright QUALIFIED86Asiya Javayant
1004Costa B BriddickBrazil2024-05-05Chemel, James L Cpa RENEWAL87Amy Elsner
1005Octavia T CampainCanada2024-05-05Printing Dimensions UNQUALIFIED62Xuxue Feng
1006Jefferson S ButtBrazil2024-05-01Rangoni Of Florence PROPOSAL50Stephen Shaw
1007Alejandro B WieserIndia2024-05-13Dorl, James J Esq UNQUALIFIED60Anna Fali
1008Nicolas A DilliardIndia2024-04-30Buckley Miller Wright NEGOTIATION99Bernardo Dominic
1009Misaki K ChuiCanada2024-05-06Morlong Associates NEGOTIATION39Ivan Magalhaes
1010Nicolas Y CampainCanada2024-05-26Truhlar And Truhlar Attys UNQUALIFIED49Ivan Magalhaes
1011Silvio B OstroskySpain2024-05-14Rangoni Of Florence UNQUALIFIED48Asiya Javayant
1012Greenwood F CampainCanada2024-05-22Chemel, James L Cpa QUALIFIED51Onyama Limba
1013Tony A VocelkaCanada2024-05-12Rousseaux, Michael Esq PROPOSAL89Xuxue Feng
1014Aditya V FigeroaArgentina2024-05-17Chanay, Jeffrey A Esq RENEWAL11Ioni Bowcher
1015Mayumi M DoeBrazil2024-05-19Chapman, Ross E Esq UNQUALIFIED48Anna Fali
1016Leon I KolmetzUnited Kingdom2024-05-09Rangoni Of Florence QUALIFIED23Asiya Javayant
1017Mayumi O StockhamJapan2024-05-18King, Christopher A Esq NEW97Anna Fali
1018Maria G WieserGermany2024-05-14Feltz Printing Service NEGOTIATION66Ivan Magalhaes
1019Greenwood U NickaArgentina2024-05-04Buckley Miller Wright PROPOSAL27Stephen Shaw
1020Mayumi A BowleyItaly2024-05-02Rousseaux, Michael Esq UNQUALIFIED13Bernardo Dominic
1021Mujtaba S CampainAustralia2024-05-19Rangoni Of Florence RENEWAL80Asiya Javayant
1022Ivar E DarakjyItaly2024-05-10Chapman, Ross E Esq PROPOSAL52Xuxue Feng
1023Faith X OldroydArgentina2024-05-05Printing Dimensions QUALIFIED4Anna Fali
1024Leon M GarufiArgentina2024-05-20Buckley Miller Wright NEGOTIATION71Bernardo Dominic
1025Aika U BowleyRussia2024-05-11Rangoni Of Florence RENEWAL70Ivan Magalhaes
1026James D ShinkoCanada2024-05-04Rangoni Of Florence PROPOSAL26Stephen Shaw
1027Maisha W PerinFrance2024-05-10Commercial Press QUALIFIED3Bernardo Dominic
1028Emily V KuskoUnited Kingdom2024-05-18Benton, John B Jr UNQUALIFIED24Ivan Magalhaes
1029Chavez H MacleadAustralia2024-05-25Truhlar And Truhlar Attys QUALIFIED31Ivan Magalhaes
1030Chavez K GillianRussia2024-05-18Feltz Printing Service QUALIFIED44Onyama Limba
1031Smith O SaylorsItaly2024-05-01Printing Dimensions PROPOSAL82Asiya Javayant
1032Aditya W ShinkoCanada2024-05-20Printing Dimensions QUALIFIED71Anna Fali
1033Greenwood N RoysterBrazil2024-05-09Truhlar And Truhlar Attys PROPOSAL39Anna Fali
1034Johnson B StensethAustralia2024-05-16Rangoni Of Florence RENEWAL72Elwin Sharvill
1035Isabel B FlosiAustralia2024-05-07Chemel, James L Cpa QUALIFIED54Elwin Sharvill
1036Tony I SlusarskiCanada2024-05-27Dorl, James J Esq RENEWAL74Xuxue Feng
1037Ricardo J KolmetzUnited Kingdom2024-05-12Commercial Press QUALIFIED46Ivan Magalhaes
1038Silvio Q AmigonRussia2024-05-16Benton, John B Jr RENEWAL54Ivan Magalhaes
1039Nicolas Q FigeroaJapan2024-04-29Feiner Bros PROPOSAL98Ioni Bowcher
1040Maria P CaudyJapan2024-05-06Rangoni Of Florence NEGOTIATION4Amy Elsner
1041Isabel G PaprockiIndia2024-05-20Rangoni Of Florence QUALIFIED20Ioni Bowcher
1042James S FlosiItaly2024-05-19Buckley Miller Wright NEGOTIATION28Bernardo Dominic
1043Ricardo A BowleyBrazil2024-05-04Truhlar And Truhlar Attys RENEWAL14Asiya Javayant
1044Mayumi X RutaArgentina2024-04-29Buckley Miller Wright QUALIFIED68Anna Fali
1045Maisha M SlusarskiRussia2024-05-07Benton, John B Jr PROPOSAL10Elwin Sharvill
1046Isabel U OstroskySpain2024-05-23King, Christopher A Esq UNQUALIFIED24Ioni Bowcher
1047Leon P SlusarskiBrazil2024-05-22Chanay, Jeffrey A Esq RENEWAL85Ioni Bowcher
1048Francesco M ButtFrance2024-05-16Commercial Press NEW89Stephen Shaw
1049Maria T InouyeIndia2024-05-14Benton, John B Jr QUALIFIED97Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Salvatore W NickaAustraliaOnyama Limba PROPOSAL
Chavez R ButtJapanElwin Sharvill NEGOTIATION
Faith T ShinkoIndiaAsiya Javayant RENEWAL
Juan Q SaylorsFranceElwin Sharvill QUALIFIED
Smith W RulapaughRussiaStephen Shaw QUALIFIED
Murillo L CaudyJapanIoni Bowcher QUALIFIED
David F RimRussiaAsiya Javayant NEW
Misaki C FerenczSpainIoni Bowcher NEGOTIATION
Rodrigues Q IturbideItalyAsiya Javayant QUALIFIED
Julie D RoysterGermanyStephen Shaw RENEWAL
Cody K FlosiBrazilIoni Bowcher UNQUALIFIED
Clifford T FerenczArgentinaXuxue Feng UNQUALIFIED
Adams M SlusarskiSpainIvan Magalhaes RENEWAL
Jones Z RoysterIndiaElwin Sharvill NEGOTIATION
Julie Z NickaIndiaOnyama Limba NEW
Greenwood L AlbaresArgentinaElwin Sharvill QUALIFIED
Maria S GauchoRussiaIvan Magalhaes RENEWAL
Silvio R DarakjyIndiaStephen Shaw UNQUALIFIED
Alejandro P MaletJapanAmy Elsner NEGOTIATION
Clifford W NestleBrazilOnyama Limba RENEWAL
Ashley H RimCanadaAmy Elsner QUALIFIED
Nicolas U FigeroaSpainIvan Magalhaes NEW
Greenwood H RutaRussiaIoni Bowcher PROPOSAL
Antonio P CaudyCanadaXuxue Feng UNQUALIFIED
Greenwood L NickaFranceXuxue Feng NEW
Kaitlin B FerenczSpainAmy Elsner PROPOSAL
Aruna F RutaFranceBernardo Dominic QUALIFIED
Maisha V BowleyUnited KingdomIvan Magalhaes QUALIFIED
Deepesh G NickaAustraliaStephen Shaw NEGOTIATION
Ashley I KolmetzRussiaAsiya Javayant NEW
Leja P AmigonGermanyIvan Magalhaes RENEWAL
Faith F FigeroaItalyOnyama Limba RENEWAL
Ricardo O NickaArgentinaAmy Elsner UNQUALIFIED
David W DoeFranceAnna Fali QUALIFIED
Aika Z IturbideJapanElwin Sharvill PROPOSAL
Morrow C WieserGermanyIoni Bowcher UNQUALIFIED
Greenwood G ButtItalyAnna Fali QUALIFIED
Claire X FollerItalyAmy Elsner QUALIFIED
Aditya D CaudyItalyOnyama Limba PROPOSAL
Ricardo E PerinUnited KingdomBernardo Dominic NEW
Leja N MarrierBrazilIvan Magalhaes NEW
Leon Q KuskoUnited KingdomIvan Magalhaes QUALIFIED
Deepesh M CampainBrazilBernardo Dominic RENEWAL
Ricardo Q ChuiFranceAmy Elsner NEW
Octavia L PerinFranceIvan Magalhaes NEW
Juan H PerinBrazilBernardo Dominic UNQUALIFIED
Smith D DoeRussiaAnna Fali PROPOSAL
Clifford P BriddickItalyBernardo Dominic NEGOTIATION
Morrow W OstroskyIndiaAmy Elsner QUALIFIED
Tony M MorascaItalyAmy Elsner QUALIFIED
Frozen Columns
Name
Maria N Albares
Maisha F Darakjy
Misaki K Caudy
Jefferson Q Morasca
Alejandro Q Glick
Smith A Maclead
Stacey Y Caudy
Francesco S Maclead
Munro U Kusko
James V Wieser
Jeanfrancois L Royster
Jennifer A Whobrey
Misaki R Malet
Octavia X Rim
Misaki U Wieser
Kaitlin T Perin
Munro M Slusarski
Munro E Figeroa
Arvin J Briddick
Jones U Rim
Izzy R Shinko
Aditya L Butt
Rodrigues T Malet
Tony A Perin
Kadeem C Chui
Maria S Venere
Cody G Chui
Sinclair P Slusarski
James W Malet
Aruna V Rim
Jennifer Y Maclead
Murillo B Slusarski
Nicolas N Butt
Leja O Stenseth
Deepesh A Stenseth
Smith H Vocelka
Jones B Venere
Jennifer B Royster
Mayumi Y Dilliard
Cody W Ostrosky
Juan Y Caldarera
Ivar Y Rulapaugh
Faith Y Waycott
Stacey V Chui
Ricardo K Iturbide
Clifford N Kolmetz
Arvin S Glick
Arvin Z Inouye
Silvio O Kusko
Maria I Nestle
IdCountryDate
1000Canada2024-05-22
1001Argentina2024-05-02
1002France2024-05-08
1003Germany2024-05-07
1004Spain2024-05-26
1005Australia2024-05-10
1006Brazil2024-05-21
1007Canada2024-05-12
1008Russia2024-05-22
1009Russia2024-05-25
1010Argentina2024-05-26
1011United Kingdom2024-04-29
1012Italy2024-05-03
1013India2024-05-19
1014Canada2024-05-13
1015Spain2024-05-06
1016Australia2024-05-08
1017Canada2024-05-19
1018Argentina2024-05-15
1019Germany2024-05-16
1020Germany2024-05-14
1021Spain2024-05-10
1022Argentina2024-05-21
1023Argentina2024-05-02
1024Argentina2024-05-24
1025Spain2024-05-14
1026Japan2024-05-26
1027Germany2024-05-04
1028Argentina2024-05-22
1029Russia2024-05-01
1030Russia2024-05-22
1031Russia2024-05-12
1032Argentina2024-05-20
1033France2024-05-24
1034Japan2024-05-04
1035Canada2024-05-26
1036Italy2024-04-30
1037Germany2024-05-05
1038Australia2024-05-23
1039Japan2024-05-21
1040Spain2024-05-14
1041Australia2024-05-20
1042Spain2024-05-26
1043Canada2024-04-30
1044Australia2024-05-01
1045Germany2024-05-06
1046France2024-04-28
1047Russia2024-05-27
1048United Kingdom2024-05-03
1049Brazil2024-05-21

On-Demand Data

NameIdCountryDate
Adams P Albares1000Italy2024-04-29
Izzy J Bowley1001Canada2024-05-19
Leja Z Gaucho1002Argentina2024-05-22
Wickens G Stenseth1003Brazil2024-05-24
Arvin M Stenseth1004Argentina2024-05-01
Wickens S Bowley1005India2024-05-07
Stacey F Whobrey1006Germany2024-05-24
Stacey Y Malet1007Russia2024-05-13
Kadeem X Doe1008Spain2024-05-27
David V Whobrey1009Russia2024-05-01
Jefferson K Butt1010United Kingdom2024-05-22
Jennifer B Inouye1011France2024-04-29
Maria O Doe1012Spain2024-05-26
Nicolas O Dilliard1013Russia2024-05-04
Claire N Royster1014United Kingdom2024-05-16
Smith O Foller1015United Kingdom2024-05-04
David Q Albares1016Australia2024-05-04
Arvin S Butt1017Japan2024-05-03
Isabel D Vocelka1018Italy2024-05-09
Wickens Q Maclead1019Canada2024-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin A KuskoArgentinaBernardo Dominic UNQUALIFIED
Claire P ShinkoBrazilStephen Shaw NEGOTIATION
Isabel G MarrierArgentinaAnna Fali NEGOTIATION
Ivar R CampainBrazilAsiya Javayant QUALIFIED
Nicolas X RutaIndiaBernardo Dominic QUALIFIED
Mujtaba T GauchoJapanIvan Magalhaes RENEWAL
Leja B DilliardUnited KingdomBernardo Dominic NEGOTIATION
Leja G GillianSpainElwin Sharvill PROPOSAL
Salvatore C WaycottGermanyAmy Elsner NEW
Misaki U FerenczBrazilStephen Shaw PROPOSAL
Octavia O GauchoIndiaIvan Magalhaes NEGOTIATION
Isabel S GauchoAustraliaXuxue Feng RENEWAL
Cody B GlickUnited KingdomXuxue Feng NEW
Ashley K DoeCanadaXuxue Feng QUALIFIED
Aditya P VocelkaFranceBernardo Dominic NEGOTIATION
Stacey I GauchoFranceIoni Bowcher NEGOTIATION
Kadeem I StockhamUnited KingdomIoni Bowcher PROPOSAL
Deepesh D SergiGermanyAsiya Javayant QUALIFIED
Kadeem M OldroydSpainAnna Fali RENEWAL
Maria N AmigonUnited KingdomOnyama Limba RENEWAL
Isabel H CaldareraGermanyAsiya Javayant NEW
Sinclair H MacleadBrazilIoni Bowcher NEW
Ashley Q VocelkaRussiaAmy Elsner NEGOTIATION
Sinclair B RutaItalyIoni Bowcher NEGOTIATION
Emily H GlickSpainIvan Magalhaes QUALIFIED
Stacey M ShinkoAustraliaElwin Sharvill NEW
Chavez U MaletArgentinaAnna Fali QUALIFIED
Smith R FerenczItalyOnyama Limba NEGOTIATION
James Z AlbaresRussiaOnyama Limba UNQUALIFIED
Antonio A WieserRussiaIvan Magalhaes QUALIFIED
Costa M ChuiIndiaStephen Shaw NEW
Deepesh V SchemmerGermanyIoni Bowcher RENEWAL
Aditya O StensethCanadaIoni Bowcher NEW
Juan K AlbaresRussiaAnna Fali UNQUALIFIED
Francesco B CampainIndiaXuxue Feng UNQUALIFIED
Jeanfrancois P MacleadArgentinaOnyama Limba NEW
Antonio I DarakjyFranceIvan Magalhaes NEGOTIATION
Octavia R SchemmerGermanyXuxue Feng QUALIFIED
Jeanfrancois Z InouyeFranceAmy Elsner NEW
Juan K WhobreyAustraliaBernardo Dominic 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>