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
Rodrigues D FlosiRussiaIoni Bowcher PROPOSAL
Alejandro W SergiGermanyBernardo Dominic QUALIFIED
Munro E NickaJapanElwin Sharvill QUALIFIED
James S TollnerGermanyBernardo Dominic UNQUALIFIED
Rodrigues Q GauchoJapanBernardo Dominic NEW
Jeanfrancois V ButtItalyElwin Sharvill QUALIFIED
Ashley Y GarufiFranceBernardo Dominic RENEWAL
Wickens R OldroydRussiaIoni Bowcher QUALIFIED
Morrow D SlusarskiRussiaIoni Bowcher NEW
Silvio F PerinUnited KingdomOnyama Limba NEW
Ashley E MarrierBrazilXuxue Feng PROPOSAL
Antonio J StensethJapanAmy Elsner NEGOTIATION
Ashley I CaldareraIndiaAnna Fali QUALIFIED
Sinclair J RimFranceElwin Sharvill NEW
Juan I StensethBrazilAnna Fali UNQUALIFIED
Silvio G AlbaresGermanyBernardo Dominic UNQUALIFIED
Misaki X GarufiBrazilAsiya Javayant QUALIFIED
Salvatore R SergiJapanBernardo Dominic PROPOSAL
Murillo E MacleadUnited KingdomOnyama Limba RENEWAL
Faith I RoysterFranceIoni Bowcher PROPOSAL
Julie B MacleadArgentinaBernardo Dominic NEGOTIATION
Juan C StockhamCanadaAsiya Javayant NEGOTIATION
Maisha K InouyeSpainAnna Fali PROPOSAL
Misaki O FlosiJapanAnna Fali RENEWAL
Nicolas Q GauchoItalyIoni Bowcher NEW
Maria C GillianArgentinaXuxue Feng PROPOSAL
Octavia E CaudyItalyAmy Elsner QUALIFIED
Ricardo G PaprockiRussiaBernardo Dominic QUALIFIED
Sinclair N DilliardSpainBernardo Dominic NEGOTIATION
Juan U ButtIndiaAmy Elsner UNQUALIFIED
Deepesh J SlusarskiArgentinaStephen Shaw NEW
Claire H ShinkoFranceAnna Fali QUALIFIED
Costa C PoquetteGermanyStephen Shaw NEGOTIATION
Deepesh X AmigonArgentinaAnna Fali RENEWAL
Claire E FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro O IturbideBrazilAnna Fali UNQUALIFIED
Wickens J MorascaJapanOnyama Limba QUALIFIED
Greenwood D AlbaresCanadaStephen Shaw PROPOSAL
Izzy C MarrierCanadaIoni Bowcher QUALIFIED
Wickens S SchemmerJapanAnna Fali NEW
Maria T AlbaresSpainStephen Shaw NEGOTIATION
Alejandro F PoquetteRussiaAmy Elsner UNQUALIFIED
Maria M RulapaughRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois S CaudySpainStephen Shaw UNQUALIFIED
Misaki M CaldareraUnited KingdomXuxue Feng RENEWAL
Nicolas Z MorascaJapanStephen Shaw RENEWAL
Cody D DarakjyUnited KingdomAnna Fali RENEWAL
Maisha G WhobreyArgentinaStephen Shaw UNQUALIFIED
Francesco M StensethRussiaAnna Fali QUALIFIED
Smith P DarakjySpainAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro P GarufiJapanOnyama Limba NEGOTIATION
Ashley N AmigonCanadaBernardo Dominic NEW
Silvio O CaldareraRussiaStephen Shaw QUALIFIED
Greenwood N PaprockiArgentinaAnna Fali NEW
Cody F BriddickBrazilAsiya Javayant NEW
Jones D RulapaughBrazilBernardo Dominic PROPOSAL
Leon W GlickSpainAsiya Javayant NEGOTIATION
Juan C MarrierArgentinaStephen Shaw PROPOSAL
Maria A DoeCanadaStephen Shaw NEGOTIATION
Aditya M FlosiSpainAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya E WieserBrazil2025-08-25Benton, John B Jr QUALIFIED78Stephen Shaw
1001Adams X TollnerItaly2025-08-07Rangoni Of Florence PROPOSAL21Stephen Shaw
1002Greenwood N IturbideGermany2025-08-27Commercial Press PROPOSAL16Bernardo Dominic
1003Morrow X GauchoAustralia2025-08-16Chemel, James L Cpa RENEWAL22Stephen Shaw
1004Greenwood C KolmetzBrazil2025-08-12Chapman, Ross E Esq UNQUALIFIED14Stephen Shaw
1005Julie T BowleyRussia2025-08-10Dorl, James J Esq RENEWAL36Stephen Shaw
1006Antonio E GarufiBrazil2025-08-09Morlong Associates NEGOTIATION82Ivan Magalhaes
1007Murillo V IturbideUnited Kingdom2025-08-18Morlong Associates RENEWAL60Onyama Limba
1008Munro W RulapaughGermany2025-08-15Benton, John B Jr NEGOTIATION71Onyama Limba
1009Nicolas C OldroydCanada2025-08-06Feiner Bros QUALIFIED35Xuxue Feng
1010Aditya F FigeroaItaly2025-08-19Buckley Miller Wright NEGOTIATION69Ivan Magalhaes
1011Mujtaba A SlusarskiBrazil2025-08-20Truhlar And Truhlar Attys UNQUALIFIED59Onyama Limba
1012Salvatore F IturbideGermany2025-08-16Chapman, Ross E Esq UNQUALIFIED43Anna Fali
1013David C DarakjyFrance2025-07-30King, Christopher A Esq QUALIFIED51Stephen Shaw
1014Maisha D IturbideJapan2025-08-20Dorl, James J Esq NEGOTIATION76Amy Elsner
1015Costa Y MacleadCanada2025-08-21Feiner Bros UNQUALIFIED20Stephen Shaw
1016Juan W GlickArgentina2025-08-11Rousseaux, Michael Esq RENEWAL8Anna Fali
1017Isabel Z DarakjyBrazil2025-08-23Buckley Miller Wright UNQUALIFIED83Asiya Javayant
1018Murillo X GillianArgentina2025-08-08Benton, John B Jr NEW6Ivan Magalhaes
1019Murillo L WhobreyArgentina2025-07-31Feiner Bros NEW85Onyama Limba
1020Ashley J StensethAustralia2025-08-17Morlong Associates RENEWAL59Xuxue Feng
1021Costa O MarrierItaly2025-08-07Rangoni Of Florence UNQUALIFIED17Amy Elsner
1022Sinclair N WieserCanada2025-07-31Feiner Bros NEGOTIATION75Bernardo Dominic
1023Tony N NestleFrance2025-08-21Feiner Bros RENEWAL91Amy Elsner
1024Sinclair S OstroskyUnited Kingdom2025-08-13Dorl, James J Esq UNQUALIFIED73Onyama Limba
1025Mayumi R MorascaIndia2025-08-13Rousseaux, Michael Esq UNQUALIFIED8Xuxue Feng
1026Adams F MorascaSpain2025-08-18Morlong Associates NEGOTIATION75Stephen Shaw
1027Claire S RoysterGermany2025-08-18Morlong Associates QUALIFIED60Ivan Magalhaes
1028David A SaylorsJapan2025-08-17Morlong Associates UNQUALIFIED61Ioni Bowcher
1029Maisha T VenereItaly2025-08-19Commercial Press RENEWAL49Ivan Magalhaes
1030Ashley Q KuskoIndia2025-08-10Feiner Bros NEGOTIATION72Elwin Sharvill
1031David T GillianItaly2025-08-28Chapman, Ross E Esq UNQUALIFIED52Asiya Javayant
1032Francesco J PoquetteItaly2025-08-21Rousseaux, Michael Esq UNQUALIFIED51Amy Elsner
1033Ivar Z GauchoFrance2025-08-16Chapman, Ross E Esq QUALIFIED67Elwin Sharvill
1034Mayumi O VocelkaJapan2025-08-27Feltz Printing Service NEW16Ivan Magalhaes
1035Maisha A NestleGermany2025-08-13Feiner Bros RENEWAL56Stephen Shaw
1036James Y OstroskySpain2025-08-01Rousseaux, Michael Esq QUALIFIED74Elwin Sharvill
1037Jennifer X WaycottItaly2025-08-25Rangoni Of Florence NEW42Asiya Javayant
1038Darci W PaprockiGermany2025-08-19Chanay, Jeffrey A Esq NEGOTIATION38Ivan Magalhaes
1039Costa A BologniaItaly2025-08-10King, Christopher A Esq UNQUALIFIED77Ioni Bowcher
1040Morrow I DarakjyBrazil2025-08-22Benton, John B Jr NEW58Anna Fali
1041Greenwood L OstroskyUnited Kingdom2025-08-03Chemel, James L Cpa NEGOTIATION6Amy Elsner
1042Wickens A FerenczRussia2025-08-06Printing Dimensions NEW55Onyama Limba
1043Salvatore V CaudyGermany2025-08-06Dorl, James J Esq UNQUALIFIED54Elwin Sharvill
1044Sinclair W VocelkaSpain2025-08-03Commercial Press UNQUALIFIED1Bernardo Dominic
1045Leja P GarufiUnited Kingdom2025-08-09Morlong Associates NEGOTIATION79Onyama Limba
1046Julie F ShinkoRussia2025-07-31Benton, John B Jr NEW70Stephen Shaw
1047Jeanfrancois E AmigonIndia2025-08-18Feiner Bros RENEWAL42Amy Elsner
1048Aika J WaycottItaly2025-08-22Commercial Press QUALIFIED71Asiya Javayant
1049Tony U VocelkaIndia2025-08-13Feiner Bros UNQUALIFIED6Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois C MarrierRussiaIvan Magalhaes NEGOTIATION
Clifford Z GillianIndiaOnyama Limba PROPOSAL
Alejandro T CaudySpainAsiya Javayant UNQUALIFIED
Johnson Q BriddickGermanyAsiya Javayant NEW
Antonio D IturbideUnited KingdomIvan Magalhaes RENEWAL
Faith S VenereFranceIvan Magalhaes QUALIFIED
Salvatore I ShinkoJapanXuxue Feng NEGOTIATION
Jones Z PoquetteBrazilXuxue Feng QUALIFIED
Jones Z AlbaresGermanyIoni Bowcher NEGOTIATION
Alejandro F MacleadAustraliaOnyama Limba UNQUALIFIED
Silvio O NestleFranceOnyama Limba NEW
Faith H GarufiIndiaStephen Shaw NEW
Rodrigues H TollnerRussiaBernardo Dominic PROPOSAL
Morrow P GlickAustraliaXuxue Feng QUALIFIED
Ricardo A MaletFranceOnyama Limba PROPOSAL
Silvio C PoquetteRussiaAsiya Javayant UNQUALIFIED
Isabel U VocelkaRussiaAnna Fali RENEWAL
Johnson H RulapaughBrazilIoni Bowcher PROPOSAL
Ashley T BriddickCanadaBernardo Dominic UNQUALIFIED
Deepesh T WaycottRussiaIoni Bowcher RENEWAL
Munro K ButtItalyOnyama Limba NEW
Tony F DarakjyRussiaStephen Shaw UNQUALIFIED
Jeanfrancois Q SchemmerSpainBernardo Dominic RENEWAL
Nicolas Y FerenczBrazilAmy Elsner NEGOTIATION
Emily T RimJapanXuxue Feng RENEWAL
Murillo U GauchoCanadaStephen Shaw QUALIFIED
Johnson E GarufiSpainElwin Sharvill UNQUALIFIED
Maisha K IturbideSpainAmy Elsner NEGOTIATION
Ivar Z StensethCanadaBernardo Dominic PROPOSAL
Adams Q RutaGermanyAnna Fali NEGOTIATION
Misaki Y AlbaresItalyOnyama Limba QUALIFIED
Ivar T OldroydGermanyIvan Magalhaes QUALIFIED
Claire L SlusarskiArgentinaAsiya Javayant QUALIFIED
Maisha J PerinSpainElwin Sharvill PROPOSAL
Julie N BriddickUnited KingdomOnyama Limba QUALIFIED
Wickens D WhobreyArgentinaOnyama Limba QUALIFIED
Ivar H BriddickBrazilIvan Magalhaes RENEWAL
Octavia H ChuiAustraliaBernardo Dominic NEW
Isabel Y NestleGermanyOnyama Limba NEW
Misaki H SchemmerFranceIoni Bowcher QUALIFIED
Misaki T KolmetzSpainBernardo Dominic NEW
Faith C RimAustraliaBernardo Dominic UNQUALIFIED
Silvio M MaletItalyIvan Magalhaes UNQUALIFIED
Francesco M VenereItalyElwin Sharvill QUALIFIED
Ricardo H MaletGermanyBernardo Dominic RENEWAL
Kadeem Y SchemmerIndiaOnyama Limba QUALIFIED
Chavez O InouyeSpainBernardo Dominic UNQUALIFIED
Jennifer T SergiRussiaStephen Shaw UNQUALIFIED
Francesco V StockhamUnited KingdomBernardo Dominic PROPOSAL
Emily R SchemmerAustraliaIoni Bowcher PROPOSAL
Frozen Columns
Name
Octavia R Malet
Juan E Gaucho
Mayumi Z Briddick
Mujtaba K Perin
Octavia A Royster
Nicolas C Sergi
Nicolas L Waycott
Clifford T Garufi
Kadeem C Oldroyd
Isabel T Doe
Misaki C Oldroyd
Deepesh B Poquette
Salvatore G Dilliard
Antonio S Malet
Costa P Caudy
Jeanfrancois G Nicka
Nicolas G Glick
Clifford J Inouye
Salvatore P Malet
Ashley Z Inouye
Kaitlin T Venere
Faith D Dilliard
Adams W Dilliard
Kadeem U Gaucho
Julie I Ostrosky
Aruna Q Amigon
Jennifer A Nicka
Aruna S Slusarski
James W Malet
Adams X Ferencz
Alejandro A Ostrosky
Jefferson F Chui
Morrow N Rulapaugh
Leja A Sergi
Claire M Stockham
Ivar J Amigon
Octavia S Caldarera
Leja I Waycott
Greenwood R Ostrosky
Greenwood C Chui
Rodrigues W Marrier
Arvin U Rulapaugh
Ivar X Caldarera
Maria S Perin
Wickens T Kusko
Ivar C Glick
Stacey O Figeroa
Tony S Venere
Ricardo J Waycott
Kadeem P Gaucho
IdCountryDate
1000United Kingdom2025-08-15
1001Canada2025-07-30
1002France2025-08-16
1003Russia2025-08-23
1004Japan2025-08-23
1005Germany2025-08-11
1006Japan2025-08-06
1007Australia2025-08-10
1008Australia2025-08-13
1009Italy2025-08-15
1010Russia2025-08-27
1011Italy2025-08-28
1012Brazil2025-08-14
1013Russia2025-08-26
1014Japan2025-08-09
1015Spain2025-08-09
1016Canada2025-08-06
1017France2025-08-13
1018Argentina2025-08-07
1019Spain2025-08-25
1020Spain2025-08-05
1021India2025-08-13
1022Germany2025-08-14
1023Russia2025-08-18
1024Spain2025-08-04
1025India2025-08-18
1026Australia2025-08-18
1027India2025-08-09
1028Canada2025-08-01
1029Australia2025-08-02
1030Japan2025-08-14
1031Germany2025-08-21
1032Italy2025-08-25
1033Germany2025-08-03
1034Italy2025-08-03
1035Russia2025-08-03
1036Spain2025-08-10
1037Germany2025-07-31
1038India2025-08-24
1039Australia2025-08-09
1040Russia2025-08-25
1041Russia2025-07-31
1042Italy2025-08-20
1043Canada2025-08-10
1044Russia2025-08-19
1045Spain2025-08-07
1046France2025-08-12
1047India2025-08-13
1048Japan2025-08-04
1049Spain2025-08-27

