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
Octavia J DoeItalyAnna Fali NEW
Jennifer I StensethUnited KingdomXuxue Feng UNQUALIFIED
Greenwood U CampainJapanAnna Fali UNQUALIFIED
Darci Y RimItalyIoni Bowcher NEGOTIATION
Aruna T TollnerGermanyElwin Sharvill PROPOSAL
Costa G SergiJapanElwin Sharvill UNQUALIFIED
Ivar N RoysterAustraliaStephen Shaw RENEWAL
Greenwood C IturbideBrazilAmy Elsner PROPOSAL
Alejandro U MaletFranceStephen Shaw NEW
Chavez J StockhamIndiaOnyama Limba UNQUALIFIED
Silvio G VocelkaFranceBernardo Dominic NEGOTIATION
David F CaldareraItalyStephen Shaw UNQUALIFIED
Costa P IturbideBrazilIoni Bowcher PROPOSAL
Silvio H NickaItalyOnyama Limba NEGOTIATION
Arvin J FlosiArgentinaIoni Bowcher RENEWAL
Leon T FerenczFranceOnyama Limba UNQUALIFIED
Leja R KuskoAustraliaIvan Magalhaes PROPOSAL
Adams C ChuiItalyAmy Elsner PROPOSAL
Salvatore V CaudyJapanXuxue Feng RENEWAL
Faith E MacleadIndiaAmy Elsner NEW
Rodrigues B KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Ricardo Z NestleItalyXuxue Feng PROPOSAL
Adams E FerenczJapanBernardo Dominic QUALIFIED
Silvio U TollnerBrazilOnyama Limba NEGOTIATION
Leja O NestleUnited KingdomAsiya Javayant UNQUALIFIED
Clifford Z PoquetteCanadaBernardo Dominic NEW
David J KuskoIndiaOnyama Limba UNQUALIFIED
Antonio B SlusarskiBrazilStephen Shaw QUALIFIED
Aditya U SaylorsUnited KingdomIoni Bowcher QUALIFIED
Munro B WaycottSpainStephen Shaw PROPOSAL
Smith Q WieserFranceAmy Elsner NEGOTIATION
Costa P VenereBrazilOnyama Limba UNQUALIFIED
Emily Q NestleUnited KingdomAnna Fali PROPOSAL
Julie Z SergiBrazilIoni Bowcher NEGOTIATION
Murillo F MaletRussiaElwin Sharvill NEGOTIATION
Mujtaba N CaldareraFranceAsiya Javayant QUALIFIED
Isabel X StensethArgentinaOnyama Limba UNQUALIFIED
Sinclair Q PerinIndiaIvan Magalhaes QUALIFIED
Izzy H AmigonCanadaElwin Sharvill UNQUALIFIED
Leon B DoeCanadaElwin Sharvill RENEWAL
Mayumi U DarakjyUnited KingdomXuxue Feng PROPOSAL
Julie A IturbideIndiaAsiya Javayant UNQUALIFIED
Ashley Y BriddickIndiaElwin Sharvill RENEWAL
Antonio S ShinkoAustraliaStephen Shaw NEGOTIATION
David R VenereFranceOnyama Limba PROPOSAL
Jefferson D StockhamBrazilXuxue Feng PROPOSAL
Jeanfrancois Q NickaBrazilAnna Fali NEW
Deepesh I FerenczArgentinaIvan Magalhaes RENEWAL
Alejandro H KuskoFranceXuxue Feng QUALIFIED
Rodrigues G GlickArgentinaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
James A KuskoRussiaOnyama Limba QUALIFIED
Ivar E PoquetteCanadaAmy Elsner NEW
Morrow Y StockhamItalyXuxue Feng NEW
Arvin I ChuiFranceElwin Sharvill RENEWAL
Kaitlin W SergiIndiaXuxue Feng RENEWAL
Jefferson B StockhamItalyAsiya Javayant UNQUALIFIED
Aditya X OstroskyJapanBernardo Dominic RENEWAL
David O CaudyUnited KingdomXuxue Feng RENEWAL
Julie X IturbideFranceBernardo Dominic RENEWAL
Rodrigues R GauchoItalyIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues M WhobreyJapan2026-07-04Chanay, Jeffrey A Esq NEGOTIATION64Ioni Bowcher
1001Sinclair X RimArgentina2026-07-16Printing Dimensions NEGOTIATION3Ioni Bowcher
1002Alejandro N MaletIndia2026-07-17Chanay, Jeffrey A Esq NEGOTIATION35Ioni Bowcher
1003Murillo Z StockhamSpain2026-07-10King, Christopher A Esq RENEWAL31Amy Elsner
1004Munro E ShinkoSpain2026-07-22Chanay, Jeffrey A Esq NEGOTIATION70Stephen Shaw
1005Emily H RulapaughFrance2026-07-01Commercial Press QUALIFIED46Ivan Magalhaes
1006Johnson B RoysterAustralia2026-07-09King, Christopher A Esq NEW10Onyama Limba
1007Arvin Z WhobreySpain2026-07-30Benton, John B Jr RENEWAL13Anna Fali
1008Emily Z DarakjyJapan2026-07-29Chanay, Jeffrey A Esq NEW59Xuxue Feng
1009Arvin Y VenereJapan2026-07-21King, Christopher A Esq NEGOTIATION86Asiya Javayant
1010Aditya J StensethGermany2026-07-02Feltz Printing Service NEGOTIATION26Anna Fali
1011Izzy X SchemmerBrazil2026-07-08Feltz Printing Service NEGOTIATION59Elwin Sharvill
1012Mayumi B CampainCanada2026-07-14Morlong Associates UNQUALIFIED62Onyama Limba
1013Aruna O RulapaughJapan2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED27Bernardo Dominic
1014Arvin B CaudyItaly2026-07-29Buckley Miller Wright NEW93Anna Fali
1015James W GlickRussia2026-07-29Chanay, Jeffrey A Esq PROPOSAL95Elwin Sharvill
1016Munro V VenereUnited Kingdom2026-07-10Morlong Associates PROPOSAL67Xuxue Feng
1017Murillo F CaudyIndia2026-07-28Rousseaux, Michael Esq QUALIFIED55Asiya Javayant
1018Tony A SaylorsIndia2026-07-04Truhlar And Truhlar Attys QUALIFIED86Onyama Limba
1019Juan A FigeroaJapan2026-07-04Truhlar And Truhlar Attys PROPOSAL13Stephen Shaw
1020Arvin B BriddickUnited Kingdom2026-07-30Feltz Printing Service RENEWAL46Xuxue Feng
1021Johnson M FigeroaFrance2026-07-11Morlong Associates PROPOSAL9Bernardo Dominic
1022Jennifer P WieserSpain2026-07-24Chapman, Ross E Esq QUALIFIED61Stephen Shaw
1023David Y KolmetzGermany2026-07-17Feiner Bros PROPOSAL87Xuxue Feng
1024Aditya R FerenczRussia2026-07-06Benton, John B Jr PROPOSAL69Onyama Limba
1025Maisha T TollnerJapan2026-07-25Dorl, James J Esq PROPOSAL95Onyama Limba
1026Murillo H OstroskyGermany2026-07-27Printing Dimensions QUALIFIED92Stephen Shaw
1027Tony P OstroskyArgentina2026-07-15Morlong Associates UNQUALIFIED5Stephen Shaw
1028Sinclair R AlbaresFrance2026-07-30Printing Dimensions RENEWAL44Asiya Javayant
1029Deepesh D MorascaArgentina2026-07-25Truhlar And Truhlar Attys QUALIFIED31Elwin Sharvill
1030Maria X RulapaughUnited Kingdom2026-07-06Chemel, James L Cpa UNQUALIFIED97Ioni Bowcher
1031Alejandro L InouyeJapan2026-07-10King, Christopher A Esq PROPOSAL68Elwin Sharvill
1032Morrow J VenereSpain2026-07-30Truhlar And Truhlar Attys RENEWAL95Stephen Shaw
1033Jefferson A CaldareraSpain2026-07-05Rangoni Of Florence QUALIFIED32Asiya Javayant
1034Kadeem B KuskoAustralia2026-07-15Feiner Bros PROPOSAL87Onyama Limba
1035Wickens R SlusarskiUnited Kingdom2026-07-22Chanay, Jeffrey A Esq RENEWAL6Xuxue Feng
1036Aika K RoysterItaly2026-07-01Truhlar And Truhlar Attys NEGOTIATION12Ivan Magalhaes
1037Claire N WieserAustralia2026-07-10Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1038Silvio O RimGermany2026-07-23Dorl, James J Esq NEGOTIATION97Stephen Shaw
1039Emily I KuskoRussia2026-07-27Commercial Press PROPOSAL14Stephen Shaw
1040Misaki O WieserCanada2026-07-28Morlong Associates UNQUALIFIED26Ioni Bowcher
1041Isabel U NestleSpain2026-07-07Morlong Associates PROPOSAL76Asiya Javayant
1042Isabel I CaudyUnited Kingdom2026-07-11Morlong Associates QUALIFIED82Elwin Sharvill
1043Emily F PoquetteCanada2026-07-02King, Christopher A Esq QUALIFIED82Elwin Sharvill
1044Aditya Z MaletFrance2026-07-18Rangoni Of Florence QUALIFIED36Asiya Javayant
1045Murillo G IturbideGermany2026-07-08Chemel, James L Cpa PROPOSAL28Stephen Shaw
1046Jeanfrancois F GarufiBrazil2026-07-04Dorl, James J Esq NEGOTIATION69Xuxue Feng
1047Julie N MaletCanada2026-07-05Printing Dimensions UNQUALIFIED87Ivan Magalhaes
1048Kadeem R AlbaresArgentina2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED8Elwin Sharvill
1049Leon Y ShinkoSpain2026-07-20Feiner Bros UNQUALIFIED40Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Darci E DarakjyCanadaXuxue Feng PROPOSAL
Misaki O WhobreySpainIoni Bowcher QUALIFIED
Sinclair P BriddickUnited KingdomStephen Shaw PROPOSAL
Aika F GauchoSpainIvan Magalhaes RENEWAL
Deepesh O RutaItalyStephen Shaw RENEWAL
Stacey S SaylorsItalyAsiya Javayant QUALIFIED
Greenwood Q OstroskyJapanStephen Shaw NEGOTIATION
Darci Y RoysterGermanyIoni Bowcher UNQUALIFIED
Johnson W SchemmerAustraliaElwin Sharvill PROPOSAL
Leja J MarrierSpainOnyama Limba RENEWAL
Chavez O KuskoAustraliaBernardo Dominic NEGOTIATION
Leon E SlusarskiItalyIoni Bowcher QUALIFIED
Maria G SergiCanadaElwin Sharvill NEGOTIATION
Nicolas V FollerRussiaAmy Elsner QUALIFIED
Jennifer R OldroydFranceAmy Elsner QUALIFIED
Tony Y KuskoJapanIvan Magalhaes PROPOSAL
Octavia L RutaAustraliaAmy Elsner NEGOTIATION
Nicolas F RulapaughIndiaIvan Magalhaes NEW
Julie F GillianCanadaAnna Fali NEGOTIATION
Jefferson L SergiGermanyIvan Magalhaes NEW
Smith J GlickIndiaIoni Bowcher RENEWAL
Kaitlin A MaletBrazilAnna Fali QUALIFIED
Aruna R RutaIndiaAnna Fali NEW
Silvio G BowleyFranceAsiya Javayant RENEWAL
Mayumi L NickaAustraliaIoni Bowcher NEGOTIATION
Wickens L MarrierRussiaXuxue Feng NEGOTIATION
Izzy H DarakjyFranceAmy Elsner NEW
Antonio D OldroydArgentinaAsiya Javayant UNQUALIFIED
Stacey F PerinArgentinaAmy Elsner NEGOTIATION
Jefferson G FlosiRussiaBernardo Dominic PROPOSAL
Smith K SchemmerCanadaBernardo Dominic NEGOTIATION
Smith P CaldareraCanadaXuxue Feng PROPOSAL
Isabel A MacleadBrazilElwin Sharvill NEGOTIATION
Mujtaba T OstroskyAustraliaAmy Elsner NEW
Johnson T IturbideFranceAnna Fali NEGOTIATION
Adams E FerenczFranceStephen Shaw NEW
Rodrigues J KuskoUnited KingdomOnyama Limba RENEWAL
Francesco M GlickFranceAsiya Javayant QUALIFIED
Murillo H PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Sinclair Y FlosiAustraliaAsiya Javayant UNQUALIFIED
Aika J MarrierGermanyStephen Shaw PROPOSAL
Jeanfrancois L CaldareraBrazilXuxue Feng PROPOSAL
Sinclair L MaletGermanyElwin Sharvill UNQUALIFIED
Tony A SaylorsCanadaXuxue Feng RENEWAL
Jefferson R RimGermanyElwin Sharvill PROPOSAL
Alejandro A SaylorsAustraliaAmy Elsner UNQUALIFIED
Faith R SchemmerArgentinaStephen Shaw NEGOTIATION
Greenwood F InouyeIndiaAsiya Javayant NEW
Leon A FlosiArgentinaBernardo Dominic PROPOSAL
Juan W MarrierSpainStephen Shaw NEW
Frozen Columns
Name
Mayumi M Caldarera
Johnson S Whobrey
Murillo Y Figeroa
Maisha T Chui
Kaitlin M Albares
Jefferson J Doe
Jeanfrancois R Butt
Ashley D Stockham
Ivar O Stockham
Emily U Vocelka
Tony Z Maclead
Jefferson G Rim
Nicolas G Butt
Leon O Glick
Stacey P Waycott
Aika E Albares
Julie T Briddick
Wickens F Paprocki
Salvatore S Doe
Jeanfrancois L Doe
Adams S Inouye
Leja A Stockham
Chavez M Paprocki
Johnson D Foller
Greenwood W Glick
Francesco K Garufi
Leon V Gaucho
Rodrigues V Bolognia
Smith C Figeroa
Antonio S Rulapaugh
Aditya U Marrier
Francesco J Poquette
Tony Y Figeroa
Costa C Paprocki
Antonio V Shinko
Leja N Marrier
Leon P Malet
Wickens X Perin
Silvio T Figeroa
Maisha Y Perin
Jones T Caudy
Jones T Iturbide
Juan M Ferencz
Misaki Q Chui
Deepesh H Malet
Munro U Morasca
Leja F Oldroyd
Morrow O Campain
Aika Y Waycott
Salvatore H Marrier
IdCountryDate
1000Japan2026-07-08
1001Germany2026-07-29
1002Spain2026-07-04
1003Canada2026-07-04
1004Russia2026-07-08
1005India2026-07-03
1006Spain2026-07-10
1007Germany2026-07-20
1008Spain2026-07-16
1009Germany2026-07-03
1010Argentina2026-07-21
1011Brazil2026-07-10
1012Spain2026-07-03
1013Japan2026-07-26
1014France2026-07-30
1015Argentina2026-07-14
1016France2026-07-26
1017Brazil2026-07-11
1018Brazil2026-07-09
1019Spain2026-07-09
1020United Kingdom2026-07-09
1021France2026-07-10
1022Italy2026-07-18
1023Japan2026-07-15
1024Japan2026-07-19
1025Brazil2026-07-03
1026Russia2026-07-21
1027Germany2026-07-27
1028Italy2026-07-12
1029Japan2026-07-17
1030Canada2026-07-21
1031Brazil2026-07-17
1032United Kingdom2026-07-19
1033France2026-07-24
1034Brazil2026-07-17
1035Argentina2026-07-17
1036India2026-07-03
1037Brazil2026-07-15
1038India2026-07-28
1039Australia2026-07-24
1040Japan2026-07-08
1041United Kingdom2026-07-30
1042Spain2026-07-17
1043Italy2026-07-30
1044United Kingdom2026-07-17
1045Australia2026-07-13
1046Spain2026-07-17
1047Argentina2026-07-11
1048Canada2026-07-14
1049France2026-07-29

