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
Salvatore S GillianArgentinaElwin Sharvill NEGOTIATION
Misaki I CaldareraUnited KingdomIvan Magalhaes NEW
Leja E DoeJapanStephen Shaw PROPOSAL
Francesco B GarufiItalyIvan Magalhaes QUALIFIED
Cody L NickaArgentinaBernardo Dominic QUALIFIED
Emily R StockhamBrazilAsiya Javayant NEW
Julie S RimFranceIvan Magalhaes NEW
Aruna U InouyeRussiaStephen Shaw NEGOTIATION
Misaki F FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Darci C VocelkaRussiaElwin Sharvill NEW
Juan Q MarrierArgentinaBernardo Dominic UNQUALIFIED
Deepesh F RulapaughFranceAsiya Javayant NEGOTIATION
Clifford W FerenczRussiaIoni Bowcher RENEWAL
Antonio A SchemmerUnited KingdomIvan Magalhaes NEW
Tony Y OstroskyBrazilIoni Bowcher PROPOSAL
Maisha L ButtUnited KingdomIvan Magalhaes QUALIFIED
Faith V ButtArgentinaIoni Bowcher QUALIFIED
Cody Z BriddickAustraliaAnna Fali NEW
Kaitlin O SaylorsUnited KingdomAsiya Javayant RENEWAL
Misaki I OldroydSpainAnna Fali UNQUALIFIED
Aditya N KolmetzItalyOnyama Limba QUALIFIED
Ivar L FollerIndiaElwin Sharvill NEW
Kaitlin J MorascaArgentinaStephen Shaw QUALIFIED
Cody J GlickCanadaXuxue Feng RENEWAL
Stacey I SaylorsAustraliaXuxue Feng QUALIFIED
Arvin Q WaycottJapanIoni Bowcher PROPOSAL
Morrow Z InouyeIndiaBernardo Dominic UNQUALIFIED
Juan N FollerAustraliaElwin Sharvill UNQUALIFIED
Smith X MacleadFranceOnyama Limba NEW
Francesco R RulapaughGermanyAsiya Javayant NEGOTIATION
Izzy Y GauchoSpainIoni Bowcher NEGOTIATION
Sinclair D ShinkoBrazilAsiya Javayant PROPOSAL
Munro R WaycottArgentinaBernardo Dominic NEGOTIATION
Leja C GarufiIndiaAsiya Javayant NEW
Deepesh Z GarufiItalyIvan Magalhaes UNQUALIFIED
Julie F VocelkaRussiaStephen Shaw NEGOTIATION
Cody Q CaldareraGermanyElwin Sharvill RENEWAL
Wickens A SlusarskiIndiaOnyama Limba RENEWAL
Deepesh K KuskoJapanBernardo Dominic NEGOTIATION
Johnson P BriddickItalyElwin Sharvill NEGOTIATION
Tony N CampainJapanAsiya Javayant UNQUALIFIED
Sinclair I MaletUnited KingdomAnna Fali UNQUALIFIED
Juan Z RoysterIndiaBernardo Dominic NEW
Salvatore M RimFranceIoni Bowcher NEGOTIATION
Deepesh C SlusarskiFranceStephen Shaw RENEWAL
David W CampainArgentinaXuxue Feng NEGOTIATION
James S MaletUnited KingdomAsiya Javayant RENEWAL
Rodrigues U VenereRussiaXuxue Feng RENEWAL
Salvatore I MaletItalyAmy Elsner UNQUALIFIED
Costa C WhobreyIndiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois I FollerIndiaOnyama Limba NEW
Salvatore Q CampainUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois T GauchoRussiaAmy Elsner UNQUALIFIED
Kaitlin U KolmetzGermanyAmy Elsner NEGOTIATION
Misaki W SergiGermanyBernardo Dominic PROPOSAL
Clifford X MarrierJapanAsiya Javayant UNQUALIFIED
Arvin H SergiJapanStephen Shaw QUALIFIED
Morrow V FlosiIndiaIoni Bowcher RENEWAL
Sinclair M GarufiFranceStephen Shaw PROPOSAL
Aruna F BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez I MaletJapan2025-08-01Chanay, Jeffrey A Esq RENEWAL20Anna Fali
1001Stacey X GillianSpain2025-07-30Dorl, James J Esq RENEWAL66Onyama Limba
1002Darci F RutaAustralia2025-07-19Commercial Press RENEWAL80Ivan Magalhaes
1003Smith A KolmetzCanada2025-07-22Dorl, James J Esq NEGOTIATION91Elwin Sharvill
1004Salvatore B TollnerArgentina2025-07-27King, Christopher A Esq RENEWAL69Amy Elsner
1005Chavez Y RimArgentina2025-08-03Dorl, James J Esq RENEWAL22Bernardo Dominic
1006Clifford J FollerJapan2025-07-30Rousseaux, Michael Esq NEW51Elwin Sharvill
1007James Z VocelkaRussia2025-07-30Chemel, James L Cpa NEW92Bernardo Dominic
1008Greenwood M StensethUnited Kingdom2025-08-10Buckley Miller Wright PROPOSAL16Elwin Sharvill
1009Antonio X MaletItaly2025-07-24Chemel, James L Cpa NEW58Onyama Limba
1010Nicolas M FerenczRussia2025-07-27Feiner Bros NEGOTIATION63Xuxue Feng
1011Silvio F WaycottItaly2025-08-03Chanay, Jeffrey A Esq RENEWAL13Amy Elsner
1012Alejandro N OldroydUnited Kingdom2025-07-29Chapman, Ross E Esq QUALIFIED40Stephen Shaw
1013Ivar M RoysterJapan2025-07-18King, Christopher A Esq UNQUALIFIED44Anna Fali
1014Alejandro H FlosiAustralia2025-07-30Printing Dimensions NEW85Ivan Magalhaes
1015Kaitlin X NestleItaly2025-08-13Chemel, James L Cpa NEGOTIATION31Anna Fali
1016Aditya D SergiJapan2025-08-09Chanay, Jeffrey A Esq PROPOSAL61Onyama Limba
1017Cody M StockhamCanada2025-07-26Chemel, James L Cpa UNQUALIFIED71Amy Elsner
1018Aika U VocelkaAustralia2025-07-24Chapman, Ross E Esq RENEWAL24Xuxue Feng
1019Adams F GauchoAustralia2025-08-13King, Christopher A Esq RENEWAL73Amy Elsner
1020Johnson E CaldareraRussia2025-07-30Dorl, James J Esq QUALIFIED35Asiya Javayant
1021Ivar U NestleIndia2025-07-19Feiner Bros NEW70Xuxue Feng
1022Deepesh Y VocelkaItaly2025-07-28Dorl, James J Esq UNQUALIFIED58Bernardo Dominic
1023Greenwood T VocelkaGermany2025-07-26Dorl, James J Esq UNQUALIFIED89Stephen Shaw
1024Alejandro F SlusarskiBrazil2025-08-02Chapman, Ross E Esq QUALIFIED8Amy Elsner
1025Costa T ButtGermany2025-07-31Chanay, Jeffrey A Esq RENEWAL48Ivan Magalhaes
1026Adams E NickaIndia2025-07-17Commercial Press RENEWAL43Onyama Limba
1027David O SlusarskiSpain2025-07-26Rousseaux, Michael Esq NEGOTIATION79Stephen Shaw
1028James U TollnerIndia2025-07-22Dorl, James J Esq RENEWAL81Ioni Bowcher
1029Arvin J DarakjyFrance2025-07-25Rangoni Of Florence PROPOSAL26Ioni Bowcher
1030Misaki N ChuiFrance2025-07-15Buckley Miller Wright NEW83Xuxue Feng
1031Juan V PoquetteCanada2025-07-20Commercial Press RENEWAL39Ivan Magalhaes
1032Leja O DoeRussia2025-08-10Chemel, James L Cpa RENEWAL99Bernardo Dominic
1033Clifford V ChuiCanada2025-07-30Chapman, Ross E Esq NEW7Elwin Sharvill
1034Cody J SchemmerCanada2025-08-10Buckley Miller Wright RENEWAL53Onyama Limba
1035Izzy C WieserArgentina2025-07-24Chanay, Jeffrey A Esq RENEWAL32Elwin Sharvill
1036Alejandro G OldroydFrance2025-07-20Commercial Press UNQUALIFIED59Onyama Limba
1037Jones A DoeGermany2025-08-05Commercial Press UNQUALIFIED87Bernardo Dominic
1038Munro Q GlickArgentina2025-08-11Chemel, James L Cpa NEW37Bernardo Dominic
1039Wickens U FerenczAustralia2025-08-01Dorl, James J Esq NEGOTIATION37Anna Fali
1040Aruna Y WieserCanada2025-08-11Dorl, James J Esq QUALIFIED24Ivan Magalhaes
1041Octavia E MaletArgentina2025-07-22Dorl, James J Esq RENEWAL15Stephen Shaw
1042Maisha O WhobreyRussia2025-08-03Truhlar And Truhlar Attys UNQUALIFIED33Elwin Sharvill
1043David N InouyeAustralia2025-07-25Chemel, James L Cpa PROPOSAL14Onyama Limba
1044Deepesh I SaylorsRussia2025-08-09Dorl, James J Esq QUALIFIED14Stephen Shaw
1045Julie Y WieserGermany2025-07-30Dorl, James J Esq PROPOSAL56Bernardo Dominic
1046Darci U IturbideSpain2025-07-27Commercial Press NEGOTIATION74Xuxue Feng
1047Maria I WhobreyFrance2025-07-21Buckley Miller Wright UNQUALIFIED14Bernardo Dominic
1048Isabel J GlickRussia2025-07-17Truhlar And Truhlar Attys NEW75Anna Fali
1049Leja Y AmigonRussia2025-07-21Feiner Bros RENEWAL51Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Munro M AmigonItalyAnna Fali RENEWAL
Deepesh A DilliardUnited KingdomIoni Bowcher QUALIFIED
Aika L BologniaSpainAmy Elsner NEGOTIATION
Salvatore S MaletGermanyAmy Elsner NEW
Nicolas Y WhobreySpainIoni Bowcher PROPOSAL
Clifford B StockhamSpainAsiya Javayant RENEWAL
Jeanfrancois W KolmetzGermanyIvan Magalhaes UNQUALIFIED
Johnson R FigeroaCanadaStephen Shaw QUALIFIED
Costa Q VocelkaGermanyBernardo Dominic UNQUALIFIED
Mujtaba M DilliardSpainXuxue Feng RENEWAL
Aika V RutaJapanOnyama Limba RENEWAL
Kaitlin C BologniaArgentinaElwin Sharvill UNQUALIFIED
Leja L AlbaresBrazilBernardo Dominic RENEWAL
Rodrigues V OstroskyIndiaIoni Bowcher PROPOSAL
Emily M AmigonItalyIvan Magalhaes RENEWAL
Jennifer M RimArgentinaStephen Shaw RENEWAL
Kaitlin U FollerIndiaStephen Shaw RENEWAL
Maisha H FigeroaRussiaBernardo Dominic UNQUALIFIED
Jones V PerinCanadaBernardo Dominic RENEWAL
Morrow M ChuiBrazilBernardo Dominic NEGOTIATION
Smith A GlickSpainElwin Sharvill RENEWAL
Leja I MarrierSpainBernardo Dominic RENEWAL
Rodrigues I FerenczItalyXuxue Feng PROPOSAL
Costa D FigeroaFranceElwin Sharvill QUALIFIED
Adams L FlosiArgentinaElwin Sharvill QUALIFIED
Kadeem S RutaIndiaXuxue Feng NEW
Kaitlin O SchemmerArgentinaAmy Elsner QUALIFIED
Wickens P FigeroaJapanAsiya Javayant NEGOTIATION
Leja O ShinkoJapanAmy Elsner NEGOTIATION
Claire F SlusarskiItalyElwin Sharvill PROPOSAL
Silvio R CaldareraSpainIvan Magalhaes QUALIFIED
Wickens S WhobreyCanadaAsiya Javayant RENEWAL
Antonio E GauchoFranceAmy Elsner NEW
Greenwood D ChuiArgentinaIoni Bowcher RENEWAL
Smith V KuskoBrazilStephen Shaw NEGOTIATION
Smith G CampainGermanyBernardo Dominic QUALIFIED
Stacey Q GlickAustraliaXuxue Feng QUALIFIED
Maria A KuskoGermanyAmy Elsner QUALIFIED
Izzy N KolmetzGermanyAmy Elsner UNQUALIFIED
Smith Y KolmetzSpainAsiya Javayant UNQUALIFIED
Cody K RutaGermanyAsiya Javayant NEGOTIATION
Ivar K IturbideRussiaAnna Fali PROPOSAL
Emily H MorascaAustraliaOnyama Limba RENEWAL
Munro X SlusarskiItalyAsiya Javayant QUALIFIED
Sinclair B InouyeUnited KingdomBernardo Dominic PROPOSAL
Francesco W BologniaRussiaAmy Elsner PROPOSAL
Costa M MacleadGermanyIvan Magalhaes UNQUALIFIED
Arvin Q AlbaresJapanIvan Magalhaes QUALIFIED
Adams X GarufiFranceIoni Bowcher QUALIFIED
Aruna D PerinCanadaAnna Fali NEGOTIATION
Frozen Columns
Name
Rodrigues L Malet
Emily S Dilliard
Aruna O Vocelka
Costa O Schemmer
Nicolas Y Flosi
Misaki T Marrier
Ricardo U Poquette
Izzy T Marrier
Johnson R Sergi
Jeanfrancois Q Oldroyd
Mayumi V Inouye
Kadeem A Waycott
Murillo O Butt
James V Foller
Smith T Waycott
Misaki H Venere
Aruna Y Rim
Izzy W Schemmer
Emily B Venere
Rodrigues R Inouye
Costa K Rulapaugh
Faith V Oldroyd
Darci J Perin
Murillo N Sergi
Aruna P Dilliard
Claire J Stockham
Isabel I Ferencz
Juan D Rim
Adams X Rulapaugh
Izzy C Kolmetz
Faith D Kolmetz
Darci C Waycott
Faith W Figeroa
Costa X Saylors
David K Iturbide
Isabel D Amigon
James S Sergi
Salvatore T Nestle
Faith P Nicka
Silvio A Malet
James E Ruta
Sinclair R Malet
Alejandro K Malet
Cody S Malet
Maria I Chui
Wickens X Malet
Nicolas H Chui
Octavia N Flosi
Izzy P Vocelka
Kaitlin Z Briddick
IdCountryDate
1000Italy2025-08-02
1001Germany2025-07-17
1002Germany2025-07-19
1003Russia2025-07-31
1004Brazil2025-07-31
1005France2025-08-04
1006Australia2025-08-07
1007Italy2025-08-08
1008Japan2025-08-13
1009Italy2025-07-25
1010Germany2025-07-29
1011Germany2025-07-17
1012France2025-07-15
1013Italy2025-07-15
1014Spain2025-08-01
1015Australia2025-08-01
1016Japan2025-08-05
1017France2025-08-11
1018Argentina2025-07-22
1019Russia2025-07-26
1020Spain2025-08-08
1021Australia2025-08-11
1022Russia2025-07-18
1023France2025-08-03
1024Australia2025-07-15
1025Italy2025-07-20
1026Australia2025-08-13
1027Canada2025-07-23
1028Brazil2025-07-17
1029United Kingdom2025-08-06
1030Brazil2025-07-29
1031France2025-07-23
1032Italy2025-08-13
1033Spain2025-07-22
1034Italy2025-07-20
1035France2025-08-03
1036Australia2025-07-25
1037Argentina2025-07-20
1038Russia2025-08-04
1039Russia2025-07-19
1040Japan2025-07-18
1041India2025-08-13
1042Brazil2025-08-04
1043Russia2025-08-03
1044Italy2025-07-25
1045Spain2025-07-20
1046Spain2025-07-22
1047India2025-07-31
1048Australia2025-08-11
1049Canada2025-07-25

