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
Aika T NestleSpainAmy Elsner NEW
Rodrigues X StockhamArgentinaAmy Elsner UNQUALIFIED
Maisha O PerinCanadaBernardo Dominic PROPOSAL
Wickens G TollnerArgentinaAmy Elsner NEGOTIATION
Stacey O AlbaresGermanyStephen Shaw UNQUALIFIED
Nicolas F RulapaughJapanAsiya Javayant QUALIFIED
Adams K RulapaughBrazilAsiya Javayant PROPOSAL
Mujtaba Q PaprockiFranceStephen Shaw PROPOSAL
Jennifer F MacleadAustraliaOnyama Limba PROPOSAL
Tony H MaletItalyXuxue Feng PROPOSAL
Mayumi B ShinkoArgentinaAnna Fali NEW
James C SchemmerRussiaStephen Shaw PROPOSAL
Faith D IturbideArgentinaXuxue Feng UNQUALIFIED
Leon O SergiJapanAnna Fali NEW
Costa R NickaArgentinaBernardo Dominic QUALIFIED
Chavez P NestleIndiaIvan Magalhaes PROPOSAL
Stacey T AlbaresGermanyAnna Fali NEGOTIATION
Francesco K StockhamBrazilAmy Elsner PROPOSAL
Julie S FlosiAustraliaAmy Elsner NEW
Aruna W OldroydArgentinaAmy Elsner NEW
Ricardo Y TollnerGermanyStephen Shaw UNQUALIFIED
Aika F RimIndiaIvan Magalhaes PROPOSAL
Clifford I ChuiSpainBernardo Dominic RENEWAL
Leon Y RutaJapanBernardo Dominic PROPOSAL
Sinclair G FollerUnited KingdomBernardo Dominic RENEWAL
Cody I WaycottItalyBernardo Dominic NEW
Jeanfrancois T AlbaresJapanBernardo Dominic RENEWAL
Nicolas H WaycottBrazilBernardo Dominic NEGOTIATION
Arvin V GarufiSpainAmy Elsner UNQUALIFIED
James F OldroydGermanyBernardo Dominic NEW
Octavia U SlusarskiCanadaXuxue Feng UNQUALIFIED
Aditya X ShinkoArgentinaAmy Elsner NEGOTIATION
Murillo H GillianFranceAsiya Javayant UNQUALIFIED
Kadeem S FigeroaJapanIvan Magalhaes UNQUALIFIED
Octavia O FerenczRussiaAnna Fali NEW
Isabel X InouyeIndiaXuxue Feng PROPOSAL
Salvatore Y ButtJapanAnna Fali NEGOTIATION
Kaitlin Q RulapaughItalyStephen Shaw UNQUALIFIED
Aika Z KuskoBrazilIoni Bowcher NEGOTIATION
Kaitlin W ChuiIndiaIvan Magalhaes RENEWAL
Aditya O CaldareraIndiaIvan Magalhaes NEW
Izzy E InouyeIndiaBernardo Dominic NEW
Aruna O DilliardBrazilIoni Bowcher NEW
Juan U SlusarskiBrazilAnna Fali QUALIFIED
Jefferson E GauchoRussiaOnyama Limba NEW
Sinclair C SlusarskiArgentinaOnyama Limba UNQUALIFIED
Greenwood R SlusarskiRussiaXuxue Feng NEGOTIATION
Darci O KolmetzBrazilIoni Bowcher UNQUALIFIED
Adams M MacleadUnited KingdomIoni Bowcher PROPOSAL
Morrow K NickaItalyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel G MaletBrazilXuxue Feng NEGOTIATION
Salvatore K RulapaughRussiaAnna Fali NEW
Jones K GarufiArgentinaBernardo Dominic NEGOTIATION
Mayumi Y BriddickRussiaAmy Elsner RENEWAL
Greenwood U SaylorsRussiaIoni Bowcher NEGOTIATION
Jeanfrancois C ButtRussiaAnna Fali PROPOSAL
Darci F OstroskyJapanIvan Magalhaes RENEWAL
Tony L StockhamRussiaAsiya Javayant UNQUALIFIED
Darci L AlbaresAustraliaStephen Shaw RENEWAL
Rodrigues W NickaFranceAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya W ShinkoIndia2025-04-29Morlong Associates PROPOSAL7Onyama Limba
1001Ricardo I IturbideBrazil2025-04-27Feltz Printing Service NEGOTIATION99Amy Elsner
1002Octavia M CaldareraItaly2025-04-09Buckley Miller Wright UNQUALIFIED18Ioni Bowcher
1003Ricardo M CampainAustralia2025-04-14Chanay, Jeffrey A Esq NEW76Xuxue Feng
1004Kaitlin I SlusarskiJapan2025-04-11Commercial Press NEGOTIATION77Ivan Magalhaes
1005Jones I SergiBrazil2025-04-03Commercial Press NEW49Onyama Limba
1006Leon F ButtAustralia2025-04-03Dorl, James J Esq NEW24Asiya Javayant
1007Deepesh D DarakjyGermany2025-04-26Feiner Bros PROPOSAL94Ivan Magalhaes
1008Kadeem K WieserAustralia2025-04-02Rangoni Of Florence NEGOTIATION52Bernardo Dominic
1009Maria I DilliardUnited Kingdom2025-04-08King, Christopher A Esq PROPOSAL19Amy Elsner
1010Octavia Y OstroskyRussia2025-04-06Feiner Bros UNQUALIFIED2Xuxue Feng
1011Leja H VenereBrazil2025-04-07Chanay, Jeffrey A Esq NEW0Amy Elsner
1012Arvin I NickaAustralia2025-04-01Chanay, Jeffrey A Esq NEGOTIATION86Onyama Limba
1013Mayumi Y CaldareraUnited Kingdom2025-04-20Rousseaux, Michael Esq QUALIFIED43Bernardo Dominic
1014Octavia U FollerAustralia2025-04-20Morlong Associates NEGOTIATION24Elwin Sharvill
1015Leon I CaudyCanada2025-03-31Morlong Associates PROPOSAL51Stephen Shaw
1016Munro G VenereAustralia2025-04-05Rangoni Of Florence RENEWAL15Elwin Sharvill
1017Wickens L VocelkaAustralia2025-04-29Chemel, James L Cpa NEGOTIATION7Xuxue Feng
1018Julie L GlickItaly2025-04-17Buckley Miller Wright NEW47Asiya Javayant
1019Kadeem E MarrierRussia2025-04-13Buckley Miller Wright NEW9Stephen Shaw
1020Murillo V InouyeArgentina2025-04-15Benton, John B Jr PROPOSAL76Xuxue Feng
1021Faith V SaylorsFrance2025-04-10Feltz Printing Service PROPOSAL47Asiya Javayant
1022Stacey Y DilliardUnited Kingdom2025-04-03Rousseaux, Michael Esq QUALIFIED42Onyama Limba
1023Arvin O FlosiGermany2025-04-23Rousseaux, Michael Esq RENEWAL11Onyama Limba
1024Claire B GauchoUnited Kingdom2025-04-03Printing Dimensions PROPOSAL94Amy Elsner
1025Morrow G SchemmerFrance2025-04-02Truhlar And Truhlar Attys PROPOSAL37Ivan Magalhaes
1026Aika C CaudyItaly2025-04-01Benton, John B Jr UNQUALIFIED71Stephen Shaw
1027Wickens R GauchoRussia2025-04-04Feltz Printing Service QUALIFIED84Ioni Bowcher
1028Munro T OldroydArgentina2025-04-21Buckley Miller Wright UNQUALIFIED41Stephen Shaw
1029Jennifer P VocelkaUnited Kingdom2025-04-29Buckley Miller Wright NEW71Xuxue Feng
1030Claire A SergiJapan2025-04-24Rousseaux, Michael Esq QUALIFIED24Ioni Bowcher
1031Smith M GauchoBrazil2025-04-19Chapman, Ross E Esq QUALIFIED34Ivan Magalhaes
1032Kadeem V WaycottBrazil2025-04-05Truhlar And Truhlar Attys NEW52Ioni Bowcher
1033Nicolas H FollerBrazil2025-04-26Rousseaux, Michael Esq PROPOSAL38Asiya Javayant
1034Cody V MacleadFrance2025-04-13Dorl, James J Esq QUALIFIED70Amy Elsner
1035Ashley W KolmetzItaly2025-04-21Rousseaux, Michael Esq UNQUALIFIED67Stephen Shaw
1036Kadeem A FollerGermany2025-04-10Chanay, Jeffrey A Esq UNQUALIFIED0Amy Elsner
1037Kaitlin Z StockhamItaly2025-04-07Chapman, Ross E Esq UNQUALIFIED66Ivan Magalhaes
1038Alejandro C DilliardRussia2025-04-22Chapman, Ross E Esq PROPOSAL9Amy Elsner
1039Jennifer A VocelkaItaly2025-04-12Rangoni Of Florence QUALIFIED31Ivan Magalhaes
1040Ashley D SlusarskiSpain2025-04-04Printing Dimensions NEW25Ivan Magalhaes
1041Sinclair R GauchoFrance2025-04-13Buckley Miller Wright PROPOSAL77Ioni Bowcher
1042Rodrigues K MaletRussia2025-04-02Feiner Bros PROPOSAL11Ioni Bowcher
1043Arvin O SlusarskiFrance2025-04-26Commercial Press QUALIFIED34Anna Fali
1044David E AmigonUnited Kingdom2025-04-15Dorl, James J Esq PROPOSAL71Anna Fali
1045Emily W DarakjyBrazil2025-04-11Truhlar And Truhlar Attys RENEWAL66Stephen Shaw
1046Aditya H MaletBrazil2025-04-08King, Christopher A Esq UNQUALIFIED38Onyama Limba
1047Aditya U RimGermany2025-04-06Printing Dimensions NEGOTIATION46Elwin Sharvill
1048Leon D SergiAustralia2025-04-08Feiner Bros QUALIFIED5Ioni Bowcher
1049Cody R BologniaBrazil2025-04-15Buckley Miller Wright RENEWAL9Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Juan Y RimFranceStephen Shaw UNQUALIFIED
Tony J MarrierRussiaElwin Sharvill PROPOSAL
Mujtaba S BriddickItalyAnna Fali PROPOSAL
Francesco I VocelkaIndiaAnna Fali RENEWAL
Mujtaba N ShinkoArgentinaAnna Fali NEGOTIATION
Maria Z TollnerIndiaAmy Elsner UNQUALIFIED
Sinclair U GauchoCanadaAnna Fali UNQUALIFIED
Jones Y NickaArgentinaOnyama Limba RENEWAL
James Z IturbideRussiaAsiya Javayant RENEWAL
Leja K IturbideFranceIvan Magalhaes NEGOTIATION
Jeanfrancois A KolmetzJapanAnna Fali QUALIFIED
Juan F FerenczUnited KingdomElwin Sharvill NEGOTIATION
Faith Z AmigonJapanXuxue Feng NEGOTIATION
Emily H TollnerCanadaIoni Bowcher PROPOSAL
Ashley I CaudyArgentinaElwin Sharvill UNQUALIFIED
Alejandro V PoquetteBrazilStephen Shaw UNQUALIFIED
Emily I PerinUnited KingdomBernardo Dominic QUALIFIED
Kaitlin F TollnerAustraliaAsiya Javayant NEGOTIATION
Kadeem T IturbideArgentinaAsiya Javayant QUALIFIED
Wickens I MorascaBrazilIvan Magalhaes RENEWAL
Cody H TollnerArgentinaIoni Bowcher RENEWAL
Alejandro P MarrierBrazilAmy Elsner PROPOSAL
Aika C MacleadGermanyIoni Bowcher UNQUALIFIED
Francesco M ButtSpainElwin Sharvill NEGOTIATION
Greenwood P BowleyCanadaIvan Magalhaes PROPOSAL
Wickens Q FerenczAustraliaElwin Sharvill NEW
Sinclair P IturbideIndiaIvan Magalhaes PROPOSAL
Nicolas D AlbaresItalyAmy Elsner NEW
Salvatore D WieserIndiaAsiya Javayant NEGOTIATION
Leja P VocelkaRussiaAnna Fali NEGOTIATION
Greenwood L BologniaRussiaAsiya Javayant RENEWAL
Sinclair I OldroydJapanBernardo Dominic UNQUALIFIED
Smith Y OldroydItalyIoni Bowcher PROPOSAL
Smith J OstroskyFranceBernardo Dominic PROPOSAL
Juan B NestleFranceIvan Magalhaes QUALIFIED
Antonio C GauchoGermanyAmy Elsner QUALIFIED
Mujtaba F RimItalyElwin Sharvill NEW
Murillo P SaylorsJapanIoni Bowcher UNQUALIFIED
Julie P RoysterFranceIvan Magalhaes NEW
Ivar V SergiFranceIvan Magalhaes NEGOTIATION
Aditya O MaletSpainStephen Shaw QUALIFIED
James E DilliardCanadaIvan Magalhaes NEGOTIATION
Leja G IturbideUnited KingdomOnyama Limba PROPOSAL
Leon J MaletJapanAnna Fali PROPOSAL
Costa B BriddickItalyStephen Shaw PROPOSAL
Cody J VenereAustraliaIoni Bowcher UNQUALIFIED
Jeanfrancois Q NickaIndiaOnyama Limba NEW
Chavez F WieserAustraliaIvan Magalhaes PROPOSAL
Murillo A ChuiBrazilIoni Bowcher NEW
Julie J CaudyArgentinaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
David P Maclead
Aruna B Schemmer
Smith P Briddick
Francesco A Saylors
Jones B Caudy
Murillo R Tollner
Izzy R Campain
Ashley Q Morasca
Francesco P Briddick
Smith T Amigon
Ricardo H Rim
Juan C Nicka
Kadeem H Bowley
Julie G Ferencz
Faith S Albares
Juan U Inouye
Morrow F Caldarera
Sinclair T Amigon
Tony R Garufi
Kaitlin L Garufi
Juan K Ruta
Salvatore C Iturbide
Leja T Stockham
Sinclair M Marrier
Silvio T Whobrey
Arvin M Oldroyd
Jeanfrancois D Marrier
Emily Y Caudy
Darci B Wieser
Misaki I Sergi
Aruna N Vocelka
Jefferson W Butt
Emily E Maclead
Aditya V Morasca
Aika M Rim
Claire C Doe
Wickens B Doe
Faith X Maclead
Cody Y Garufi
Octavia V Flosi
Izzy G Maclead
Smith Y Nicka
Maisha Q Inouye
Wickens A Ruta
Murillo Y Campain
Leja D Bowley
Maria S Rulapaugh
Deepesh M Chui
Kadeem D Bolognia
Rodrigues S Ruta
IdCountryDate
1000United Kingdom2025-04-10
1001Canada2025-03-31
1002Russia2025-04-12
1003Germany2025-04-20
1004Canada2025-04-13
1005Brazil2025-04-03
1006Italy2025-04-13
1007United Kingdom2025-04-27
1008Brazil2025-04-16
1009France2025-04-25
1010France2025-03-31
1011United Kingdom2025-04-02
1012Brazil2025-04-09
1013India2025-04-10
1014United Kingdom2025-04-26
1015Japan2025-04-14
1016Canada2025-04-16
1017Japan2025-04-21
1018Russia2025-04-01
1019Brazil2025-04-27
1020Australia2025-04-06
1021Brazil2025-04-04
1022Germany2025-04-28
1023Russia2025-04-06
1024Japan2025-04-09
1025Argentina2025-04-13
1026India2025-04-12
1027Japan2025-04-10
1028Russia2025-04-18
1029France2025-04-10
1030Germany2025-04-17
1031Brazil2025-04-22
1032Brazil2025-04-20
1033Germany2025-04-06
1034Argentina2025-04-28
1035United Kingdom2025-04-04
1036Canada2025-04-15
1037Argentina2025-03-31
1038Italy2025-04-16
1039Italy2025-04-07
1040Germany2025-04-07
1041Brazil2025-04-19
1042Spain2025-04-20
1043India2025-04-03
1044Australia2025-04-28
1045Canada2025-04-01
1046Spain2025-04-23
1047Japan2025-04-17
1048United Kingdom2025-04-17
1049Brazil2025-04-10

