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
Leja O RoysterFranceElwin Sharvill PROPOSAL
Nicolas U CaldareraSpainXuxue Feng RENEWAL
Cody R IturbideArgentinaAsiya Javayant QUALIFIED
Mayumi Y FlosiUnited KingdomAnna Fali NEW
Ricardo T GauchoAustraliaAmy Elsner QUALIFIED
Julie H FlosiFranceBernardo Dominic NEGOTIATION
Antonio L ButtGermanyOnyama Limba UNQUALIFIED
Adams V NickaCanadaBernardo Dominic NEW
Octavia V DoeItalyAsiya Javayant PROPOSAL
Faith K StensethArgentinaStephen Shaw PROPOSAL
Greenwood K DilliardIndiaXuxue Feng QUALIFIED
Izzy J GarufiCanadaElwin Sharvill NEGOTIATION
Munro I SaylorsItalyBernardo Dominic NEW
Murillo S MacleadGermanyStephen Shaw NEW
Kadeem C PoquetteGermanyBernardo Dominic QUALIFIED
Jefferson D KuskoGermanyXuxue Feng NEW
Francesco Y CaldareraCanadaStephen Shaw NEGOTIATION
Arvin Y GlickAustraliaXuxue Feng QUALIFIED
Leja Q AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
James H BowleyUnited KingdomIoni Bowcher NEW
Aika X StensethUnited KingdomOnyama Limba NEGOTIATION
Sinclair L NestleBrazilAnna Fali UNQUALIFIED
Kadeem M SaylorsJapanElwin Sharvill NEW
Antonio R TollnerRussiaIvan Magalhaes QUALIFIED
Leja K GlickItalyBernardo Dominic PROPOSAL
Julie B CaldareraItalyElwin Sharvill PROPOSAL
Aruna Y DilliardRussiaIoni Bowcher QUALIFIED
Isabel G RulapaughSpainOnyama Limba NEW
Jones X ChuiCanadaAnna Fali RENEWAL
Jefferson C WieserItalyAnna Fali NEGOTIATION
Jefferson M KolmetzBrazilAsiya Javayant PROPOSAL
Smith D CaldareraRussiaIoni Bowcher UNQUALIFIED
Kadeem M SergiGermanyIvan Magalhaes UNQUALIFIED
Murillo A StockhamJapanXuxue Feng UNQUALIFIED
James R MacleadSpainIvan Magalhaes UNQUALIFIED
Leja F SchemmerIndiaOnyama Limba UNQUALIFIED
Wickens H SergiFranceIvan Magalhaes PROPOSAL
Ashley I StockhamCanadaIvan Magalhaes QUALIFIED
Deepesh N RulapaughAustraliaAsiya Javayant UNQUALIFIED
Nicolas U GlickArgentinaIoni Bowcher PROPOSAL
Ricardo H RoysterCanadaIvan Magalhaes NEGOTIATION
Isabel F MacleadCanadaIoni Bowcher QUALIFIED
Emily M SlusarskiArgentinaStephen Shaw NEGOTIATION
Munro M RulapaughUnited KingdomXuxue Feng PROPOSAL
Smith Q StensethAustraliaXuxue Feng QUALIFIED
Ivar M PerinUnited KingdomAsiya Javayant QUALIFIED
Octavia T TollnerJapanIvan Magalhaes RENEWAL
Costa U KolmetzItalyOnyama Limba PROPOSAL
Arvin X KolmetzFranceAnna Fali PROPOSAL
Jefferson I ButtGermanyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jefferson M OldroydItalyXuxue Feng PROPOSAL
Francesco T WieserFranceElwin Sharvill PROPOSAL
Misaki H VenereSpainOnyama Limba RENEWAL
David X PaprockiBrazilAsiya Javayant NEW
Juan F VenereFranceIvan Magalhaes NEW
Silvio C SchemmerUnited KingdomBernardo Dominic RENEWAL
Aika B DilliardIndiaElwin Sharvill PROPOSAL
Jefferson F GlickIndiaOnyama Limba QUALIFIED
Darci M StensethRussiaOnyama Limba UNQUALIFIED
Ivar F FerenczRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley E KolmetzSpain2025-04-29Rangoni Of Florence PROPOSAL30Amy Elsner
1001James I ChuiJapan2025-04-27Benton, John B Jr RENEWAL93Onyama Limba
1002Ivar R NickaUnited Kingdom2025-04-30Rangoni Of Florence NEW34Bernardo Dominic
1003Aditya G SergiArgentina2025-04-02Chapman, Ross E Esq RENEWAL8Elwin Sharvill
1004Octavia F SlusarskiIndia2025-04-07Truhlar And Truhlar Attys RENEWAL81Anna Fali
1005Deepesh Q WhobreyAustralia2025-04-04Buckley Miller Wright UNQUALIFIED29Onyama Limba
1006Rodrigues Z SaylorsSpain2025-04-09Commercial Press PROPOSAL69Ivan Magalhaes
1007Salvatore G FlosiBrazil2025-04-08Dorl, James J Esq UNQUALIFIED95Ivan Magalhaes
1008Tony W CaldareraAustralia2025-04-04Rousseaux, Michael Esq RENEWAL37Elwin Sharvill
1009Cody C ChuiGermany2025-04-01Printing Dimensions QUALIFIED50Ivan Magalhaes
1010Maria K NestleAustralia2025-04-04Chanay, Jeffrey A Esq PROPOSAL72Stephen Shaw
1011Clifford F MarrierJapan2025-04-10Rousseaux, Michael Esq NEGOTIATION5Ivan Magalhaes
1012Smith O DarakjyFrance2025-04-20Rangoni Of Florence NEGOTIATION30Amy Elsner
1013Clifford C PaprockiItaly2025-04-07Truhlar And Truhlar Attys NEW50Xuxue Feng
1014Alejandro O NickaJapan2025-04-08Chapman, Ross E Esq PROPOSAL85Bernardo Dominic
1015Costa M OldroydAustralia2025-04-12Benton, John B Jr RENEWAL19Xuxue Feng
1016Ashley H TollnerJapan2025-04-24Feltz Printing Service NEW49Anna Fali
1017Kadeem W TollnerAustralia2025-04-25Rousseaux, Michael Esq NEGOTIATION93Anna Fali
1018Tony P CampainJapan2025-04-23Feiner Bros NEGOTIATION89Elwin Sharvill
1019Jeanfrancois I VocelkaArgentina2025-04-25Chapman, Ross E Esq UNQUALIFIED87Ivan Magalhaes
1020Aika N AlbaresItaly2025-04-27Chemel, James L Cpa NEGOTIATION88Xuxue Feng
1021Wickens B GauchoGermany2025-04-02Chemel, James L Cpa UNQUALIFIED12Anna Fali
1022Clifford S CampainArgentina2025-04-27Feltz Printing Service QUALIFIED55Elwin Sharvill
1023Faith C MacleadBrazil2025-04-06Printing Dimensions PROPOSAL25Anna Fali
1024Antonio K FollerCanada2025-04-01Commercial Press PROPOSAL78Ioni Bowcher
1025Mujtaba Q ShinkoItaly2025-04-17Commercial Press UNQUALIFIED44Amy Elsner
1026Munro Q SlusarskiItaly2025-04-09Truhlar And Truhlar Attys QUALIFIED46Asiya Javayant
1027Jefferson L SergiArgentina2025-04-27Buckley Miller Wright QUALIFIED96Onyama Limba
1028Murillo E BowleySpain2025-04-29Morlong Associates RENEWAL37Amy Elsner
1029Nicolas A BriddickUnited Kingdom2025-04-11Printing Dimensions RENEWAL47Ioni Bowcher
1030Ivar V IturbideCanada2025-04-05Rangoni Of Florence UNQUALIFIED58Elwin Sharvill
1031Misaki P RimCanada2025-04-22King, Christopher A Esq UNQUALIFIED76Ivan Magalhaes
1032Salvatore W RutaItaly2025-04-22Benton, John B Jr PROPOSAL65Ivan Magalhaes
1033Costa N BriddickUnited Kingdom2025-04-12Truhlar And Truhlar Attys QUALIFIED54Elwin Sharvill
1034Ashley C CaldareraUnited Kingdom2025-04-14Chanay, Jeffrey A Esq PROPOSAL38Xuxue Feng
1035Alejandro L AlbaresItaly2025-04-24Truhlar And Truhlar Attys RENEWAL73Asiya Javayant
1036Munro T AlbaresSpain2025-04-20Printing Dimensions NEW66Bernardo Dominic
1037Julie I SergiFrance2025-04-15Morlong Associates NEGOTIATION33Amy Elsner
1038Mujtaba F VocelkaUnited Kingdom2025-04-14Chemel, James L Cpa UNQUALIFIED55Elwin Sharvill
1039Costa T NestleGermany2025-04-13Morlong Associates PROPOSAL37Anna Fali
1040James I NickaUnited Kingdom2025-04-10Printing Dimensions QUALIFIED4Xuxue Feng
1041Juan V FollerSpain2025-04-20Chemel, James L Cpa NEW13Asiya Javayant
1042Juan B ShinkoIndia2025-04-02Rousseaux, Michael Esq UNQUALIFIED88Amy Elsner
1043Maria H DoeUnited Kingdom2025-04-01Feltz Printing Service NEGOTIATION59Anna Fali
1044Aika M BowleyCanada2025-04-10Feiner Bros QUALIFIED44Elwin Sharvill
1045Jefferson G GlickGermany2025-04-07Feltz Printing Service NEW92Bernardo Dominic
1046Mayumi G WaycottSpain2025-04-18Chanay, Jeffrey A Esq NEGOTIATION39Elwin Sharvill
1047Maria A PerinCanada2025-04-10Chemel, James L Cpa UNQUALIFIED86Elwin Sharvill
1048Maria W SchemmerCanada2025-04-02Rangoni Of Florence NEW55Ioni Bowcher
1049Faith J OstroskyUnited Kingdom2025-04-05Printing Dimensions NEGOTIATION13Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria H ButtUnited KingdomElwin Sharvill UNQUALIFIED
Adams E GillianCanadaAsiya Javayant RENEWAL
Izzy O SchemmerUnited KingdomElwin Sharvill QUALIFIED
Maisha F StockhamGermanyElwin Sharvill UNQUALIFIED
Leon O ShinkoFranceIoni Bowcher NEW
Murillo Q OstroskyRussiaBernardo Dominic NEGOTIATION
Morrow C CampainAustraliaXuxue Feng NEW
Jeanfrancois W RulapaughFranceAsiya Javayant UNQUALIFIED
Stacey M BologniaItalyStephen Shaw QUALIFIED
Kaitlin H RoysterSpainElwin Sharvill PROPOSAL
Ashley O BologniaGermanyAsiya Javayant PROPOSAL
Juan W PaprockiUnited KingdomAmy Elsner RENEWAL
Kaitlin T CaudyCanadaAsiya Javayant NEGOTIATION
Alejandro L VenereUnited KingdomXuxue Feng RENEWAL
Greenwood R DoeGermanyStephen Shaw NEW
Ivar V GarufiCanadaAmy Elsner NEW
Faith H RoysterArgentinaIvan Magalhaes PROPOSAL
Greenwood O CaldareraRussiaStephen Shaw PROPOSAL
Jones T GarufiBrazilXuxue Feng RENEWAL
Francesco J WaycottIndiaOnyama Limba QUALIFIED
Chavez P TollnerArgentinaStephen Shaw QUALIFIED
Chavez X NickaFranceIvan Magalhaes RENEWAL
Chavez Q DoeSpainAsiya Javayant NEW
Aruna P PoquetteAustraliaStephen Shaw QUALIFIED
Maria S BowleySpainOnyama Limba NEGOTIATION
Jeanfrancois X OldroydIndiaXuxue Feng NEW
Adams O DoeBrazilXuxue Feng QUALIFIED
Morrow J MaletGermanyElwin Sharvill RENEWAL
Ivar M SchemmerBrazilAsiya Javayant NEGOTIATION
Kadeem C WaycottJapanOnyama Limba UNQUALIFIED
Silvio M BologniaArgentinaAnna Fali NEGOTIATION
Costa V VenereIndiaXuxue Feng PROPOSAL
Kaitlin V RutaSpainBernardo Dominic NEW
Clifford S WieserRussiaAnna Fali RENEWAL
Aditya F RimAustraliaElwin Sharvill NEGOTIATION
Aika U StockhamFranceAsiya Javayant NEW
Silvio K AlbaresCanadaStephen Shaw NEW
Antonio K SergiUnited KingdomStephen Shaw RENEWAL
Chavez O DoeCanadaAmy Elsner RENEWAL
Wickens W KuskoItalyBernardo Dominic NEW
Jones S TollnerBrazilBernardo Dominic PROPOSAL
Emily N FlosiBrazilAsiya Javayant NEGOTIATION
James B NickaFranceAnna Fali RENEWAL
Leja O VenereBrazilAsiya Javayant RENEWAL
Salvatore I VocelkaRussiaIoni Bowcher UNQUALIFIED
Costa F WhobreyFranceOnyama Limba NEGOTIATION
Jeanfrancois M ButtBrazilOnyama Limba NEW
Morrow Z VenereFranceIvan Magalhaes RENEWAL
Nicolas Q BriddickItalyIoni Bowcher UNQUALIFIED
Emily W GlickIndiaOnyama Limba RENEWAL
Frozen Columns
Name
Maisha K Kolmetz
Julie F Chui
Claire Q Amigon
Isabel G Ruta
Leja P Marrier
Octavia O Slusarski
Jeanfrancois W Waycott
Aika A Poquette
Ashley B Briddick
Johnson A Marrier
James P Schemmer
Stacey C Doe
Deepesh H Schemmer
Rodrigues O Glick
Faith S Shinko
Cody M Chui
Costa W Gaucho
Stacey R Caudy
Maria E Nicka
Octavia P Oldroyd
Jones A Chui
Octavia Q Figeroa
Clifford Y Bolognia
Mujtaba D Marrier
Tony W Malet
Stacey A Gillian
Murillo E Schemmer
Aditya E Kolmetz
Kaitlin D Doe
Jones J Ruta
Emily S Ostrosky
Aditya Z Gillian
Misaki G Rulapaugh
Jennifer R Flosi
Emily A Rim
Mayumi R Marrier
Aditya N Caldarera
Juan T Malet
Johnson G Bolognia
Ricardo S Poquette
Emily D Vocelka
Mujtaba M Iturbide
Izzy K Wieser
Maria O Maclead
Jennifer J Kusko
Jeanfrancois F Waycott
Jefferson Z Schemmer
Emily D Poquette
Alejandro S Malet
Tony B Gaucho
IdCountryDate
1000India2025-04-27
1001Argentina2025-04-18
1002Russia2025-04-27
1003India2025-04-05
1004Spain2025-04-05
1005Italy2025-04-16
1006Italy2025-04-20
1007Canada2025-04-16
1008Australia2025-04-25
1009Germany2025-04-14
1010India2025-04-08
1011Japan2025-04-26
1012France2025-04-15
1013India2025-04-03
1014Germany2025-04-19
1015Italy2025-04-23
1016Russia2025-04-11
1017United Kingdom2025-04-27
1018Japan2025-04-14
1019Spain2025-04-13
1020Japan2025-04-08
1021Brazil2025-04-05
1022India2025-04-14
1023Italy2025-04-11
1024India2025-04-01
1025France2025-04-10
1026United Kingdom2025-04-26
1027Australia2025-04-22
1028Brazil2025-04-09
1029India2025-04-24
1030Germany2025-04-05
1031Japan2025-04-08
1032Spain2025-04-18
1033Canada2025-04-14
1034Russia2025-04-15
1035Germany2025-04-10
1036Spain2025-04-11
1037Germany2025-04-14
1038Russia2025-04-06
1039Germany2025-04-13
1040Spain2025-04-23
1041Germany2025-04-02
1042Argentina2025-04-23
1043Argentina2025-04-19
1044France2025-04-27
1045Australia2025-04-11
1046Japan2025-04-01
1047France2025-04-09
1048France2025-04-16
1049Russia2025-04-28

