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
Faith G MarrierSpainIvan Magalhaes NEW
Leon O IturbideBrazilAnna Fali NEGOTIATION
Misaki V WhobreyIndiaXuxue Feng QUALIFIED
Claire P TollnerUnited KingdomAsiya Javayant PROPOSAL
Deepesh K ButtArgentinaIoni Bowcher QUALIFIED
Claire I OstroskyRussiaXuxue Feng UNQUALIFIED
Smith S WieserGermanyBernardo Dominic NEW
Johnson M RulapaughCanadaStephen Shaw NEGOTIATION
Leja W RoysterArgentinaIvan Magalhaes QUALIFIED
Ivar M KolmetzArgentinaOnyama Limba PROPOSAL
Chavez L RimBrazilIvan Magalhaes RENEWAL
Chavez U ShinkoSpainXuxue Feng QUALIFIED
Aditya Z TollnerGermanyAsiya Javayant NEW
Morrow B RutaSpainBernardo Dominic PROPOSAL
Claire G RutaCanadaOnyama Limba PROPOSAL
Tony Z CaudyRussiaStephen Shaw RENEWAL
Juan H GarufiArgentinaIoni Bowcher RENEWAL
David S BologniaBrazilStephen Shaw QUALIFIED
Munro Z BriddickBrazilIoni Bowcher NEW
Jeanfrancois Y RutaArgentinaAnna Fali NEGOTIATION
Jones R NestleUnited KingdomBernardo Dominic RENEWAL
Aruna A DarakjyJapanOnyama Limba UNQUALIFIED
Antonio J ChuiCanadaElwin Sharvill QUALIFIED
Munro Z DilliardArgentinaAmy Elsner NEW
Kadeem C DarakjyArgentinaAnna Fali QUALIFIED
Clifford F SchemmerIndiaBernardo Dominic PROPOSAL
Claire Q RoysterBrazilIvan Magalhaes RENEWAL
Faith T SchemmerFranceAmy Elsner RENEWAL
Morrow C GillianJapanAnna Fali UNQUALIFIED
Costa O RoysterItalyStephen Shaw UNQUALIFIED
James U DoeItalyXuxue Feng RENEWAL
Jefferson D MorascaFranceAnna Fali NEGOTIATION
Munro J NestleArgentinaAsiya Javayant QUALIFIED
Mujtaba C GillianArgentinaAmy Elsner NEW
Rodrigues P RimSpainIoni Bowcher NEW
Claire D RutaFranceIvan Magalhaes PROPOSAL
Chavez F TollnerIndiaAsiya Javayant UNQUALIFIED
Aruna U MarrierBrazilXuxue Feng UNQUALIFIED
Isabel L VocelkaBrazilElwin Sharvill PROPOSAL
James P ButtRussiaElwin Sharvill NEGOTIATION
Jeanfrancois S FlosiSpainStephen Shaw RENEWAL
Darci O ButtJapanElwin Sharvill UNQUALIFIED
Stacey Q FlosiRussiaXuxue Feng NEGOTIATION
Aruna K BologniaFranceIoni Bowcher NEW
Silvio Y RulapaughFranceAnna Fali QUALIFIED
Tony D CaudyCanadaXuxue Feng PROPOSAL
Greenwood R BowleyFranceStephen Shaw PROPOSAL
Maisha Y StockhamUnited KingdomBernardo Dominic NEGOTIATION
Octavia V PaprockiCanadaIvan Magalhaes RENEWAL
Claire F SlusarskiGermanyIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Darci G SlusarskiBrazilAsiya Javayant UNQUALIFIED
Leja P MaletFranceAnna Fali NEGOTIATION
Jeanfrancois U GarufiAustraliaBernardo Dominic RENEWAL
Leja X InouyeArgentinaXuxue Feng UNQUALIFIED
Costa C RoysterFranceElwin Sharvill PROPOSAL
Alejandro J AmigonGermanyAsiya Javayant NEW
Arvin C StockhamAustraliaXuxue Feng NEW
Clifford W DilliardAustraliaOnyama Limba UNQUALIFIED
Tony G AlbaresAustraliaOnyama Limba NEGOTIATION
Kadeem B WieserJapanAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem L GarufiJapan2026-06-20Dorl, James J Esq QUALIFIED82Anna Fali
1001Jefferson A StockhamRussia2026-06-10Buckley Miller Wright QUALIFIED64Ioni Bowcher
1002Octavia Y TollnerArgentina2026-06-08Rousseaux, Michael Esq RENEWAL7Onyama Limba
1003Emily O BowleyBrazil2026-06-21Buckley Miller Wright NEW22Elwin Sharvill
1004Kaitlin A RoysterBrazil2026-07-01Chapman, Ross E Esq NEW41Xuxue Feng
1005Alejandro U AmigonBrazil2026-06-13Chemel, James L Cpa UNQUALIFIED51Stephen Shaw
1006Aruna N BologniaRussia2026-06-28Morlong Associates NEGOTIATION36Ivan Magalhaes
1007Claire R PaprockiFrance2026-06-26Rangoni Of Florence QUALIFIED71Ioni Bowcher
1008Salvatore R IturbideBrazil2026-06-23Dorl, James J Esq NEW71Stephen Shaw
1009Greenwood Y AlbaresGermany2026-06-28Benton, John B Jr UNQUALIFIED98Xuxue Feng
1010Aditya R BologniaCanada2026-06-17King, Christopher A Esq NEW98Stephen Shaw
1011Aika K NestleUnited Kingdom2026-06-29Feltz Printing Service RENEWAL52Amy Elsner
1012Maisha Z StensethBrazil2026-06-12Rangoni Of Florence PROPOSAL80Xuxue Feng
1013Chavez U MaletGermany2026-06-25Truhlar And Truhlar Attys QUALIFIED14Asiya Javayant
1014Jennifer S PoquetteFrance2026-06-20Chanay, Jeffrey A Esq NEGOTIATION90Ivan Magalhaes
1015Smith Y CaldareraCanada2026-06-18Benton, John B Jr NEGOTIATION60Asiya Javayant
1016Aika B MarrierIndia2026-06-21Chemel, James L Cpa UNQUALIFIED65Elwin Sharvill
1017Deepesh J RulapaughJapan2026-06-22Buckley Miller Wright NEGOTIATION96Ioni Bowcher
1018Smith B StockhamSpain2026-06-15Chemel, James L Cpa PROPOSAL54Anna Fali
1019Ivar C NickaGermany2026-06-11Chapman, Ross E Esq QUALIFIED60Xuxue Feng
1020Cody V GauchoCanada2026-06-17Rousseaux, Michael Esq UNQUALIFIED38Xuxue Feng
1021Alejandro F RimIndia2026-06-14Dorl, James J Esq PROPOSAL88Xuxue Feng
1022Mujtaba R PerinAustralia2026-06-28Morlong Associates NEW70Ioni Bowcher
1023Sinclair L PoquetteArgentina2026-06-11Chanay, Jeffrey A Esq NEW57Ivan Magalhaes
1024Darci L FerenczUnited Kingdom2026-06-27Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1025Nicolas Y WieserItaly2026-06-23King, Christopher A Esq NEW95Ioni Bowcher
1026Costa Y AmigonArgentina2026-06-18Truhlar And Truhlar Attys PROPOSAL7Bernardo Dominic
1027Octavia V OstroskySpain2026-06-16Buckley Miller Wright QUALIFIED2Bernardo Dominic
1028Kadeem J FollerRussia2026-06-14Morlong Associates NEGOTIATION19Anna Fali
1029Munro N InouyeJapan2026-06-09Commercial Press NEW91Asiya Javayant
1030Octavia I MaletFrance2026-06-28Morlong Associates PROPOSAL22Elwin Sharvill
1031Clifford A BologniaJapan2026-06-21Commercial Press QUALIFIED19Xuxue Feng
1032Costa A BologniaFrance2026-06-26Chemel, James L Cpa UNQUALIFIED77Anna Fali
1033Jones N RimGermany2026-07-04Rousseaux, Michael Esq UNQUALIFIED31Anna Fali
1034Stacey V GlickJapan2026-06-11Truhlar And Truhlar Attys NEW42Anna Fali
1035Faith M DilliardRussia2026-06-15Buckley Miller Wright PROPOSAL80Ivan Magalhaes
1036Silvio J RoysterCanada2026-06-07Chanay, Jeffrey A Esq RENEWAL65Asiya Javayant
1037Tony M PoquetteRussia2026-06-19Buckley Miller Wright QUALIFIED31Amy Elsner
1038Juan H IturbideBrazil2026-06-23Truhlar And Truhlar Attys UNQUALIFIED68Amy Elsner
1039Deepesh X FlosiBrazil2026-06-07Feltz Printing Service UNQUALIFIED74Xuxue Feng
1040Jennifer C MaletIndia2026-06-24King, Christopher A Esq PROPOSAL22Xuxue Feng
1041Deepesh W AlbaresUnited Kingdom2026-06-26Rousseaux, Michael Esq RENEWAL93Amy Elsner
1042Aika A DoeCanada2026-06-20Commercial Press NEGOTIATION60Anna Fali
1043Julie M ShinkoRussia2026-06-13Commercial Press NEW72Ioni Bowcher
1044Cody Z MaletArgentina2026-06-12Commercial Press PROPOSAL26Elwin Sharvill
1045Nicolas X GauchoAustralia2026-06-28Feltz Printing Service PROPOSAL31Elwin Sharvill
1046Tony P GauchoGermany2026-06-14Chanay, Jeffrey A Esq NEW45Ioni Bowcher
1047Kadeem Q WaycottUnited Kingdom2026-06-24Dorl, James J Esq NEW78Ivan Magalhaes
1048Leja R SaylorsArgentina2026-06-29Truhlar And Truhlar Attys QUALIFIED11Onyama Limba
1049Isabel G VenereRussia2026-06-27Dorl, James J Esq NEGOTIATION85Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ashley M MarrierFranceXuxue Feng QUALIFIED
Kadeem S RulapaughSpainBernardo Dominic QUALIFIED
Jones N WieserFranceAmy Elsner PROPOSAL
Silvio W PaprockiRussiaXuxue Feng PROPOSAL
Chavez Q MaletBrazilElwin Sharvill UNQUALIFIED
Cody A RoysterRussiaIoni Bowcher RENEWAL
Jeanfrancois U CaudySpainXuxue Feng NEGOTIATION
Ashley Z IturbideArgentinaAsiya Javayant QUALIFIED
Adams U BologniaJapanStephen Shaw NEGOTIATION
Ivar P GillianCanadaOnyama Limba NEW
Chavez W BriddickRussiaAmy Elsner QUALIFIED
Maisha G ShinkoRussiaAmy Elsner RENEWAL
Aditya X BowleyRussiaIvan Magalhaes PROPOSAL
Faith J GarufiBrazilIoni Bowcher PROPOSAL
Smith Q SchemmerCanadaAsiya Javayant NEGOTIATION
James V NestleRussiaElwin Sharvill RENEWAL
Ricardo X IturbideFranceXuxue Feng RENEWAL
Maisha Q MacleadRussiaAnna Fali PROPOSAL
Smith C OstroskyArgentinaOnyama Limba NEW
Costa D WaycottFranceOnyama Limba PROPOSAL
Aika C FerenczJapanAsiya Javayant UNQUALIFIED
Octavia X DoeRussiaStephen Shaw PROPOSAL
Mayumi P RutaGermanyAmy Elsner QUALIFIED
Isabel M ChuiFranceAnna Fali RENEWAL
Costa Y MacleadSpainIvan Magalhaes NEW
Ashley E RutaItalyIoni Bowcher NEW
Antonio S GarufiSpainIoni Bowcher UNQUALIFIED
Mujtaba S WieserIndiaBernardo Dominic UNQUALIFIED
Ricardo H GillianFranceIoni Bowcher PROPOSAL
Aditya Z MaletCanadaBernardo Dominic NEGOTIATION
Izzy Z WieserArgentinaStephen Shaw NEGOTIATION
James O BologniaArgentinaAmy Elsner NEW
Johnson F StockhamSpainIoni Bowcher NEW
Sinclair D DoeArgentinaIoni Bowcher QUALIFIED
Claire E FollerUnited KingdomStephen Shaw QUALIFIED
Cody H RoysterUnited KingdomXuxue Feng NEGOTIATION
Wickens V MaletSpainBernardo Dominic PROPOSAL
James D BologniaIndiaIvan Magalhaes NEGOTIATION
Misaki Z StockhamCanadaAsiya Javayant RENEWAL
Jeanfrancois J FigeroaRussiaElwin Sharvill RENEWAL
Wickens H TollnerFranceIvan Magalhaes RENEWAL
Jefferson G RimIndiaBernardo Dominic NEGOTIATION
Maria W FigeroaIndiaOnyama Limba RENEWAL
Ashley A NestleCanadaAnna Fali QUALIFIED
Nicolas L DoeCanadaAmy Elsner QUALIFIED
Faith P MaletCanadaIvan Magalhaes QUALIFIED
Izzy X MacleadBrazilElwin Sharvill NEW
Antonio M TollnerItalyIvan Magalhaes NEGOTIATION
Kaitlin I GarufiAustraliaIvan Magalhaes QUALIFIED
Misaki V RutaIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Cody B Caldarera
Ashley G Inouye
Ashley Z Chui
Kadeem J Paprocki
Silvio F Waycott
Octavia J Oldroyd
Costa Y Inouye
Stacey J Ruta
Maria L Saylors
David P Oldroyd
Clifford M Rim
Misaki J Royster
Greenwood C Sergi
Wickens P Venere
Ivar Q Poquette
Wickens K Bolognia
Chavez E Butt
Ashley J Glick
James W Sergi
Octavia H Glick
Darci L Doe
Chavez S Venere
Nicolas K Stockham
Clifford N Oldroyd
David H Vocelka
Cody D Whobrey
Smith E Doe
Kaitlin G Malet
Aruna L Rim
Octavia Q Maclead
Smith U Marrier
Leon H Flosi
Cody F Nestle
Cody F Vocelka
Kaitlin H Saylors
Sinclair Q Glick
Alejandro N Gaucho
Morrow L Paprocki
Ricardo R Dilliard
Rodrigues L Saylors
Silvio H Darakjy
Rodrigues U Rim
Maria E Inouye
Sinclair D Saylors
Faith U Bolognia
Jennifer M Garufi
Izzy L Chui
Stacey Q Inouye
Julie E Shinko
Ivar V Vocelka
IdCountryDate
1000Germany2026-06-06
1001Canada2026-06-20
1002Canada2026-06-22
1003Italy2026-06-13
1004India2026-07-04
1005Argentina2026-07-02
1006Argentina2026-06-26
1007Russia2026-07-01
1008Japan2026-06-13
1009Argentina2026-06-22
1010Spain2026-07-01
1011Japan2026-06-15
1012India2026-06-18
1013Japan2026-06-07
1014Japan2026-06-13
1015Japan2026-06-18
1016Australia2026-07-01
1017United Kingdom2026-06-22
1018Brazil2026-07-01
1019Argentina2026-06-07
1020France2026-06-09
1021Russia2026-06-25
1022Spain2026-06-27
1023Spain2026-06-06
1024India2026-06-08
1025United Kingdom2026-06-20
1026Australia2026-06-16
1027Australia2026-06-24
1028Australia2026-07-04
1029Brazil2026-06-05
1030United Kingdom2026-06-26
1031India2026-07-04
1032Japan2026-06-06
1033United Kingdom2026-07-01
1034Australia2026-06-23
1035Spain2026-06-20
1036United Kingdom2026-06-19
1037Japan2026-06-22
1038Canada2026-06-26
1039Japan2026-06-18
1040France2026-06-06
1041Australia2026-06-07
1042Japan2026-06-18
1043Japan2026-06-21
1044Russia2026-06-10
1045France2026-06-23
1046Argentina2026-06-16
1047Russia2026-06-08
1048Italy2026-06-23
1049Japan2026-06-23