On-Demand Data

NameIdCountryDate
Jennifer Y Campain1000India2025-07-24
Wickens C Foller1001Japan2025-07-15
Mujtaba T Nicka1002Australia2025-07-19
Cody M Waycott1003Australia2025-08-12
Octavia T Rim1004Germany2025-07-27
Wickens Y Glick1005United Kingdom2025-08-10
Juan V Perin1006Spain2025-08-09
Stacey F Oldroyd1007Germany2025-07-23
Ivar H Gillian1008Russia2025-08-02
Nicolas X Amigon1009France2025-07-28
Aditya D Tollner1010Australia2025-08-01
Munro K Rim1011Australia2025-07-15
Aika U Nestle1012France2025-07-26
Julie T Waycott1013United Kingdom2025-07-28
David W Flosi1014India2025-08-13
Jefferson Q Inouye1015Canada2025-07-21
Deepesh G Caudy1016Russia2025-08-02
David P Kusko1017Spain2025-07-16
Tony Y Saylors1018United Kingdom2025-08-03
Ricardo P Slusarski1019Argentina2025-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood Z ShinkoJapanStephen Shaw NEW
Maria R GillianGermanyAnna Fali PROPOSAL
Mujtaba Z CampainJapanAsiya Javayant RENEWAL
Leja L MaletRussiaAmy Elsner RENEWAL
Salvatore L WhobreyUnited KingdomAmy Elsner PROPOSAL
Clifford O GarufiItalyStephen Shaw QUALIFIED
Aruna V MaletItalyXuxue Feng NEW
Johnson D DilliardFranceAmy Elsner QUALIFIED
Silvio R RimBrazilOnyama Limba UNQUALIFIED
Darci T CampainAustraliaBernardo Dominic NEW
Ashley M FerenczAustraliaXuxue Feng NEGOTIATION
Costa H WieserIndiaAnna Fali QUALIFIED
Wickens N FerenczArgentinaElwin Sharvill PROPOSAL
Nicolas O KuskoCanadaAmy Elsner NEW
Greenwood L FerenczAustraliaStephen Shaw PROPOSAL
Mujtaba B MaletIndiaAmy Elsner NEGOTIATION
Maria V FigeroaBrazilAsiya Javayant NEW
Munro H GillianBrazilStephen Shaw NEGOTIATION
Francesco X ButtSpainAsiya Javayant PROPOSAL
Ricardo O MaletJapanOnyama Limba RENEWAL
Arvin C CaldareraArgentinaElwin Sharvill UNQUALIFIED
Stacey O ShinkoRussiaElwin Sharvill NEGOTIATION
Ivar Y MacleadBrazilElwin Sharvill NEGOTIATION
Aruna O KolmetzGermanyXuxue Feng NEW
Kaitlin Y GauchoJapanAmy Elsner RENEWAL
Jefferson C CampainUnited KingdomBernardo Dominic PROPOSAL
Chavez A IturbideBrazilOnyama Limba NEW
Antonio Q MaletIndiaIvan Magalhaes PROPOSAL
Ricardo P AlbaresArgentinaAsiya Javayant RENEWAL
Morrow I MarrierFranceElwin Sharvill NEGOTIATION
Juan K CaudyGermanyAmy Elsner QUALIFIED
Ricardo U DarakjyFranceIoni Bowcher RENEWAL
Rodrigues I CaudySpainElwin Sharvill QUALIFIED
Munro C OldroydJapanElwin Sharvill UNQUALIFIED
Antonio E DilliardSpainBernardo Dominic PROPOSAL
Isabel I DarakjySpainBernardo Dominic RENEWAL
Smith D CaudyFranceIvan Magalhaes UNQUALIFIED
Aditya X FollerGermanyStephen Shaw PROPOSAL
Juan T StockhamCanadaIvan Magalhaes NEGOTIATION
Antonio O ShinkoRussiaOnyama Limba 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" 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>