On-Demand Data

NameIdCountryDate
Nicolas A Ostrosky1000Japan2025-04-27
Ricardo H Albares1001Argentina2025-04-02
Morrow R Gaucho1002France2025-04-01
Ricardo N Caudy1003Spain2025-04-12
Cody N Morasca1004Germany2025-04-04
Mayumi Y Ruta1005Italy2025-04-07
Morrow O Amigon1006Canada2025-04-01
David R Venere1007Argentina2025-04-20
Juan G Darakjy1008Italy2025-04-03
Mayumi R Stockham1009India2025-04-06
Aika U Stenseth1010United Kingdom2025-04-29
Ivar W Whobrey1011Canada2025-04-12
Arvin I Kusko1012Brazil2025-04-08
Mujtaba Z Garufi1013Japan2025-04-19
Sinclair H Malet1014Spain2025-04-25
Sinclair G Campain1015India2025-04-30
Darci A Malet1016Australia2025-04-08
James M Doe1017India2025-04-17
Sinclair F Bolognia1018Australia2025-04-28
Clifford K Kolmetz1019Spain2025-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria D PaprockiArgentinaIvan Magalhaes RENEWAL
Ricardo H GauchoCanadaElwin Sharvill PROPOSAL
Aditya V CaudyRussiaAmy Elsner NEGOTIATION
Sinclair O MaletUnited KingdomAmy Elsner NEGOTIATION
Ashley P ButtAustraliaIoni Bowcher UNQUALIFIED
Murillo Z OstroskyBrazilAmy Elsner QUALIFIED
Isabel V InouyeArgentinaStephen Shaw UNQUALIFIED
Clifford D StensethCanadaIvan Magalhaes NEGOTIATION
Costa T BowleyItalyIoni Bowcher NEGOTIATION
Chavez J StockhamItalyIvan Magalhaes PROPOSAL
Ricardo C DilliardBrazilAsiya Javayant PROPOSAL
James O RimCanadaAsiya Javayant NEW
Silvio Q MarrierGermanyStephen Shaw NEGOTIATION
Mayumi W OldroydGermanyAnna Fali PROPOSAL
Ivar G BriddickSpainOnyama Limba RENEWAL
Aditya Q IturbideUnited KingdomOnyama Limba NEGOTIATION
Clifford S TollnerItalyElwin Sharvill QUALIFIED
Maria Q SchemmerSpainOnyama Limba RENEWAL
Francesco F ShinkoArgentinaBernardo Dominic UNQUALIFIED
Aruna D OldroydSpainAsiya Javayant NEGOTIATION
Jeanfrancois M MarrierSpainAsiya Javayant UNQUALIFIED
Jones I OstroskyIndiaXuxue Feng QUALIFIED
Kadeem F VenereIndiaIoni Bowcher NEGOTIATION
Salvatore Y NickaUnited KingdomElwin Sharvill UNQUALIFIED
Silvio C GlickRussiaOnyama Limba PROPOSAL
Julie J BowleyCanadaBernardo Dominic QUALIFIED
Aditya Y MaletFranceAmy Elsner UNQUALIFIED
Ricardo B GauchoSpainAsiya Javayant NEGOTIATION
Ashley Q AmigonSpainAmy Elsner UNQUALIFIED
Darci X PerinFranceAsiya Javayant QUALIFIED
Isabel Z MaletCanadaIvan Magalhaes NEGOTIATION
Chavez M SchemmerRussiaBernardo Dominic UNQUALIFIED
Rodrigues C KuskoRussiaIoni Bowcher PROPOSAL
Leon G RutaBrazilElwin Sharvill UNQUALIFIED
Jefferson U RulapaughUnited KingdomOnyama Limba NEW
Clifford M StockhamAustraliaAmy Elsner QUALIFIED
Greenwood X PerinUnited KingdomBernardo Dominic RENEWAL
Aruna E CampainRussiaIvan Magalhaes QUALIFIED
Mujtaba O DarakjyIndiaBernardo Dominic NEW
Clifford P AmigonUnited KingdomStephen Shaw PROPOSAL

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