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
Jennifer I RulapaughCanadaAsiya Javayant PROPOSAL
Ricardo U SchemmerArgentinaBernardo Dominic QUALIFIED
Costa H MorascaRussiaAmy Elsner UNQUALIFIED
Munro Y NestleUnited KingdomXuxue Feng NEW
Clifford Y NickaIndiaStephen Shaw NEW
Alejandro B CaldareraFranceBernardo Dominic PROPOSAL
Maria Z DilliardBrazilBernardo Dominic QUALIFIED
Morrow J FollerIndiaElwin Sharvill PROPOSAL
Leja M BriddickUnited KingdomElwin Sharvill QUALIFIED
Leon K SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Aruna T FollerGermanyIvan Magalhaes RENEWAL
Munro W KuskoUnited KingdomStephen Shaw NEGOTIATION
Jefferson N MacleadJapanAnna Fali UNQUALIFIED
Ashley U KolmetzGermanyIoni Bowcher NEGOTIATION
Jennifer K DoeRussiaXuxue Feng RENEWAL
Alejandro V KuskoItalyAmy Elsner QUALIFIED
Leon G OstroskyCanadaOnyama Limba QUALIFIED
Jefferson Z KolmetzUnited KingdomStephen Shaw NEW
Emily M WaycottGermanyAsiya Javayant NEW
Arvin W FerenczAustraliaOnyama Limba NEGOTIATION
Antonio A RimJapanAnna Fali RENEWAL
Aruna L StockhamSpainAsiya Javayant NEW
Munro G PaprockiAustraliaElwin Sharvill RENEWAL
Alejandro R TollnerCanadaOnyama Limba UNQUALIFIED
Francesco X GarufiUnited KingdomOnyama Limba PROPOSAL
Claire Y MacleadItalyAsiya Javayant UNQUALIFIED
Chavez Q DoeGermanyBernardo Dominic RENEWAL
Francesco J DoeArgentinaAnna Fali NEW
Isabel H FerenczAustraliaAsiya Javayant NEW
Johnson P GlickIndiaBernardo Dominic NEGOTIATION
Cody Q VocelkaGermanyAmy Elsner QUALIFIED
Deepesh H FigeroaItalyIoni Bowcher UNQUALIFIED
Aika H WieserSpainAnna Fali QUALIFIED
Alejandro T ChuiIndiaStephen Shaw RENEWAL
Deepesh H GillianJapanIvan Magalhaes UNQUALIFIED
James X FigeroaRussiaBernardo Dominic RENEWAL
Morrow M SlusarskiIndiaIvan Magalhaes PROPOSAL
Jeanfrancois W CaldareraCanadaAnna Fali PROPOSAL
Silvio N NickaItalyAsiya Javayant QUALIFIED
Adams N CaldareraArgentinaIoni Bowcher UNQUALIFIED
Juan L MaletJapanXuxue Feng NEW
David K SlusarskiBrazilBernardo Dominic UNQUALIFIED
Maisha I IturbideBrazilXuxue Feng QUALIFIED
Jones J SchemmerFranceOnyama Limba PROPOSAL
Ivar J NickaItalyIoni Bowcher NEGOTIATION
Jefferson C AlbaresJapanAsiya Javayant UNQUALIFIED
Darci Z ButtAustraliaElwin Sharvill RENEWAL
Claire Z VocelkaAustraliaBernardo Dominic NEGOTIATION
Octavia B FigeroaAustraliaAsiya Javayant PROPOSAL
Chavez U WaycottAustraliaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues C SaylorsJapanXuxue Feng NEW
Costa F BowleyJapanElwin Sharvill UNQUALIFIED
Aika H FlosiRussiaAsiya Javayant RENEWAL
Isabel E PerinBrazilAmy Elsner PROPOSAL
Munro E ButtJapanAmy Elsner UNQUALIFIED
Smith W VenereJapanElwin Sharvill QUALIFIED
Silvio N WaycottFranceIvan Magalhaes RENEWAL
Kaitlin I RimAustraliaElwin Sharvill NEGOTIATION
Claire V FigeroaAustraliaAnna Fali RENEWAL
Jefferson V ButtUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley P GillianCanada2025-09-20Commercial Press PROPOSAL9Asiya Javayant
1001Clifford L BriddickCanada2025-09-16Dorl, James J Esq RENEWAL51Elwin Sharvill
1002Aika G GauchoGermany2025-09-25Feiner Bros NEW53Ivan Magalhaes
1003Aruna I RulapaughFrance2025-09-14Printing Dimensions QUALIFIED59Elwin Sharvill
1004Cody V VenereSpain2025-09-28Commercial Press NEW83Stephen Shaw
1005Arvin I OldroydGermany2025-09-20Rangoni Of Florence NEW16Stephen Shaw
1006Jones H SaylorsRussia2025-09-22Commercial Press QUALIFIED63Xuxue Feng
1007Leja L StockhamItaly2025-09-24Chapman, Ross E Esq NEW65Ioni Bowcher
1008Leon G InouyeRussia2025-09-21Feltz Printing Service NEGOTIATION62Onyama Limba
1009Maisha J FigeroaItaly2025-09-26Morlong Associates PROPOSAL71Amy Elsner
1010Murillo A TollnerSpain2025-09-07Commercial Press QUALIFIED89Asiya Javayant
1011Costa S FerenczJapan2025-09-11Printing Dimensions NEW4Anna Fali
1012Clifford H KolmetzJapan2025-10-01Chanay, Jeffrey A Esq RENEWAL69Asiya Javayant
1013Ricardo I TollnerJapan2025-10-04Feiner Bros UNQUALIFIED26Anna Fali
1014Darci S NestleAustralia2025-09-28Dorl, James J Esq RENEWAL80Ivan Magalhaes
1015Ashley M GlickGermany2025-09-09Feltz Printing Service PROPOSAL18Anna Fali
1016Chavez J PerinAustralia2025-09-28Benton, John B Jr PROPOSAL49Xuxue Feng
1017Clifford O MacleadIndia2025-09-21Chapman, Ross E Esq NEGOTIATION30Stephen Shaw
1018Nicolas J TollnerAustralia2025-09-17Feltz Printing Service RENEWAL21Anna Fali
1019Chavez Y GauchoIndia2025-09-19Printing Dimensions RENEWAL39Anna Fali
1020Silvio B MacleadFrance2025-09-25Truhlar And Truhlar Attys PROPOSAL5Bernardo Dominic
1021Clifford R CampainRussia2025-09-23Feltz Printing Service NEW97Stephen Shaw
1022Aditya L GillianItaly2025-09-06Chapman, Ross E Esq NEGOTIATION61Ivan Magalhaes
1023Clifford K OstroskyGermany2025-09-12Rousseaux, Michael Esq NEGOTIATION49Ivan Magalhaes
1024Clifford Q MorascaArgentina2025-09-16Dorl, James J Esq PROPOSAL77Bernardo Dominic
1025Leja P ShinkoAustralia2025-09-18Buckley Miller Wright RENEWAL34Anna Fali
1026Tony L RutaRussia2025-10-04Feiner Bros UNQUALIFIED64Stephen Shaw
1027Nicolas C RulapaughFrance2025-09-15Chanay, Jeffrey A Esq NEW7Xuxue Feng
1028Emily V ShinkoIndia2025-09-14Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1029Deepesh T MaletJapan2025-09-12Buckley Miller Wright PROPOSAL72Anna Fali
1030Wickens R BowleyItaly2025-09-13Feltz Printing Service UNQUALIFIED1Onyama Limba
1031Ashley T MacleadArgentina2025-09-24Rangoni Of Florence PROPOSAL84Anna Fali
1032Jeanfrancois E GarufiArgentina2025-09-13Feiner Bros QUALIFIED73Anna Fali
1033Cody G GauchoJapan2025-09-23Feiner Bros UNQUALIFIED62Anna Fali
1034Ricardo O NestleFrance2025-09-14Dorl, James J Esq NEW45Xuxue Feng
1035Leon S GauchoGermany2025-09-18Dorl, James J Esq NEGOTIATION62Asiya Javayant
1036Silvio U PaprockiItaly2025-09-07Dorl, James J Esq PROPOSAL37Onyama Limba
1037Rodrigues Y RoysterIndia2025-09-14Dorl, James J Esq UNQUALIFIED13Anna Fali
1038Maisha O InouyeSpain2025-09-28Rangoni Of Florence PROPOSAL39Stephen Shaw
1039Kadeem T SaylorsJapan2025-09-17Dorl, James J Esq PROPOSAL71Onyama Limba
1040Antonio B FollerArgentina2025-09-19Chemel, James L Cpa QUALIFIED41Asiya Javayant
1041Morrow K WaycottIndia2025-10-02Feiner Bros RENEWAL1Asiya Javayant
1042Mujtaba I RimRussia2025-09-17King, Christopher A Esq NEGOTIATION68Ioni Bowcher
1043Munro X FigeroaSpain2025-10-02Benton, John B Jr QUALIFIED71Anna Fali
1044Wickens J KolmetzArgentina2025-09-18Printing Dimensions NEGOTIATION99Stephen Shaw
1045Silvio J DarakjyGermany2025-09-12Feiner Bros NEGOTIATION84Stephen Shaw
1046Adams R BriddickItaly2025-09-06Feiner Bros PROPOSAL38Elwin Sharvill
1047Izzy P StensethIndia2025-09-18Rangoni Of Florence PROPOSAL48Ivan Magalhaes
1048Aruna Q RimGermany2025-09-27Feltz Printing Service NEGOTIATION77Anna Fali
1049Munro E SlusarskiGermany2025-09-19Rousseaux, Michael Esq NEW53Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Arvin F MaletArgentinaOnyama Limba RENEWAL
Costa D SlusarskiBrazilStephen Shaw RENEWAL
Isabel B GillianBrazilOnyama Limba UNQUALIFIED
Jefferson C StockhamGermanyIoni Bowcher RENEWAL
Francesco O ChuiAustraliaStephen Shaw PROPOSAL
Juan A MaletGermanyIvan Magalhaes PROPOSAL
Leon Z NickaBrazilStephen Shaw QUALIFIED
Mujtaba O DoeArgentinaStephen Shaw QUALIFIED
Claire M SlusarskiItalyAmy Elsner PROPOSAL
Chavez C CampainIndiaAsiya Javayant NEGOTIATION
Octavia X SergiIndiaIoni Bowcher NEW
Juan F OstroskyUnited KingdomOnyama Limba RENEWAL
James F NickaFranceAmy Elsner PROPOSAL
Misaki X AlbaresArgentinaElwin Sharvill PROPOSAL
Leon Q GauchoBrazilIoni Bowcher PROPOSAL
Deepesh U GillianItalyIoni Bowcher NEW
Deepesh V GauchoRussiaStephen Shaw UNQUALIFIED
Jeanfrancois O OldroydArgentinaElwin Sharvill QUALIFIED
Clifford P FerenczUnited KingdomIvan Magalhaes PROPOSAL
Alejandro M StockhamGermanyOnyama Limba PROPOSAL
Jeanfrancois H NickaIndiaStephen Shaw NEW
David T NickaItalyBernardo Dominic RENEWAL
Emily X MaletGermanyAsiya Javayant QUALIFIED
Octavia U OstroskyGermanyXuxue Feng UNQUALIFIED
Mujtaba P KuskoRussiaBernardo Dominic UNQUALIFIED
Jefferson J AlbaresCanadaBernardo Dominic RENEWAL
Misaki T CampainRussiaBernardo Dominic UNQUALIFIED
Jennifer G SlusarskiSpainOnyama Limba NEGOTIATION
Nicolas N WaycottAustraliaBernardo Dominic NEGOTIATION
Cody H TollnerBrazilOnyama Limba PROPOSAL
Salvatore J GlickArgentinaAsiya Javayant QUALIFIED
Tony B WhobreyAustraliaIvan Magalhaes RENEWAL
Maria E ButtUnited KingdomAnna Fali RENEWAL
Tony Y BriddickAustraliaBernardo Dominic QUALIFIED
Adams T KuskoAustraliaAmy Elsner RENEWAL
Mujtaba H StockhamSpainIoni Bowcher UNQUALIFIED
Stacey I ButtUnited KingdomBernardo Dominic PROPOSAL
Deepesh Q CaldareraJapanOnyama Limba NEW
Misaki Z RimArgentinaBernardo Dominic PROPOSAL
Silvio V BriddickCanadaAnna Fali NEGOTIATION
Aika U DoeIndiaIvan Magalhaes PROPOSAL
Murillo C CampainItalyAsiya Javayant NEW
Morrow I SchemmerCanadaElwin Sharvill UNQUALIFIED
Maisha F DoeGermanyIvan Magalhaes QUALIFIED
Jefferson C WaycottArgentinaOnyama Limba NEGOTIATION
Izzy I VocelkaAustraliaAmy Elsner NEW
Misaki G VenereIndiaXuxue Feng RENEWAL
Mayumi D CaldareraCanadaAnna Fali RENEWAL
Nicolas N ShinkoRussiaAsiya Javayant NEGOTIATION
Darci M InouyeFranceBernardo Dominic QUALIFIED
Frozen Columns
Name
Wickens H Ruta
Aditya D Stenseth
Aika X Nicka
Mujtaba H Foller
Octavia V Shinko
Ricardo M Sergi
Kaitlin Q Wieser
Morrow U Oldroyd
Adams J Sergi
Misaki L Doe
Aika X Nicka
Ricardo Z Ruta
Mujtaba V Malet
Faith E Kusko
Ashley L Royster
Adams K Waycott
Silvio T Morasca
Juan M Paprocki
Emily Y Garufi
Chavez S Campain
Deepesh H Flosi
Stacey Q Campain
Mayumi O Briddick
Ashley K Vocelka
Octavia A Butt
Jennifer T Caldarera
Chavez M Rim
Sinclair F Bowley
Leja K Stenseth
Isabel L Royster
Octavia J Figeroa
Kadeem R Caldarera
Stacey D Briddick
Aruna Q Amigon
Mayumi Z Butt
Aika A Nicka
Juan G Gillian
Octavia V Caldarera
Aditya D Darakjy
Nicolas B Darakjy
Misaki V Caldarera
Antonio J Morasca
Alejandro H Iturbide
Jennifer F Inouye
Octavia Y Ruta
David D Campain
Darci M Saylors
Ivar H Shinko
Julie C Bowley
Greenwood H Maclead
IdCountryDate
1000Canada2025-09-11
1001Canada2025-09-30
1002Spain2025-09-26
1003Germany2025-09-20
1004Japan2025-09-21
1005United Kingdom2025-10-03
1006France2025-10-04
1007Italy2025-09-22
1008Australia2025-09-16
1009France2025-09-09
1010India2025-09-11
1011Germany2025-09-28
1012United Kingdom2025-09-18
1013United Kingdom2025-10-01
1014Russia2025-09-16
1015Brazil2025-09-15
1016Canada2025-10-01
1017Canada2025-09-23
1018Spain2025-09-13
1019United Kingdom2025-09-05
1020Brazil2025-09-21
1021Brazil2025-09-17
1022Canada2025-10-01
1023Germany2025-09-25
1024Germany2025-09-10
1025Canada2025-09-22
1026France2025-09-18
1027France2025-09-25
1028Germany2025-09-06
1029Russia2025-10-03
1030United Kingdom2025-10-01
1031France2025-10-02
1032Canada2025-09-05
1033Russia2025-09-11
1034United Kingdom2025-09-20
1035United Kingdom2025-09-27
1036Australia2025-09-24
1037United Kingdom2025-09-12
1038Brazil2025-09-23
1039Brazil2025-09-22
1040Argentina2025-09-11
1041Italy2025-09-05
1042India2025-09-14
1043Australia2025-09-28
1044Italy2025-09-20
1045Canada2025-09-19
1046Germany2025-09-07
1047Spain2025-09-19
1048France2025-10-02
1049Brazil2025-09-22

