Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Wickens E AmigonAustraliaElwin Sharvill RENEWAL
Ricardo S FlosiBrazilAmy Elsner UNQUALIFIED
Maria P WieserUnited KingdomAnna Fali NEW
Clifford W ShinkoFranceIvan Magalhaes NEGOTIATION
Smith Y WieserJapanAmy Elsner RENEWAL
David M DoeCanadaIoni Bowcher UNQUALIFIED
Adams Z WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Francesco O RutaAustraliaIoni Bowcher NEGOTIATION
Jones I FlosiSpainStephen Shaw NEGOTIATION
Wickens Q GarufiArgentinaStephen Shaw UNQUALIFIED
Jeanfrancois Y GarufiArgentinaAnna Fali RENEWAL
Misaki V DoeItalyAnna Fali UNQUALIFIED
Aditya V GlickCanadaBernardo Dominic PROPOSAL
James M FigeroaGermanyAsiya Javayant NEGOTIATION
Maria K BologniaArgentinaElwin Sharvill NEGOTIATION
Misaki H SaylorsAustraliaIoni Bowcher NEGOTIATION
Salvatore S PerinBrazilOnyama Limba NEW
Nicolas J StensethGermanyXuxue Feng NEW
Jones X DoeCanadaAmy Elsner NEGOTIATION
Kadeem T WaycottFranceXuxue Feng PROPOSAL
Jefferson X WaycottCanadaElwin Sharvill NEGOTIATION
Mayumi M RoysterFranceXuxue Feng NEGOTIATION
Mujtaba C KuskoIndiaAsiya Javayant PROPOSAL
Jones Q OstroskyJapanAmy Elsner NEW
Ashley B DarakjyIndiaAnna Fali QUALIFIED
Jefferson D DarakjyCanadaAsiya Javayant PROPOSAL
Aditya R SergiGermanyAsiya Javayant PROPOSAL
Sinclair T CampainIndiaIoni Bowcher PROPOSAL
Munro P MorascaBrazilIvan Magalhaes QUALIFIED
Juan X NestleGermanyAmy Elsner UNQUALIFIED
Isabel U CaldareraJapanOnyama Limba UNQUALIFIED
Julie Z FerenczFranceAnna Fali QUALIFIED
Salvatore J ShinkoFranceAmy Elsner PROPOSAL
Faith X MorascaJapanAmy Elsner NEGOTIATION
Ashley V SchemmerGermanyBernardo Dominic RENEWAL
Ricardo J StensethRussiaElwin Sharvill NEGOTIATION
Chavez N SaylorsBrazilBernardo Dominic QUALIFIED
Greenwood M BologniaGermanyXuxue Feng PROPOSAL
Faith T NestleIndiaXuxue Feng QUALIFIED
Sinclair K MacleadItalyOnyama Limba NEW
Aruna O IturbideItalyAmy Elsner PROPOSAL
Clifford T WieserAustraliaXuxue Feng PROPOSAL
Leja I BowleyJapanIvan Magalhaes QUALIFIED
Aika Y TollnerSpainOnyama Limba UNQUALIFIED
Jones U FlosiJapanStephen Shaw UNQUALIFIED
Kaitlin S MacleadAustraliaAmy Elsner QUALIFIED
Antonio O RulapaughGermanyOnyama Limba QUALIFIED
Kadeem A MaletAustraliaXuxue Feng PROPOSAL
Morrow M SchemmerRussiaAmy Elsner RENEWAL
Ashley W RoysterUnited KingdomOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Morrow K OldroydJapanStephen Shaw QUALIFIED
Mayumi O WieserUnited KingdomOnyama Limba NEW
Kaitlin U GarufiIndiaAnna Fali NEGOTIATION
Faith W AmigonUnited KingdomOnyama Limba PROPOSAL
Octavia Q WhobreyAustraliaAmy Elsner QUALIFIED
Mujtaba N DarakjyFranceAmy Elsner NEW
Kadeem P FollerUnited KingdomIvan Magalhaes NEW
Jefferson F NickaJapanAmy Elsner UNQUALIFIED
Jennifer J CampainCanadaAnna Fali NEGOTIATION
Johnson S InouyeJapanOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley N DoeSpain2025-08-28Commercial Press NEGOTIATION69Anna Fali
1001Sinclair E KolmetzFrance2025-08-03Chapman, Ross E Esq NEW58Asiya Javayant
1002Jones S MorascaIndia2025-08-10Printing Dimensions PROPOSAL14Asiya Javayant
1003Darci I MaletJapan2025-08-07Chemel, James L Cpa NEGOTIATION35Ioni Bowcher
1004Maisha K RutaGermany2025-08-21Buckley Miller Wright QUALIFIED78Bernardo Dominic
1005Jeanfrancois A SchemmerAustralia2025-08-12Buckley Miller Wright QUALIFIED75Anna Fali
1006Maria G RoysterJapan2025-07-30Chemel, James L Cpa PROPOSAL20Anna Fali
1007Nicolas C PoquetteSpain2025-08-20Feiner Bros PROPOSAL92Xuxue Feng
1008Francesco A TollnerIndia2025-08-06Chapman, Ross E Esq RENEWAL3Amy Elsner
1009Juan Q CaudySpain2025-08-01Buckley Miller Wright UNQUALIFIED37Anna Fali
1010Aika A RimSpain2025-08-08Commercial Press NEGOTIATION94Ivan Magalhaes
1011Arvin U DoeBrazil2025-08-12Feltz Printing Service QUALIFIED69Onyama Limba
1012Ricardo B SaylorsSpain2025-08-21Feiner Bros PROPOSAL41Ioni Bowcher
1013Alejandro E TollnerAustralia2025-08-11Dorl, James J Esq PROPOSAL6Amy Elsner
1014Stacey K IturbideAustralia2025-08-16Commercial Press RENEWAL8Ioni Bowcher
1015Leja U InouyeArgentina2025-08-08Buckley Miller Wright NEW50Anna Fali
1016Johnson R GlickSpain2025-08-12Chanay, Jeffrey A Esq QUALIFIED50Xuxue Feng
1017Mujtaba A SaylorsUnited Kingdom2025-08-01Feltz Printing Service QUALIFIED86Anna Fali
1018Julie G AmigonIndia2025-08-26Rousseaux, Michael Esq QUALIFIED81Bernardo Dominic
1019Smith Y PerinUnited Kingdom2025-08-11Dorl, James J Esq NEW30Amy Elsner
1020Jeanfrancois X KuskoCanada2025-08-17Truhlar And Truhlar Attys UNQUALIFIED51Ioni Bowcher
1021Kadeem Z FollerRussia2025-07-30Feltz Printing Service RENEWAL82Xuxue Feng
1022Murillo W AlbaresRussia2025-08-03Chanay, Jeffrey A Esq QUALIFIED8Elwin Sharvill
1023Jennifer Y SaylorsSpain2025-08-19Morlong Associates UNQUALIFIED39Bernardo Dominic
1024Adams A NestleJapan2025-08-02Buckley Miller Wright UNQUALIFIED53Asiya Javayant
1025Stacey L PaprockiFrance2025-08-17Chanay, Jeffrey A Esq NEW23Asiya Javayant
1026Isabel N PerinArgentina2025-08-18Feiner Bros PROPOSAL17Xuxue Feng
1027Kaitlin T MacleadGermany2025-08-07Commercial Press UNQUALIFIED34Xuxue Feng
1028Ricardo L WieserGermany2025-08-28Dorl, James J Esq RENEWAL99Asiya Javayant
1029Antonio Y RimArgentina2025-08-17Printing Dimensions QUALIFIED21Anna Fali
1030Mujtaba T WaycottIndia2025-08-27Printing Dimensions UNQUALIFIED34Asiya Javayant
1031Stacey W WaycottBrazil2025-08-15King, Christopher A Esq QUALIFIED48Anna Fali
1032Antonio U WaycottGermany2025-08-15Dorl, James J Esq UNQUALIFIED55Bernardo Dominic
1033James F BowleyFrance2025-07-31Rousseaux, Michael Esq RENEWAL46Bernardo Dominic
1034Francesco B DarakjyBrazil2025-07-30Chanay, Jeffrey A Esq RENEWAL63Elwin Sharvill
1035Adams M FigeroaArgentina2025-08-09Printing Dimensions NEGOTIATION47Elwin Sharvill
1036Mujtaba P AmigonRussia2025-08-12Rangoni Of Florence NEW56Elwin Sharvill
1037Costa G WaycottArgentina2025-08-10Commercial Press NEW23Xuxue Feng
1038Maisha E GauchoGermany2025-08-16Chanay, Jeffrey A Esq UNQUALIFIED76Asiya Javayant
1039Juan E PaprockiBrazil2025-08-20Commercial Press UNQUALIFIED80Asiya Javayant
1040Chavez G OstroskyAustralia2025-08-14Feltz Printing Service NEW53Anna Fali
1041Silvio R StockhamJapan2025-08-12Buckley Miller Wright QUALIFIED16Xuxue Feng
1042Alejandro A FerenczIndia2025-08-20Feiner Bros RENEWAL30Asiya Javayant
1043Maisha A TollnerArgentina2025-08-17Printing Dimensions NEW27Bernardo Dominic
1044Mujtaba W MaletIndia2025-08-02Chanay, Jeffrey A Esq NEGOTIATION38Asiya Javayant
1045Aika D GillianUnited Kingdom2025-08-10Rousseaux, Michael Esq RENEWAL38Elwin Sharvill
1046Smith P VocelkaUnited Kingdom2025-08-27Dorl, James J Esq UNQUALIFIED62Stephen Shaw
1047Aditya J GarufiRussia2025-08-18Chanay, Jeffrey A Esq PROPOSAL30Elwin Sharvill
1048Misaki S GillianBrazil2025-08-06Benton, John B Jr PROPOSAL84Bernardo Dominic
1049Ivar Q NestleItaly2025-08-05Chemel, James L Cpa PROPOSAL17Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Deepesh U RoysterGermanyAnna Fali NEW
Alejandro E WaycottIndiaAnna Fali RENEWAL
Isabel E DilliardSpainStephen Shaw UNQUALIFIED
Morrow E WaycottAustraliaOnyama Limba UNQUALIFIED
Costa L SlusarskiFranceAmy Elsner QUALIFIED
Aditya K CaldareraJapanBernardo Dominic NEW
Ashley Z StensethIndiaStephen Shaw RENEWAL
Clifford F RulapaughAustraliaIvan Magalhaes NEW
Ivar S FigeroaFranceOnyama Limba UNQUALIFIED
Clifford I RoysterFranceXuxue Feng QUALIFIED
Izzy H TollnerFranceAnna Fali NEGOTIATION
Izzy U RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Stacey H RulapaughRussiaOnyama Limba RENEWAL
Leja A AmigonAustraliaBernardo Dominic RENEWAL
Nicolas N VocelkaBrazilAsiya Javayant RENEWAL
Aruna K OldroydIndiaBernardo Dominic PROPOSAL
Kadeem Z DilliardUnited KingdomAsiya Javayant NEGOTIATION
Stacey S DoeRussiaIoni Bowcher QUALIFIED
Silvio X WhobreyIndiaXuxue Feng UNQUALIFIED
Jones C WhobreyRussiaElwin Sharvill NEGOTIATION
Maria S CampainSpainBernardo Dominic UNQUALIFIED
Leon F BowleyArgentinaAmy Elsner NEW
Aruna I OstroskyBrazilOnyama Limba NEGOTIATION
Aruna C OstroskyJapanOnyama Limba NEW
Kaitlin H RimRussiaAnna Fali PROPOSAL
Darci Z FollerArgentinaAmy Elsner QUALIFIED
Francesco O MarrierAustraliaElwin Sharvill RENEWAL
Alejandro X MaletBrazilAmy Elsner UNQUALIFIED
Cody K CaldareraIndiaBernardo Dominic QUALIFIED
Wickens B CampainUnited KingdomIoni Bowcher RENEWAL
Ivar I RulapaughItalyXuxue Feng PROPOSAL
Murillo I CaudyBrazilXuxue Feng RENEWAL
Chavez K BriddickSpainStephen Shaw QUALIFIED
Rodrigues I CaldareraUnited KingdomAnna Fali UNQUALIFIED
Darci Z MacleadSpainXuxue Feng NEW
Murillo N MarrierGermanyIvan Magalhaes NEGOTIATION
Mayumi O ButtArgentinaBernardo Dominic PROPOSAL
Wickens M StensethRussiaOnyama Limba RENEWAL
Jeanfrancois K FlosiFranceOnyama Limba PROPOSAL
Antonio K BowleyJapanIvan Magalhaes PROPOSAL
Chavez U BowleyJapanAsiya Javayant NEW
Izzy P VenereArgentinaXuxue Feng NEW
James U BologniaBrazilElwin Sharvill RENEWAL
Costa W ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Aditya S GillianItalyAmy Elsner NEGOTIATION
Wickens G MorascaSpainOnyama Limba NEGOTIATION
Misaki T KuskoItalyBernardo Dominic NEGOTIATION
Emily V FigeroaItalyOnyama Limba NEGOTIATION
Clifford H RoysterArgentinaXuxue Feng RENEWAL
Leja Q RoysterBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Faith P Inouye
Kaitlin P Ostrosky
Aditya U Royster
Isabel P Ruta
Stacey B Royster
David Z Nestle
Aruna Y Flosi
Leon J Dilliard
Leja R Venere
Nicolas J Venere
Nicolas L Foller
Mujtaba R Ostrosky
Mujtaba A Perin
James P Morasca
Johnson F Butt
Silvio G Nicka
Costa N Shinko
Mayumi Q Perin
Francesco E Darakjy
Adams U Malet
Faith I Shinko
Jennifer L Amigon
Ricardo D Campain
Darci G Chui
Chavez P Sergi
Wickens S Waycott
Salvatore T Wieser
Cody V Caudy
Jefferson O Bolognia
Alejandro F Dilliard
Johnson G Iturbide
Chavez R Sergi
Jeanfrancois O Stockham
Murillo L Vocelka
Aditya W Maclead
Octavia V Glick
Isabel Z Amigon
Salvatore I Bolognia
Adams W Rulapaugh
Leja O Gaucho
Misaki O Nestle
Leja B Ferencz
Alejandro N Campain
Jennifer Q Gaucho
Nicolas H Rim
David T Waycott
Sinclair X Marrier
Greenwood C Wieser
Ashley Q Sergi
Aika D Flosi
IdCountryDate
1000Russia2025-08-28
1001Germany2025-08-02
1002Italy2025-07-30
1003Brazil2025-07-31
1004Spain2025-08-09
1005France2025-08-22
1006United Kingdom2025-08-24
1007Argentina2025-08-05
1008United Kingdom2025-08-28
1009Italy2025-08-04
1010Australia2025-08-13
1011United Kingdom2025-08-05
1012Japan2025-08-20
1013Germany2025-08-16
1014Germany2025-08-01
1015Australia2025-08-24
1016France2025-08-10
1017United Kingdom2025-08-11
1018Italy2025-08-24
1019France2025-07-31
1020Australia2025-07-30
1021United Kingdom2025-08-21
1022Russia2025-08-07
1023Russia2025-07-31
1024France2025-08-25
1025United Kingdom2025-08-08
1026Spain2025-08-07
1027Australia2025-08-10
1028Australia2025-08-20
1029France2025-08-07
1030India2025-08-01
1031Japan2025-08-09
1032Russia2025-08-23
1033Argentina2025-08-09
1034Australia2025-08-02
1035Spain2025-08-25
1036Japan2025-08-21
1037India2025-08-03
1038United Kingdom2025-08-10
1039Australia2025-08-17
1040Japan2025-08-11
1041Spain2025-08-09
1042United Kingdom2025-08-13
1043Argentina2025-08-07
1044Australia2025-08-23
1045Japan2025-08-27
1046Spain2025-08-16
1047France2025-08-21
1048United Kingdom2025-08-13
1049Australia2025-08-12