On-Demand Data

NameIdCountryDate
Salvatore H Amigon1000Argentina2026-06-11
Leon A Albares1001Russia2026-06-13
Julie E Inouye1002France2026-06-07
Leon V Kusko1003Russia2026-06-24
Wickens S Campain1004Japan2026-06-21
Antonio B Darakjy1005United Kingdom2026-06-16
Jeanfrancois E Morasca1006Germany2026-06-24
Claire X Morasca1007Japan2026-06-08
Murillo O Venere1008Germany2026-06-27
Aika K Gaucho1009Spain2026-06-05
Jones L Marrier1010United Kingdom2026-06-19
Emily E Saylors1011Canada2026-07-01
Mayumi C Nestle1012Argentina2026-06-23
Isabel F Inouye1013France2026-07-01
Wickens E Glick1014Germany2026-06-05
Emily U Perin1015France2026-07-04
Jefferson Y Oldroyd1016Russia2026-06-07
Morrow L Maclead1017Canada2026-06-20
Leja B Stockham1018Brazil2026-06-29
Ashley K Venere1019Brazil2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony M WhobreyAustraliaIoni Bowcher NEW
Aditya F TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Nicolas E BologniaArgentinaIvan Magalhaes NEW
James E GlickArgentinaAnna Fali UNQUALIFIED
Alejandro K NickaAustraliaOnyama Limba NEGOTIATION
Kaitlin D WaycottUnited KingdomAnna Fali RENEWAL
Francesco D VocelkaItalyXuxue Feng PROPOSAL
David B VenereUnited KingdomOnyama Limba QUALIFIED
Cody O RutaUnited KingdomIvan Magalhaes QUALIFIED
Claire I BowleyFranceAnna Fali QUALIFIED
Stacey X PoquetteItalyXuxue Feng PROPOSAL
Alejandro O RutaArgentinaStephen Shaw NEW
Maria X NestleUnited KingdomIvan Magalhaes QUALIFIED
Misaki W ButtFranceIoni Bowcher PROPOSAL
Ivar T RulapaughRussiaBernardo Dominic NEW
Ricardo Y PoquetteIndiaAmy Elsner PROPOSAL
Costa P OldroydAustraliaElwin Sharvill PROPOSAL
Claire M DarakjyJapanXuxue Feng RENEWAL
David P BowleyBrazilIvan Magalhaes QUALIFIED
Aruna B SlusarskiFranceIvan Magalhaes UNQUALIFIED
Claire H BologniaArgentinaIoni Bowcher QUALIFIED
Arvin S OstroskyJapanAsiya Javayant RENEWAL
Juan U ShinkoCanadaAsiya Javayant RENEWAL
Costa G GauchoUnited KingdomIvan Magalhaes PROPOSAL
Stacey T WhobreyRussiaBernardo Dominic RENEWAL
Octavia T AlbaresArgentinaAmy Elsner PROPOSAL
Francesco P MaletCanadaAnna Fali UNQUALIFIED
Ricardo Q OstroskyCanadaAsiya Javayant PROPOSAL
Izzy H CampainAustraliaOnyama Limba NEGOTIATION
Mayumi Y BriddickBrazilAnna Fali PROPOSAL
Munro U ShinkoRussiaXuxue Feng NEGOTIATION
Aika R FigeroaItalyOnyama Limba RENEWAL
Munro V GauchoGermanyAsiya Javayant NEW
Chavez A CampainRussiaXuxue Feng NEW
Octavia Z SlusarskiBrazilIoni Bowcher RENEWAL
Alejandro U PerinGermanyIoni Bowcher QUALIFIED
Arvin B FollerFranceAnna Fali UNQUALIFIED
Ricardo O BriddickGermanyBernardo Dominic QUALIFIED
Jefferson H DilliardCanadaAmy Elsner NEGOTIATION
Nicolas U FollerCanadaAsiya Javayant RENEWAL

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