On-Demand Data

NameIdCountryDate
Deepesh Z Caudy1000Canada2025-04-01
James C Foller1001United Kingdom2025-04-02
Alejandro L Morasca1002Russia2025-04-16
Rodrigues C Ostrosky1003Italy2025-04-25
Claire O Caudy1004United Kingdom2025-04-17
Aditya Z Schemmer1005Canada2025-04-01
Aruna U Whobrey1006Argentina2025-04-02
Aditya E Shinko1007Argentina2025-04-14
Leja M Campain1008Brazil2025-04-14
Ricardo B Inouye1009Spain2025-04-19
Smith V Glick1010Italy2025-04-25
Sinclair N Darakjy1011Russia2025-04-18
Mujtaba O Rim1012France2025-04-15
Ricardo A Inouye1013Australia2025-04-11
Jefferson S Albares1014Brazil2025-04-28
Adams I Paprocki1015Germany2025-04-15
Johnson F Gaucho1016Argentina2025-04-29
Nicolas Y Rim1017Canada2025-03-31
Mayumi W Amigon1018Brazil2025-04-17
Sinclair R Paprocki1019Spain2025-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro P MacleadUnited KingdomBernardo Dominic NEGOTIATION
Francesco B StensethSpainStephen Shaw NEW
Izzy I AmigonCanadaAsiya Javayant QUALIFIED
Maisha F FerenczItalyAmy Elsner RENEWAL
Nicolas O ButtArgentinaStephen Shaw QUALIFIED
Arvin Z MaletAustraliaOnyama Limba QUALIFIED
Ricardo C ChuiSpainIvan Magalhaes NEW
Aditya J CaudyRussiaIvan Magalhaes QUALIFIED
Maria M CaldareraSpainIoni Bowcher NEW
Wickens R PoquetteFranceBernardo Dominic NEW
Ricardo J VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair E CampainArgentinaOnyama Limba QUALIFIED
Mujtaba D SchemmerBrazilStephen Shaw RENEWAL
Murillo Z RimRussiaXuxue Feng QUALIFIED
Cody J CaldareraBrazilAnna Fali QUALIFIED
Mujtaba X SaylorsJapanOnyama Limba QUALIFIED
Ashley E ShinkoSpainAnna Fali UNQUALIFIED
Chavez V BologniaRussiaAsiya Javayant QUALIFIED
Kaitlin B MaletSpainIvan Magalhaes NEW
Jefferson X IturbideFranceAnna Fali NEW
Leja W DilliardIndiaIvan Magalhaes RENEWAL
Ashley J RimIndiaXuxue Feng UNQUALIFIED
Adams B MorascaRussiaAsiya Javayant PROPOSAL
Mayumi T CaldareraCanadaBernardo Dominic PROPOSAL
Maria B DoeCanadaBernardo Dominic RENEWAL
Izzy V SaylorsRussiaOnyama Limba NEGOTIATION
Leja D DilliardGermanyBernardo Dominic PROPOSAL
Kaitlin R InouyeSpainIvan Magalhaes RENEWAL
Ivar Z NickaIndiaAmy Elsner QUALIFIED
Leja F KolmetzSpainIvan Magalhaes NEGOTIATION
Juan X FollerAustraliaIvan Magalhaes UNQUALIFIED
Izzy X FerenczItalyIoni Bowcher NEW
Greenwood X SchemmerIndiaAmy Elsner UNQUALIFIED
Misaki U FigeroaItalyAmy Elsner QUALIFIED
Ashley D VenereArgentinaIoni Bowcher QUALIFIED
Murillo Y BologniaItalyStephen Shaw PROPOSAL
David A ChuiGermanyBernardo Dominic UNQUALIFIED
Faith L GlickJapanAnna Fali QUALIFIED
Aika Y MaletItalyOnyama Limba PROPOSAL
Clifford D FlosiRussiaAsiya 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>