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
Ivar A PoquetteIndiaXuxue Feng NEGOTIATION
David O AlbaresIndiaStephen Shaw PROPOSAL
Smith S ShinkoBrazilAsiya Javayant PROPOSAL
Leon J DarakjyGermanyElwin Sharvill NEW
Salvatore A AmigonFranceBernardo Dominic UNQUALIFIED
Aika X RutaItalyXuxue Feng UNQUALIFIED
Salvatore A FigeroaGermanyOnyama Limba NEW
Stacey N RutaGermanyAmy Elsner NEGOTIATION
Ashley N SlusarskiJapanAsiya Javayant NEGOTIATION
Jones P StensethArgentinaAnna Fali PROPOSAL
Emily L KuskoFranceXuxue Feng UNQUALIFIED
Wickens E GlickJapanBernardo Dominic NEGOTIATION
Tony N CampainAustraliaIoni Bowcher UNQUALIFIED
Ricardo D AmigonBrazilIoni Bowcher QUALIFIED
Francesco A BologniaGermanyXuxue Feng QUALIFIED
Ashley O GauchoJapanXuxue Feng RENEWAL
Kaitlin I ChuiBrazilIoni Bowcher PROPOSAL
Jefferson K MorascaBrazilStephen Shaw PROPOSAL
Maisha Y SchemmerArgentinaStephen Shaw QUALIFIED
Juan K CaldareraArgentinaBernardo Dominic UNQUALIFIED
Clifford C PoquetteFranceXuxue Feng UNQUALIFIED
Murillo P VenereFranceIoni Bowcher UNQUALIFIED
Izzy X MacleadRussiaOnyama Limba RENEWAL
Clifford Y ChuiUnited KingdomAmy Elsner NEW
David K MacleadUnited KingdomAmy Elsner UNQUALIFIED
Wickens H RoysterAustraliaAsiya Javayant PROPOSAL
Aika F CampainAustraliaIvan Magalhaes PROPOSAL
Francesco Y PerinUnited KingdomOnyama Limba PROPOSAL
Kadeem Q ButtAustraliaAsiya Javayant PROPOSAL
Mayumi D MaletItalyIoni Bowcher PROPOSAL
Jefferson Q SaylorsIndiaIoni Bowcher QUALIFIED
Faith O GillianItalyElwin Sharvill QUALIFIED
Misaki I OstroskyAustraliaElwin Sharvill NEW
Tony D NickaJapanAsiya Javayant RENEWAL
Jefferson N KolmetzFranceAsiya Javayant NEW
Sinclair W MacleadArgentinaStephen Shaw RENEWAL
Juan H CaldareraFranceAmy Elsner QUALIFIED
James R StensethAustraliaXuxue Feng PROPOSAL
Ashley S StensethUnited KingdomBernardo Dominic NEW
David T FlosiItalyXuxue Feng QUALIFIED
Johnson S StockhamArgentinaBernardo Dominic UNQUALIFIED
Maria E KuskoSpainAsiya Javayant NEW
Wickens T DoeSpainIvan Magalhaes NEGOTIATION
Salvatore D CaudyArgentinaIvan Magalhaes PROPOSAL
Sinclair N MarrierBrazilAmy Elsner RENEWAL
Darci A StensethGermanyAnna Fali NEGOTIATION
Salvatore W VocelkaIndiaOnyama Limba NEGOTIATION
Munro L GarufiItalyBernardo Dominic UNQUALIFIED
James B FlosiRussiaOnyama Limba RENEWAL
Ivar Z CampainFranceAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony G WieserSpainBernardo Dominic NEW
David Q OldroydUnited KingdomStephen Shaw NEW
Aika G PoquetteIndiaStephen Shaw PROPOSAL
Misaki A FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Jennifer J GillianArgentinaBernardo Dominic UNQUALIFIED
Alejandro V SergiFranceAnna Fali NEGOTIATION
David G DarakjyFranceIoni Bowcher QUALIFIED
Isabel V ButtRussiaAmy Elsner RENEWAL
Jeanfrancois I NickaUnited KingdomBernardo Dominic QUALIFIED
Mujtaba P PerinJapanStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore N ButtJapan2024-05-26Printing Dimensions PROPOSAL78Asiya Javayant
1001Chavez U GauchoAustralia2024-05-27Chemel, James L Cpa PROPOSAL45Ivan Magalhaes
1002Isabel P GauchoCanada2024-05-23Buckley Miller Wright PROPOSAL98Amy Elsner
1003Maria N SchemmerJapan2024-06-12Commercial Press QUALIFIED18Xuxue Feng
1004Cody R SlusarskiItaly2024-06-05Printing Dimensions RENEWAL22Anna Fali
1005Wickens K FerenczItaly2024-06-12Printing Dimensions UNQUALIFIED77Bernardo Dominic
1006Stacey F MaletAustralia2024-06-17Dorl, James J Esq NEGOTIATION60Asiya Javayant
1007Salvatore E ShinkoUnited Kingdom2024-05-24Chemel, James L Cpa NEGOTIATION50Ivan Magalhaes
1008Claire I CaudyIndia2024-06-01Benton, John B Jr NEGOTIATION46Stephen Shaw
1009James E FerenczIndia2024-05-26Truhlar And Truhlar Attys NEGOTIATION24Onyama Limba
1010Octavia U RoysterFrance2024-05-24Feltz Printing Service UNQUALIFIED99Xuxue Feng
1011Tony I VenereItaly2024-06-05Printing Dimensions PROPOSAL37Ioni Bowcher
1012Ashley K ButtArgentina2024-06-06Truhlar And Truhlar Attys NEGOTIATION62Anna Fali
1013Aditya P DoeAustralia2024-06-17Rangoni Of Florence QUALIFIED12Ivan Magalhaes
1014Izzy A BowleyRussia2024-06-17Chemel, James L Cpa QUALIFIED57Amy Elsner
1015Adams Z DoeJapan2024-05-30Chanay, Jeffrey A Esq QUALIFIED14Stephen Shaw
1016James C FigeroaFrance2024-06-12Dorl, James J Esq RENEWAL69Ioni Bowcher
1017Munro U DarakjyGermany2024-05-27Feiner Bros PROPOSAL11Amy Elsner
1018Leon S OldroydFrance2024-06-18Chemel, James L Cpa NEW20Xuxue Feng
1019Greenwood L OldroydArgentina2024-06-17Benton, John B Jr PROPOSAL40Ivan Magalhaes
1020Antonio U GillianFrance2024-05-31Morlong Associates UNQUALIFIED79Amy Elsner
1021Clifford R InouyeBrazil2024-06-06Rousseaux, Michael Esq RENEWAL88Elwin Sharvill
1022Misaki G MarrierRussia2024-06-17Benton, John B Jr PROPOSAL62Ivan Magalhaes
1023Murillo C SlusarskiItaly2024-06-05Dorl, James J Esq QUALIFIED78Anna Fali
1024Wickens Z BriddickBrazil2024-06-07Morlong Associates PROPOSAL28Onyama Limba
1025Rodrigues P FerenczCanada2024-06-09Printing Dimensions NEGOTIATION46Onyama Limba
1026Morrow B MacleadFrance2024-05-24Feltz Printing Service NEGOTIATION60Onyama Limba
1027Rodrigues S SaylorsBrazil2024-06-12Chanay, Jeffrey A Esq UNQUALIFIED11Bernardo Dominic
1028Jeanfrancois X InouyeItaly2024-05-24Printing Dimensions QUALIFIED51Asiya Javayant
1029Costa X MorascaItaly2024-06-09Rangoni Of Florence NEW78Ivan Magalhaes
1030Stacey B OstroskyArgentina2024-05-28Buckley Miller Wright RENEWAL78Elwin Sharvill
1031Maisha E MaletItaly2024-05-28King, Christopher A Esq UNQUALIFIED63Onyama Limba
1032Misaki O DilliardIndia2024-06-19Chanay, Jeffrey A Esq PROPOSAL49Ioni Bowcher
1033Alejandro G MacleadArgentina2024-06-11Morlong Associates NEGOTIATION45Xuxue Feng
1034Greenwood J BologniaSpain2024-06-20King, Christopher A Esq RENEWAL64Amy Elsner
1035Greenwood R SlusarskiUnited Kingdom2024-06-06King, Christopher A Esq PROPOSAL92Onyama Limba
1036Jennifer Y NickaJapan2024-05-23Commercial Press NEGOTIATION55Stephen Shaw
1037Darci Y GauchoAustralia2024-06-07Morlong Associates NEGOTIATION15Xuxue Feng
1038Smith M RulapaughAustralia2024-06-18Dorl, James J Esq PROPOSAL42Ivan Magalhaes
1039Sinclair B NickaUnited Kingdom2024-06-05Buckley Miller Wright QUALIFIED70Onyama Limba
1040Cody U DilliardFrance2024-06-12Morlong Associates NEGOTIATION96Bernardo Dominic
1041Nicolas L BowleyAustralia2024-06-12Morlong Associates RENEWAL45Elwin Sharvill
1042Leja B AmigonIndia2024-05-27Truhlar And Truhlar Attys UNQUALIFIED94Stephen Shaw
1043Salvatore N SaylorsFrance2024-06-16Printing Dimensions NEW82Stephen Shaw
1044Jones Z VenereSpain2024-06-09Buckley Miller Wright QUALIFIED78Asiya Javayant
1045Aditya F NickaBrazil2024-06-10King, Christopher A Esq NEGOTIATION93Ivan Magalhaes
1046Morrow X PoquetteItaly2024-06-07King, Christopher A Esq UNQUALIFIED97Ioni Bowcher
1047Wickens C RutaSpain2024-05-29Commercial Press PROPOSAL28Ivan Magalhaes
1048Maria C MaletItaly2024-06-03King, Christopher A Esq NEGOTIATION21Onyama Limba
1049Alejandro B RulapaughFrance2024-06-14Rangoni Of Florence PROPOSAL25Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin K SergiItalyAnna Fali RENEWAL
Maisha R CampainFranceAsiya Javayant QUALIFIED
Maria B NestleItalyAsiya Javayant PROPOSAL
Ricardo X MaletItalyAnna Fali QUALIFIED
Jefferson N CaldareraCanadaStephen Shaw UNQUALIFIED
Jefferson K BriddickItalyXuxue Feng UNQUALIFIED
Jones B AmigonCanadaXuxue Feng UNQUALIFIED
Maria Q AlbaresIndiaOnyama Limba NEW
Kadeem A PerinUnited KingdomStephen Shaw NEW
Wickens N IturbideRussiaAnna Fali QUALIFIED
Maisha U MaletSpainAmy Elsner PROPOSAL
Deepesh J CampainItalyAsiya Javayant QUALIFIED
Isabel V AmigonJapanIoni Bowcher PROPOSAL
Maria H DoeCanadaAmy Elsner UNQUALIFIED
Jones N BriddickArgentinaAsiya Javayant PROPOSAL
David Z KolmetzBrazilIoni Bowcher RENEWAL
Maisha I GillianSpainAmy Elsner UNQUALIFIED
Claire S GlickGermanyIoni Bowcher QUALIFIED
Claire G GillianFranceAnna Fali NEGOTIATION
Isabel L WaycottCanadaIoni Bowcher NEW
Stacey S PerinFranceAsiya Javayant NEW
Juan J KolmetzUnited KingdomIoni Bowcher NEW
Morrow O BowleyUnited KingdomIvan Magalhaes QUALIFIED
Silvio R GarufiRussiaAmy Elsner PROPOSAL
Faith S MorascaArgentinaStephen Shaw PROPOSAL
Isabel F RoysterCanadaIoni Bowcher PROPOSAL
Ivar D OldroydRussiaOnyama Limba QUALIFIED
Juan T FerenczItalyElwin Sharvill NEGOTIATION
Jones E NestleRussiaOnyama Limba RENEWAL
Chavez Z ChuiArgentinaAsiya Javayant QUALIFIED
Kadeem G KolmetzFranceXuxue Feng UNQUALIFIED
Jefferson Z SaylorsFranceIvan Magalhaes UNQUALIFIED
Cody W MacleadJapanStephen Shaw NEGOTIATION
Stacey S FerenczUnited KingdomAnna Fali NEGOTIATION
David D TollnerJapanElwin Sharvill PROPOSAL
James A ButtBrazilAnna Fali QUALIFIED
Adams N BriddickFranceBernardo Dominic UNQUALIFIED
Mujtaba C OstroskyAustraliaAnna Fali PROPOSAL
Juan C FerenczJapanAsiya Javayant NEGOTIATION
Maisha Y TollnerFranceBernardo Dominic NEGOTIATION
Julie O PerinAustraliaAsiya Javayant NEW
Kadeem V PoquetteUnited KingdomIoni Bowcher NEW
Alejandro W MaletIndiaBernardo Dominic PROPOSAL
Morrow U CaldareraIndiaOnyama Limba NEGOTIATION
Leon Z FerenczIndiaXuxue Feng UNQUALIFIED
Emily N TollnerFranceIoni Bowcher QUALIFIED
Aika N CampainIndiaAnna Fali QUALIFIED
Munro T GarufiBrazilElwin Sharvill RENEWAL
Aditya Y FerenczBrazilElwin Sharvill RENEWAL
Jeanfrancois G AmigonRussiaBernardo Dominic RENEWAL
Frozen Columns
Name
Darci V Foller
Alejandro M Garufi
Jones W Nicka
Adams G Darakjy
Ashley W Glick
David P Rulapaugh
Ricardo C Dilliard
Isabel Z Ferencz
Izzy F Dilliard
Chavez N Doe
Francesco O Dilliard
James A Darakjy
Adams M Ruta
Octavia Z Darakjy
Mujtaba T Flosi
Alejandro P Wieser
Ashley N Caldarera
Murillo Z Caudy
Smith B Stenseth
Clifford H Oldroyd
Mayumi A Nicka
Julie O Morasca
Adams S Rulapaugh
Mayumi K Kolmetz
Jefferson U Figeroa
Jones T Whobrey
Greenwood C Bolognia
Isabel D Perin
Octavia K Campain
Jefferson K Gaucho
Francesco J Stockham
Aika V Malet
Ashley T Bolognia
Johnson N Campain
Isabel C Caldarera
Faith E Campain
Munro R Marrier
Morrow Q Morasca
Mayumi S Flosi
Deepesh I Doe
Octavia W Iturbide
Aditya N Bowley
Maisha X Figeroa
Claire S Wieser
Jeanfrancois G Venere
Wickens Y Morasca
Chavez F Glick
Mujtaba J Ferencz
Sinclair W Kolmetz
Ashley S Butt
IdCountryDate
1000Japan2024-06-01
1001Russia2024-06-08
1002India2024-06-12
1003Italy2024-06-17
1004United Kingdom2024-05-31
1005Australia2024-06-06
1006India2024-06-17
1007Brazil2024-05-30
1008Russia2024-06-16
1009Brazil2024-05-27
1010Canada2024-05-28
1011Australia2024-06-10
1012Germany2024-06-21
1013Brazil2024-06-10
1014India2024-06-03
1015Argentina2024-06-01
1016France2024-05-25
1017Spain2024-06-10
1018Canada2024-06-17
1019Argentina2024-05-31
1020Argentina2024-06-19
1021Russia2024-05-31
1022France2024-05-26
1023Brazil2024-06-07
1024Brazil2024-05-28
1025United Kingdom2024-05-28
1026Japan2024-05-23
1027Canada2024-06-14
1028Australia2024-06-12
1029United Kingdom2024-05-31
1030India2024-05-26
1031Spain2024-06-20
1032Australia2024-06-10
1033Italy2024-05-31
1034France2024-05-26
1035Argentina2024-06-10
1036Spain2024-06-12
1037Germany2024-06-03
1038Russia2024-06-19
1039Argentina2024-05-28
1040Spain2024-06-15
1041Italy2024-05-30
1042Argentina2024-06-10
1043France2024-06-18
1044Italy2024-06-06
1045Brazil2024-05-27
1046Australia2024-06-10
1047Spain2024-06-10
1048France2024-06-18
1049Spain2024-06-03