On-Demand Data

NameIdCountryDate
Nicolas G Foller1000India2026-07-29
Faith Y Amigon1001Spain2026-07-07
Tony I Kusko1002Argentina2026-07-04
Emily S Shinko1003India2026-07-02
Costa J Flosi1004Argentina2026-07-27
Maria W Inouye1005France2026-07-13
Alejandro Y Inouye1006Australia2026-07-16
Murillo F Gaucho1007Spain2026-07-15
Jones H Bowley1008Russia2026-07-28
Aditya Z Darakjy1009Argentina2026-07-04
Ivar Q Morasca1010France2026-07-01
Francesco C Dilliard1011Russia2026-07-25
Francesco Z Foller1012Japan2026-07-08
Wickens H Schemmer1013Brazil2026-07-17
Leon O Inouye1014Germany2026-07-21
Jones D Malet1015Germany2026-07-20
Munro I Sergi1016Russia2026-07-29
Kadeem Y Venere1017Germany2026-07-29
Maisha G Gillian1018Japan2026-07-27
Claire M Stockham1019Australia2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie K SlusarskiJapanAmy Elsner PROPOSAL
Sinclair E DoeBrazilAsiya Javayant QUALIFIED
Wickens Z MaletFranceAsiya Javayant UNQUALIFIED
Munro Y BologniaArgentinaIvan Magalhaes RENEWAL
Mayumi E WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Ashley T ChuiAustraliaXuxue Feng NEGOTIATION
David W StockhamGermanyAsiya Javayant QUALIFIED
Rodrigues I ShinkoSpainAmy Elsner RENEWAL
Chavez C WhobreyIndiaAmy Elsner PROPOSAL
James U MorascaCanadaAsiya Javayant NEGOTIATION
Deepesh T InouyeArgentinaStephen Shaw NEW
Antonio Q GauchoJapanBernardo Dominic PROPOSAL
Aika E SlusarskiGermanyElwin Sharvill RENEWAL
Leja V MorascaBrazilElwin Sharvill RENEWAL
Deepesh I GauchoCanadaOnyama Limba NEGOTIATION
Rodrigues X BologniaGermanyBernardo Dominic NEW
James S RimItalyIoni Bowcher PROPOSAL
Aditya F PaprockiItalyAmy Elsner NEW
Julie R VocelkaRussiaIoni Bowcher PROPOSAL
Stacey W IturbideAustraliaOnyama Limba NEGOTIATION
Maria E BowleySpainElwin Sharvill RENEWAL
Octavia L PoquetteCanadaElwin Sharvill UNQUALIFIED
Jones Q NestleJapanAnna Fali NEGOTIATION
Sinclair P GarufiItalyBernardo Dominic NEGOTIATION
Nicolas Z NickaFranceIvan Magalhaes UNQUALIFIED
Leon Q FigeroaIndiaElwin Sharvill QUALIFIED
David A InouyeJapanOnyama Limba PROPOSAL
Aika G PaprockiRussiaIvan Magalhaes NEW
Cody T CaudyArgentinaIoni Bowcher RENEWAL
Octavia L FerenczItalyBernardo Dominic PROPOSAL
Greenwood L WieserUnited KingdomElwin Sharvill PROPOSAL
Ivar G FerenczAustraliaIvan Magalhaes RENEWAL
David E CampainArgentinaElwin Sharvill RENEWAL
Greenwood J RoysterFranceIvan Magalhaes RENEWAL
David R DarakjySpainAsiya Javayant QUALIFIED
Izzy I CaudySpainBernardo Dominic UNQUALIFIED
Adams B VenereItalyIoni Bowcher NEW
Kadeem Q BowleyRussiaStephen Shaw PROPOSAL
Adams F CampainIndiaIvan Magalhaes PROPOSAL
Claire O IturbideAustraliaIoni Bowcher NEW

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