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
Claire F PaprockiJapanElwin Sharvill NEGOTIATION
James W GillianJapanAnna Fali QUALIFIED
Costa J CampainFranceAnna Fali NEW
Mayumi V DoeCanadaAmy Elsner QUALIFIED
Cody F DoeGermanyAmy Elsner PROPOSAL
Jennifer W MaletUnited KingdomBernardo Dominic UNQUALIFIED
Aruna D FerenczJapanXuxue Feng NEW
Johnson W KolmetzItalyIvan Magalhaes PROPOSAL
Izzy O InouyeJapanStephen Shaw RENEWAL
Chavez V StockhamRussiaOnyama Limba RENEWAL
Julie B MarrierGermanyIvan Magalhaes UNQUALIFIED
Stacey O NickaArgentinaXuxue Feng NEW
Jeanfrancois D IturbideJapanAnna Fali QUALIFIED
Juan V OstroskySpainAmy Elsner UNQUALIFIED
Ashley W FlosiIndiaIoni Bowcher RENEWAL
Mujtaba Q DilliardSpainBernardo Dominic QUALIFIED
Kaitlin J VocelkaBrazilOnyama Limba UNQUALIFIED
Francesco B WhobreyBrazilXuxue Feng UNQUALIFIED
Clifford B MaletGermanyElwin Sharvill NEGOTIATION
Johnson G StockhamIndiaAnna Fali NEW
Sinclair L WaycottRussiaOnyama Limba UNQUALIFIED
Kadeem R DarakjyBrazilAmy Elsner RENEWAL
Ashley A RoysterAustraliaIoni Bowcher QUALIFIED
Antonio F MaletArgentinaElwin Sharvill QUALIFIED
Maisha S TollnerGermanyIoni Bowcher UNQUALIFIED
Smith Z ChuiArgentinaOnyama Limba NEW
Isabel S OldroydUnited KingdomIvan Magalhaes PROPOSAL
Salvatore Y TollnerAustraliaXuxue Feng NEW
Mujtaba E StensethItalyAnna Fali QUALIFIED
Antonio T FlosiJapanAsiya Javayant QUALIFIED
Cody Z SaylorsAustraliaAmy Elsner UNQUALIFIED
Juan P GlickGermanyXuxue Feng NEW
Smith F ShinkoFranceAnna Fali UNQUALIFIED
Salvatore C DilliardItalyAsiya Javayant NEGOTIATION
Jefferson D GarufiJapanElwin Sharvill QUALIFIED
Francesco L RutaArgentinaXuxue Feng UNQUALIFIED
Mayumi J RimArgentinaIoni Bowcher QUALIFIED
Munro D BriddickSpainStephen Shaw UNQUALIFIED
Munro U PoquetteGermanyAsiya Javayant NEW
Darci M SaylorsArgentinaElwin Sharvill QUALIFIED
Izzy T VocelkaRussiaIvan Magalhaes QUALIFIED
Clifford B MaletIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois D GillianJapanAsiya Javayant NEGOTIATION
Munro O MaletArgentinaAnna Fali RENEWAL
Izzy B GillianSpainElwin Sharvill QUALIFIED
Alejandro W TollnerFranceXuxue Feng UNQUALIFIED
Chavez D IturbideIndiaIoni Bowcher PROPOSAL
Salvatore J WieserItalyAmy Elsner NEW
Emily X VenereItalyXuxue Feng QUALIFIED
Juan I CampainUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar H BologniaJapanAsiya Javayant UNQUALIFIED
Faith Z KuskoFranceXuxue Feng NEW
Tony S SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Nicolas G WaycottGermanyXuxue Feng RENEWAL
Arvin F InouyeSpainElwin Sharvill RENEWAL
Mayumi J MacleadUnited KingdomAmy Elsner PROPOSAL
Juan B SergiUnited KingdomAmy Elsner NEGOTIATION
Jones T NestleBrazilAnna Fali NEGOTIATION
Kadeem P ShinkoBrazilAnna Fali UNQUALIFIED
Aditya L CampainSpainXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa U ChuiSpain2024-06-03Rousseaux, Michael Esq NEGOTIATION47Ioni Bowcher
1001Tony D MorascaFrance2024-06-02Truhlar And Truhlar Attys PROPOSAL71Xuxue Feng
1002Izzy X GillianAustralia2024-05-26Rousseaux, Michael Esq NEW44Stephen Shaw
1003Misaki W RutaItaly2024-05-25Commercial Press UNQUALIFIED40Xuxue Feng
1004Morrow G MacleadJapan2024-05-29Printing Dimensions NEW12Stephen Shaw
1005Sinclair W AmigonAustralia2024-06-22Commercial Press NEW65Stephen Shaw
1006Deepesh F ChuiItaly2024-06-17Commercial Press NEGOTIATION55Ioni Bowcher
1007Rodrigues T OstroskyCanada2024-05-26Rangoni Of Florence NEGOTIATION25Ioni Bowcher
1008Morrow R OstroskyAustralia2024-06-15Dorl, James J Esq UNQUALIFIED9Elwin Sharvill
1009Sinclair C GlickSpain2024-06-19Morlong Associates QUALIFIED94Onyama Limba
1010Arvin K RimRussia2024-06-17Printing Dimensions QUALIFIED54Asiya Javayant
1011Salvatore Q WaycottIndia2024-06-20Commercial Press QUALIFIED69Onyama Limba
1012Ricardo U CaudyBrazil2024-05-31Dorl, James J Esq QUALIFIED73Xuxue Feng
1013Isabel C SergiIndia2024-05-24Commercial Press PROPOSAL65Elwin Sharvill
1014Smith G RimGermany2024-06-09Chapman, Ross E Esq NEGOTIATION65Asiya Javayant
1015Jefferson W CampainFrance2024-06-11Commercial Press UNQUALIFIED19Ivan Magalhaes
1016Maria H NickaIndia2024-06-06Chanay, Jeffrey A Esq RENEWAL67Asiya Javayant
1017Johnson R MaletRussia2024-06-16Truhlar And Truhlar Attys UNQUALIFIED91Stephen Shaw
1018Silvio W VenereBrazil2024-06-06Buckley Miller Wright UNQUALIFIED81Ivan Magalhaes
1019Leja X FollerSpain2024-06-07Printing Dimensions PROPOSAL97Amy Elsner
1020Smith X ShinkoArgentina2024-06-10Feiner Bros QUALIFIED97Asiya Javayant
1021Arvin G GillianIndia2024-05-27Truhlar And Truhlar Attys PROPOSAL35Asiya Javayant
1022Salvatore H SchemmerAustralia2024-06-12Commercial Press UNQUALIFIED31Stephen Shaw
1023Ivar S DarakjyUnited Kingdom2024-06-15Printing Dimensions PROPOSAL82Elwin Sharvill
1024Julie N TollnerAustralia2024-05-27Rousseaux, Michael Esq NEW14Onyama Limba
1025Smith F SchemmerFrance2024-06-12Rousseaux, Michael Esq QUALIFIED25Ivan Magalhaes
1026Misaki L InouyeBrazil2024-06-08King, Christopher A Esq NEGOTIATION94Ioni Bowcher
1027Clifford P WhobreyUnited Kingdom2024-06-09Morlong Associates RENEWAL36Ivan Magalhaes
1028Nicolas V SchemmerGermany2024-06-20Feltz Printing Service RENEWAL22Asiya Javayant
1029Arvin L NestleGermany2024-06-11Rousseaux, Michael Esq QUALIFIED48Ivan Magalhaes
1030Maria I FollerGermany2024-06-05Morlong Associates UNQUALIFIED45Asiya Javayant
1031Aruna K MorascaRussia2024-06-22Truhlar And Truhlar Attys UNQUALIFIED66Ioni Bowcher
1032Ivar O MacleadIndia2024-06-17Feiner Bros QUALIFIED9Asiya Javayant
1033Misaki A TollnerArgentina2024-05-29Chanay, Jeffrey A Esq QUALIFIED5Onyama Limba
1034Maria F KolmetzIndia2024-06-08Printing Dimensions QUALIFIED21Xuxue Feng
1035Faith N WaycottItaly2024-06-11Printing Dimensions RENEWAL22Elwin Sharvill
1036Alejandro O OldroydUnited Kingdom2024-06-08Rangoni Of Florence NEW77Anna Fali
1037Johnson S GauchoGermany2024-05-26Feltz Printing Service UNQUALIFIED90Anna Fali
1038Morrow M WaycottBrazil2024-06-15Commercial Press NEGOTIATION51Bernardo Dominic
1039Nicolas W KolmetzIndia2024-06-15King, Christopher A Esq QUALIFIED49Ivan Magalhaes
1040Costa G DilliardGermany2024-06-16Chapman, Ross E Esq NEGOTIATION63Anna Fali
1041Deepesh K GarufiJapan2024-06-08Buckley Miller Wright NEW44Onyama Limba
1042Leon X CampainAustralia2024-05-28Feltz Printing Service PROPOSAL81Stephen Shaw
1043Rodrigues Q OstroskyBrazil2024-06-07Truhlar And Truhlar Attys PROPOSAL78Ioni Bowcher
1044Emily D FerenczAustralia2024-06-04Rousseaux, Michael Esq RENEWAL19Ivan Magalhaes
1045Julie J MacleadSpain2024-06-18Commercial Press PROPOSAL16Ivan Magalhaes
1046Rodrigues A MarrierFrance2024-06-17Chapman, Ross E Esq UNQUALIFIED21Ioni Bowcher
1047Murillo D RutaRussia2024-05-26Chapman, Ross E Esq NEW51Ivan Magalhaes
1048Salvatore D CaudyGermany2024-06-22Chapman, Ross E Esq RENEWAL26Elwin Sharvill
1049Francesco T ChuiFrance2024-06-17Chemel, James L Cpa QUALIFIED15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois M RoysterCanadaIvan Magalhaes RENEWAL
Aditya W PerinJapanIvan Magalhaes QUALIFIED
Greenwood Z MarrierGermanyIvan Magalhaes NEGOTIATION
Kadeem Z ButtSpainElwin Sharvill NEGOTIATION
Greenwood G MacleadArgentinaAsiya Javayant PROPOSAL
Munro A GauchoSpainElwin Sharvill PROPOSAL
Clifford Z WieserUnited KingdomOnyama Limba PROPOSAL
Faith B MacleadItalyBernardo Dominic UNQUALIFIED
Tony R DoeIndiaAnna Fali NEW
Sinclair I GarufiGermanyIvan Magalhaes PROPOSAL
Sinclair W InouyeRussiaAnna Fali NEW
Maisha B IturbideCanadaIoni Bowcher NEW
Stacey B KuskoUnited KingdomIvan Magalhaes RENEWAL
Deepesh B AlbaresItalyXuxue Feng NEW
Alejandro J FigeroaSpainXuxue Feng UNQUALIFIED
Costa N GillianGermanyStephen Shaw NEW
Cody G CampainJapanAnna Fali UNQUALIFIED
Isabel R VocelkaCanadaAsiya Javayant NEW
Julie Q RulapaughAustraliaStephen Shaw NEGOTIATION
Adams U StockhamBrazilXuxue Feng RENEWAL
Wickens Y RoysterJapanIvan Magalhaes NEGOTIATION
Rodrigues F FollerRussiaOnyama Limba NEGOTIATION
Ashley D PoquetteRussiaAmy Elsner NEGOTIATION
Costa L PaprockiItalyIvan Magalhaes UNQUALIFIED
James P BologniaBrazilBernardo Dominic UNQUALIFIED
Francesco N RoysterGermanyIoni Bowcher RENEWAL
Chavez A SergiJapanStephen Shaw NEW
Aditya E KolmetzJapanAmy Elsner PROPOSAL
James V PoquetteFranceIoni Bowcher QUALIFIED
Francesco F MaletArgentinaXuxue Feng QUALIFIED
Rodrigues I GillianRussiaOnyama Limba RENEWAL
Chavez O RimJapanElwin Sharvill UNQUALIFIED
Isabel W MarrierSpainAsiya Javayant PROPOSAL
Kadeem L CampainJapanOnyama Limba QUALIFIED
Octavia M MaletUnited KingdomElwin Sharvill UNQUALIFIED
David M PoquetteJapanXuxue Feng RENEWAL
Francesco O MaletItalyAsiya Javayant UNQUALIFIED
Tony Z PoquetteItalyElwin Sharvill RENEWAL
Salvatore Z VenereIndiaIvan Magalhaes UNQUALIFIED
Maria X PaprockiJapanOnyama Limba RENEWAL
Wickens H FollerCanadaBernardo Dominic RENEWAL
Kaitlin X CaldareraJapanBernardo Dominic NEGOTIATION
Alejandro Q SchemmerFranceBernardo Dominic RENEWAL
Salvatore I SlusarskiJapanAmy Elsner UNQUALIFIED
Sinclair I SergiIndiaBernardo Dominic NEGOTIATION
Francesco B AlbaresArgentinaOnyama Limba UNQUALIFIED
Aika K WieserUnited KingdomAmy Elsner PROPOSAL
Chavez J StockhamIndiaAnna Fali UNQUALIFIED
James I ChuiJapanIvan Magalhaes RENEWAL
Claire O KuskoFranceBernardo Dominic NEW
Frozen Columns
Name
Smith A Figeroa
Ashley Y Malet
Salvatore J Doe
Wickens F Foller
Ashley R Nicka
Kadeem Q Marrier
Clifford C Malet
Leon I Figeroa
Ashley A Glick
Mujtaba Z Morasca
Ricardo D Morasca
Leja C Shinko
Sinclair Z Schemmer
Sinclair D Foller
Francesco T Doe
Smith A Sergi
Silvio O Saylors
Emily H Poquette
Ashley U Bolognia
Jones S Saylors
Julie S Ostrosky
Aika I Nicka
Mujtaba K Garufi
Smith S Stockham
Emily U Caudy
Ashley J Schemmer
Mayumi R Nicka
Johnson P Inouye
Alejandro K Garufi
Stacey Q Butt
Maisha G Stenseth
Octavia S Kusko
Tony B Shinko
Kadeem I Darakjy
Misaki N Rim
Cody G Poquette
Arvin Z Perin
Arvin F Nicka
Alejandro M Chui
David F Iturbide
Antonio R Vocelka
Morrow U Rim
Adams N Amigon
Wickens U Darakjy
Clifford S Butt
Johnson Q Poquette
Julie Z Kusko
Juan W Dilliard
Octavia D Poquette
Smith C Doe
IdCountryDate
1000Germany2024-06-16
1001United Kingdom2024-06-08
1002Argentina2024-05-26
1003Spain2024-06-22
1004Canada2024-06-11
1005Italy2024-06-04
1006Spain2024-05-28
1007Canada2024-06-02
1008Russia2024-06-04
1009Spain2024-05-24
1010Italy2024-05-29
1011Germany2024-06-16
1012Argentina2024-05-27
1013Spain2024-05-25
1014Japan2024-06-06
1015Italy2024-05-24
1016Argentina2024-06-11
1017United Kingdom2024-06-05
1018France2024-06-01
1019Germany2024-05-26
1020France2024-05-25
1021Russia2024-06-14
1022Canada2024-06-09
1023Australia2024-06-12
1024Spain2024-05-31
1025Germany2024-06-05
1026Russia2024-06-03
1027Germany2024-05-24
1028Japan2024-06-08
1029Canada2024-06-14
1030Brazil2024-06-20
1031Russia2024-06-19
1032India2024-06-20
1033Japan2024-05-31
1034Spain2024-05-26
1035Canada2024-06-03
1036Germany2024-05-24
1037India2024-06-17
1038Australia2024-06-02
1039Argentina2024-05-25
1040United Kingdom2024-05-26
1041France2024-06-09
1042Spain2024-06-04
1043Australia2024-05-24
1044India2024-06-07
1045United Kingdom2024-05-27
1046France2024-06-10
1047Russia2024-06-06
1048Argentina2024-05-26
1049France2024-05-29