On-Demand Data

NameIdCountryDate
Silvio C Gaucho1000Italy2024-06-09
Aika F Caldarera1001Canada2024-06-16
Octavia W Bowley1002Spain2024-06-03
Francesco S Darakjy1003Russia2024-06-19
Morrow R Gaucho1004United Kingdom2024-06-20
Arvin P Glick1005Germany2024-06-12
Greenwood L Briddick1006Italy2024-06-01
Aditya Z Caudy1007India2024-05-25
Salvatore N Stockham1008Germany2024-06-04
Aika I Malet1009United Kingdom2024-05-31
Smith T Nestle1010Spain2024-06-15
Isabel F Caudy1011Italy2024-06-03
Murillo T Iturbide1012Canada2024-06-08
Aika B Royster1013Italy2024-05-26
Jeanfrancois B Waycott1014Canada2024-06-20
Sinclair B Bowley1015Brazil2024-06-03
Kaitlin F Nestle1016Germany2024-05-28
Emily K Waycott1017Japan2024-06-09
Clifford H Darakjy1018Brazil2024-06-12
Mujtaba N Nestle1019Japan2024-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika R BowleyFranceStephen Shaw QUALIFIED
Jones Y InouyeGermanyAsiya Javayant NEW
Mayumi T NestleArgentinaAnna Fali NEW
Murillo L StockhamArgentinaBernardo Dominic UNQUALIFIED
Chavez K CaudySpainIoni Bowcher NEGOTIATION
David I StensethBrazilIoni Bowcher RENEWAL
Leon V RimArgentinaAmy Elsner NEGOTIATION
Jones D WieserJapanAnna Fali NEGOTIATION
Aika L GillianJapanOnyama Limba NEGOTIATION
Leon F WhobreyItalyIvan Magalhaes NEGOTIATION
Chavez P RoysterCanadaIoni Bowcher NEW
Nicolas Z DilliardIndiaAnna Fali QUALIFIED
Maisha I AmigonBrazilIvan Magalhaes RENEWAL
Salvatore I WieserJapanStephen Shaw NEGOTIATION
Johnson F IturbideAustraliaOnyama Limba QUALIFIED
Francesco P InouyeUnited KingdomIoni Bowcher QUALIFIED
Wickens I PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Costa B MorascaRussiaStephen Shaw PROPOSAL
Aruna N MaletBrazilAsiya Javayant NEGOTIATION
Ashley D BologniaBrazilIoni Bowcher NEW
Emily H SchemmerArgentinaIvan Magalhaes RENEWAL
Ivar V BowleyJapanElwin Sharvill RENEWAL
Aruna R MacleadIndiaAsiya Javayant PROPOSAL
Kadeem W FollerItalyElwin Sharvill PROPOSAL
Jefferson I SlusarskiGermanyIvan Magalhaes QUALIFIED
Maisha G BowleyGermanyXuxue Feng PROPOSAL
Clifford D BologniaIndiaXuxue Feng RENEWAL
Wickens F RimSpainElwin Sharvill NEW
Nicolas T RoysterSpainXuxue Feng UNQUALIFIED
Rodrigues N CampainItalyStephen Shaw NEGOTIATION
Aditya C StockhamRussiaIoni Bowcher PROPOSAL
Octavia K RoysterItalyElwin Sharvill UNQUALIFIED
Salvatore W MaletItalyBernardo Dominic RENEWAL
Silvio E PerinJapanBernardo Dominic QUALIFIED
David G BologniaFranceIvan Magalhaes QUALIFIED
Morrow G SlusarskiArgentinaStephen Shaw NEW
Izzy J FigeroaJapanAnna Fali NEGOTIATION
David V DoeSpainIvan Magalhaes QUALIFIED
Alejandro B MaletItalyIoni Bowcher NEGOTIATION
Sinclair S SlusarskiCanadaIvan Magalhaes QUALIFIED

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