On-Demand Data

NameIdCountryDate
Jeanfrancois I Whobrey1000India2025-08-26
Johnson Q Stenseth1001Spain2025-08-26
Salvatore X Gaucho1002Italy2025-08-26
Salvatore Q Foller1003Canada2025-08-02
Rodrigues Y Stockham1004India2025-08-26
Arvin H Caudy1005Spain2025-07-31
Octavia K Maclead1006Spain2025-08-27
Salvatore E Malet1007Russia2025-08-10
Mayumi L Whobrey1008Spain2025-07-31
Cody U Butt1009India2025-08-27
Jeanfrancois F Malet1010Germany2025-08-19
Rodrigues A Venere1011Argentina2025-08-25
Octavia D Vocelka1012United Kingdom2025-08-26
Aruna F Vocelka1013Italy2025-08-01
Stacey G Tollner1014India2025-07-31
Faith T Iturbide1015Russia2025-08-13
Leon M Venere1016India2025-07-30
Izzy I Ostrosky1017Germany2025-08-02
Aika R Royster1018Brazil2025-08-17
Adams L Chui1019Japan2025-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily Z PerinRussiaOnyama Limba UNQUALIFIED
Jeanfrancois W StockhamGermanyAnna Fali QUALIFIED
Morrow B SaylorsSpainAmy Elsner PROPOSAL
Kadeem G ShinkoCanadaBernardo Dominic UNQUALIFIED
Alejandro K RutaArgentinaAsiya Javayant PROPOSAL
Rodrigues I WhobreyRussiaXuxue Feng NEGOTIATION
Jeanfrancois J BriddickAustraliaAsiya Javayant PROPOSAL
James Q RulapaughRussiaXuxue Feng NEW
Juan I MacleadRussiaBernardo Dominic NEW
Misaki X CaldareraCanadaXuxue Feng NEW
Costa B SchemmerBrazilAnna Fali RENEWAL
Stacey P PaprockiUnited KingdomStephen Shaw QUALIFIED
Juan P StockhamCanadaStephen Shaw RENEWAL
Deepesh X SaylorsBrazilIvan Magalhaes RENEWAL
Silvio M VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Johnson T BologniaBrazilBernardo Dominic QUALIFIED
Deepesh Y GillianJapanIoni Bowcher PROPOSAL
Nicolas K ButtUnited KingdomBernardo Dominic UNQUALIFIED
Misaki W NickaFranceAnna Fali PROPOSAL
Chavez Q PerinAustraliaElwin Sharvill NEGOTIATION
Smith K FerenczSpainStephen Shaw UNQUALIFIED
Salvatore M SchemmerBrazilBernardo Dominic NEGOTIATION
Murillo O PaprockiAustraliaAmy Elsner PROPOSAL
Johnson W SergiRussiaIvan Magalhaes NEGOTIATION
Ricardo X TollnerJapanAnna Fali NEW
James V SergiSpainBernardo Dominic PROPOSAL
Leja K FigeroaBrazilAnna Fali QUALIFIED
Johnson A BowleyIndiaIvan Magalhaes RENEWAL
Deepesh P SaylorsUnited KingdomOnyama Limba QUALIFIED
Misaki X BriddickArgentinaStephen Shaw NEW
Kadeem B BowleyUnited KingdomAsiya Javayant NEW
Murillo E RimItalyOnyama Limba RENEWAL
Arvin V CaudySpainAnna Fali UNQUALIFIED
Jefferson M WaycottFranceBernardo Dominic RENEWAL
Nicolas G ButtAustraliaStephen Shaw UNQUALIFIED
Smith F GarufiGermanyIvan Magalhaes PROPOSAL
Juan Y KolmetzJapanIvan Magalhaes QUALIFIED
Ashley G RimSpainAmy Elsner PROPOSAL
Kaitlin S CaldareraSpainAsiya Javayant NEW
Arvin I WhobreyRussiaIoni Bowcher 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" frozenColumnsAlignment="left">
            <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>