On-Demand Data

NameIdCountryDate
Aika E Darakjy1000Russia2025-07-30
Morrow L Glick1001Canada2025-08-13
Julie L Waycott1002France2025-08-13
Murillo B Whobrey1003India2025-08-24
Leja K Ferencz1004Japan2025-08-06
Jennifer O Rulapaugh1005United Kingdom2025-08-10
Arvin X Kolmetz1006Japan2025-08-02
Ashley H Gaucho1007Spain2025-08-27
Cody U Foller1008Italy2025-08-11
Leon V Marrier1009Russia2025-08-04
Isabel G Rulapaugh1010United Kingdom2025-08-19
Jefferson G Amigon1011Germany2025-08-16
Aditya Z Malet1012Italy2025-08-27
Tony P Albares1013France2025-08-12
Salvatore E Oldroyd1014Argentina2025-08-15
James F Albares1015Australia2025-08-27
David Z Royster1016Spain2025-08-01
Nicolas I Whobrey1017Canada2025-08-13
Antonio H Amigon1018Australia2025-08-05
Johnson H Garufi1019Japan2025-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco O DilliardFranceAnna Fali NEGOTIATION
Nicolas K MaletFranceXuxue Feng NEW
Alejandro G MaletSpainOnyama Limba NEW
Stacey R GillianItalyAmy Elsner PROPOSAL
David N MacleadFranceAmy Elsner RENEWAL
Juan Y SaylorsArgentinaStephen Shaw PROPOSAL
Clifford A ButtJapanBernardo Dominic UNQUALIFIED
Maisha H GarufiIndiaAnna Fali PROPOSAL
Isabel M RimFranceStephen Shaw PROPOSAL
Julie D SaylorsUnited KingdomBernardo Dominic RENEWAL
Francesco W VenereSpainElwin Sharvill RENEWAL
Juan B SchemmerFranceAmy Elsner RENEWAL
Darci U DoeSpainAsiya Javayant QUALIFIED
Stacey O FlosiFranceAnna Fali NEW
Stacey N MaletFranceIoni Bowcher PROPOSAL
Isabel W CaldareraRussiaAmy Elsner NEW
Faith V CampainFranceIvan Magalhaes RENEWAL
Emily B SergiIndiaAsiya Javayant NEGOTIATION
Munro V CampainSpainElwin Sharvill QUALIFIED
Cody D KolmetzArgentinaBernardo Dominic NEGOTIATION
Juan L SchemmerAustraliaAnna Fali NEW
Wickens D FlosiAustraliaAnna Fali NEW
Tony R FollerArgentinaIvan Magalhaes NEGOTIATION
Silvio N StensethRussiaIvan Magalhaes QUALIFIED
Sinclair R ButtJapanAnna Fali NEW
Munro Q PerinArgentinaAnna Fali QUALIFIED
Jones M SergiIndiaBernardo Dominic QUALIFIED
Darci H GlickIndiaAmy Elsner RENEWAL
Emily N DarakjySpainOnyama Limba RENEWAL
Maisha E NickaSpainXuxue Feng PROPOSAL
Salvatore U PoquetteArgentinaIvan Magalhaes RENEWAL
Nicolas M KolmetzUnited KingdomBernardo Dominic QUALIFIED
Maisha M GillianIndiaIoni Bowcher RENEWAL
Arvin K OldroydRussiaAmy Elsner NEGOTIATION
Mayumi W MaletItalyBernardo Dominic PROPOSAL
Deepesh S WhobreyItalyOnyama Limba NEW
Aika H MaletGermanyAsiya Javayant PROPOSAL
Misaki P MarrierSpainIvan Magalhaes UNQUALIFIED
Leja G GillianCanadaIvan Magalhaes RENEWAL
Deepesh F VenereArgentinaAnna Fali 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>