On-Demand Data

NameIdCountryDate
Kadeem X Darakjy1000India2024-06-21
Silvio Q Doe1001Canada2024-06-11
Wickens J Venere1002Spain2024-06-06
Deepesh P Ostrosky1003United Kingdom2024-06-05
Antonio J Gillian1004Canada2024-05-28
Jefferson R Sergi1005Germany2024-05-31
Clifford F Rim1006Brazil2024-06-06
Ashley I Nicka1007France2024-06-22
Mujtaba J Perin1008India2024-05-24
Rodrigues L Malet1009Spain2024-06-01
Jeanfrancois K Figeroa1010Japan2024-05-28
Aika I Whobrey1011Germany2024-06-21
Aika I Glick1012Russia2024-05-24
Murillo A Oldroyd1013France2024-06-02
James J Kusko1014Germany2024-06-20
Salvatore R Shinko1015United Kingdom2024-06-13
Jones R Sergi1016Italy2024-05-30
Johnson B Malet1017India2024-06-03
Julie T Whobrey1018Japan2024-05-27
Munro I Malet1019Brazil2024-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood U RulapaughIndiaAnna Fali UNQUALIFIED
Cody F WaycottIndiaAnna Fali UNQUALIFIED
Aditya E PerinFranceStephen Shaw QUALIFIED
Stacey L DarakjyIndiaAmy Elsner QUALIFIED
Claire L MaletFranceAmy Elsner PROPOSAL
Darci F BologniaRussiaOnyama Limba NEGOTIATION
Deepesh U GauchoItalyElwin Sharvill RENEWAL
Deepesh J VocelkaItalyIvan Magalhaes UNQUALIFIED
Clifford D TollnerGermanyAmy Elsner UNQUALIFIED
Aika T PerinSpainAnna Fali RENEWAL
Aruna U PoquetteAustraliaAmy Elsner RENEWAL
Maria D BologniaIndiaAnna Fali UNQUALIFIED
Rodrigues V SlusarskiSpainXuxue Feng NEW
Leon F KolmetzUnited KingdomOnyama Limba PROPOSAL
Alejandro J MarrierRussiaIoni Bowcher PROPOSAL
Morrow B SchemmerIndiaIvan Magalhaes UNQUALIFIED
Maisha J CampainCanadaXuxue Feng QUALIFIED
Smith V WieserRussiaAnna Fali UNQUALIFIED
Juan C AmigonItalyIvan Magalhaes NEW
Clifford M SlusarskiBrazilOnyama Limba NEGOTIATION
Chavez Q BologniaArgentinaAmy Elsner PROPOSAL
Octavia O ShinkoIndiaAsiya Javayant PROPOSAL
Aditya J FlosiBrazilAsiya Javayant QUALIFIED
David C GarufiCanadaIoni Bowcher PROPOSAL
Ivar S FollerFranceStephen Shaw QUALIFIED
Antonio F NickaArgentinaAmy Elsner NEGOTIATION
Ricardo T DilliardIndiaStephen Shaw NEW
Darci M RutaUnited KingdomIvan Magalhaes PROPOSAL
Izzy J GarufiFranceIvan Magalhaes UNQUALIFIED
Arvin K FollerFranceElwin Sharvill UNQUALIFIED
Smith Z StensethBrazilAmy Elsner PROPOSAL
Kadeem W OstroskyItalyAnna Fali NEGOTIATION
Juan H SlusarskiBrazilXuxue Feng RENEWAL
Mujtaba T InouyeFranceIoni Bowcher NEGOTIATION
Wickens P SaylorsSpainAmy Elsner QUALIFIED
Octavia S InouyeUnited KingdomIoni Bowcher NEW
Leja A IturbideAustraliaStephen Shaw QUALIFIED
Jefferson I ButtCanadaBernardo Dominic UNQUALIFIED
Jefferson U StockhamFranceStephen Shaw NEGOTIATION
Maisha F DarakjyCanadaXuxue Feng 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>