On-Demand Data

NameIdCountryDate
Cody J Kolmetz1000Russia2025-09-13
Mujtaba N Maclead1001France2025-09-12
Ashley I Whobrey1002France2025-09-30
Octavia E Nestle1003Russia2025-09-24
Johnson T Kusko1004Germany2025-10-02
Stacey X Rim1005Australia2025-10-01
Jeanfrancois C Stockham1006Australia2025-09-26
Smith R Whobrey1007Australia2025-09-18
Aruna C Malet1008Russia2025-09-21
Aditya J Dilliard1009Canada2025-09-11
Chavez Q Gaucho1010Canada2025-09-14
Jones Q Schemmer1011Italy2025-10-04
Izzy P Poquette1012Argentina2025-09-21
Emily M Poquette1013Japan2025-09-24
Silvio B Doe1014Italy2025-09-16
Octavia V Ruta1015Russia2025-09-21
Francesco L Marrier1016United Kingdom2025-09-24
Maria L Bowley1017Italy2025-09-21
Jones P Figeroa1018France2025-09-15
Munro L Gaucho1019United Kingdom2025-09-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily I SergiRussiaStephen Shaw PROPOSAL
Murillo M TollnerIndiaAsiya Javayant QUALIFIED
Tony W GillianJapanAnna Fali PROPOSAL
Ivar F DilliardCanadaAsiya Javayant QUALIFIED
Antonio N MorascaItalyAnna Fali NEGOTIATION
Julie R GauchoFranceXuxue Feng QUALIFIED
Misaki B SlusarskiCanadaIoni Bowcher RENEWAL
Kadeem G BriddickSpainIvan Magalhaes NEW
Stacey M PoquetteUnited KingdomStephen Shaw RENEWAL
Mayumi Y PoquetteBrazilStephen Shaw QUALIFIED
Ricardo Z StockhamItalyIoni Bowcher NEW
Emily W GarufiRussiaXuxue Feng PROPOSAL
Wickens Q IturbideUnited KingdomAnna Fali UNQUALIFIED
Tony E BowleyUnited KingdomIvan Magalhaes NEW
Leon B SaylorsBrazilOnyama Limba PROPOSAL
Morrow H GauchoJapanXuxue Feng RENEWAL
Morrow K WieserItalyBernardo Dominic NEW
Emily J WhobreyJapanAsiya Javayant UNQUALIFIED
Jones G VenereGermanyAmy Elsner UNQUALIFIED
Deepesh S MacleadUnited KingdomAsiya Javayant UNQUALIFIED
James K CampainAustraliaIoni Bowcher QUALIFIED
Maisha M OldroydGermanyOnyama Limba PROPOSAL
Cody M PerinRussiaElwin Sharvill UNQUALIFIED
Julie W CaudyGermanyAmy Elsner NEGOTIATION
Clifford S VocelkaSpainBernardo Dominic NEGOTIATION
Johnson B IturbideArgentinaIoni Bowcher NEW
Silvio Q MaletAustraliaAsiya Javayant NEGOTIATION
Salvatore P GillianJapanXuxue Feng RENEWAL
Izzy B AlbaresItalyOnyama Limba NEW
Maria F RulapaughRussiaElwin Sharvill NEW
James C FollerRussiaStephen Shaw NEW
Murillo F IturbideJapanAnna Fali NEW
Nicolas C PerinRussiaElwin Sharvill UNQUALIFIED
Kaitlin U TollnerGermanyStephen Shaw PROPOSAL
Claire W TollnerArgentinaOnyama Limba UNQUALIFIED
Rodrigues R CampainItalyAsiya Javayant NEGOTIATION
James U ChuiGermanyAsiya Javayant NEGOTIATION
Deepesh A StensethRussiaAmy Elsner NEGOTIATION
Adams O NestleAustraliaAsiya Javayant UNQUALIFIED
Smith L ButtIndiaIvan Magalhaes 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" 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>