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
Munro S PoquetteUnited KingdomIvan Magalhaes NEW
Deepesh P WhobreyGermanyBernardo Dominic PROPOSAL
Aruna I IturbideFranceIoni Bowcher NEW
Octavia K FollerJapanAsiya Javayant NEGOTIATION
Costa M GillianSpainOnyama Limba NEGOTIATION
Munro T InouyeAustraliaIoni Bowcher UNQUALIFIED
Jennifer P BologniaRussiaXuxue Feng NEGOTIATION
James C KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Aruna X StensethRussiaBernardo Dominic QUALIFIED
Misaki H PerinSpainBernardo Dominic UNQUALIFIED
Francesco T BriddickRussiaElwin Sharvill NEW
Murillo A BologniaIndiaXuxue Feng UNQUALIFIED
Clifford R IturbideUnited KingdomOnyama Limba PROPOSAL
Johnson K OstroskySpainAmy Elsner UNQUALIFIED
Rodrigues O GarufiRussiaIvan Magalhaes UNQUALIFIED
Juan M WaycottUnited KingdomAmy Elsner NEW
Isabel V BriddickGermanyAmy Elsner NEW
Kadeem I TollnerIndiaXuxue Feng QUALIFIED
Cody K SchemmerFranceAnna Fali NEGOTIATION
Nicolas N GarufiGermanyAsiya Javayant QUALIFIED
Arvin Y VocelkaRussiaBernardo Dominic RENEWAL
Adams I IturbideRussiaElwin Sharvill QUALIFIED
Izzy G ChuiItalyAnna Fali PROPOSAL
Silvio P AmigonArgentinaBernardo Dominic UNQUALIFIED
Sinclair M BriddickIndiaElwin Sharvill RENEWAL
Rodrigues O DilliardFranceAmy Elsner PROPOSAL
Juan U DarakjyRussiaOnyama Limba UNQUALIFIED
Aditya R FollerRussiaIvan Magalhaes QUALIFIED
Emily J RimFranceAsiya Javayant PROPOSAL
Claire Z MacleadJapanBernardo Dominic NEW
Tony X RulapaughFranceAsiya Javayant UNQUALIFIED
Cody L WieserCanadaAmy Elsner UNQUALIFIED
Mujtaba V PoquetteAustraliaIvan Magalhaes PROPOSAL
Tony K DoeGermanyIvan Magalhaes RENEWAL
James M GlickCanadaStephen Shaw NEW
Faith S FerenczUnited KingdomIvan Magalhaes QUALIFIED
Leon A WaycottBrazilBernardo Dominic NEW
Aruna I PerinAustraliaAsiya Javayant NEGOTIATION
Ivar J BriddickRussiaOnyama Limba QUALIFIED
Rodrigues Y RulapaughUnited KingdomAsiya Javayant QUALIFIED
Ivar L KolmetzIndiaAsiya Javayant NEGOTIATION
Greenwood X FigeroaBrazilAsiya Javayant UNQUALIFIED
Mujtaba K BriddickFranceAmy Elsner NEGOTIATION
Jones R PoquetteRussiaIoni Bowcher UNQUALIFIED
Izzy P AmigonJapanIoni Bowcher UNQUALIFIED
Francesco K StensethArgentinaAmy Elsner NEW
Cody W MorascaIndiaBernardo Dominic QUALIFIED
Antonio M OstroskyIndiaAmy Elsner NEGOTIATION
Jennifer R OldroydRussiaAnna Fali QUALIFIED
Greenwood D VocelkaGermanyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro D RutaRussiaAnna Fali QUALIFIED
Tony E NickaFranceOnyama Limba RENEWAL
Octavia C StensethUnited KingdomElwin Sharvill NEGOTIATION
Aruna P FigeroaAustraliaXuxue Feng NEGOTIATION
Wickens G CaldareraItalyIoni Bowcher UNQUALIFIED
Munro H SlusarskiIndiaBernardo Dominic RENEWAL
Claire F NestleBrazilIoni Bowcher NEGOTIATION
Izzy Y BriddickJapanElwin Sharvill RENEWAL
Maisha P SergiGermanyAmy Elsner NEW
Murillo Z ButtIndiaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria J StensethUnited Kingdom2025-09-26Printing Dimensions UNQUALIFIED31Elwin Sharvill
1001Isabel J PoquetteIndia2025-10-02Feltz Printing Service UNQUALIFIED7Ivan Magalhaes
1002Sinclair K FlosiRussia2025-10-02King, Christopher A Esq UNQUALIFIED20Anna Fali
1003Ashley K KuskoCanada2025-10-05Rangoni Of Florence QUALIFIED96Elwin Sharvill
1004Maria B SlusarskiBrazil2025-09-29Printing Dimensions NEGOTIATION2Anna Fali
1005Costa N KuskoIndia2025-09-24Chanay, Jeffrey A Esq UNQUALIFIED59Anna Fali
1006Faith J GlickSpain2025-10-13King, Christopher A Esq PROPOSAL16Elwin Sharvill
1007Deepesh A MaletRussia2025-10-01Rangoni Of Florence UNQUALIFIED52Onyama Limba
1008Munro G DoeJapan2025-10-04Feltz Printing Service QUALIFIED20Asiya Javayant
1009Salvatore T FlosiJapan2025-09-22Chanay, Jeffrey A Esq RENEWAL56Ioni Bowcher
1010Munro I RoysterFrance2025-10-02Chanay, Jeffrey A Esq RENEWAL77Elwin Sharvill
1011James Q KuskoSpain2025-09-21Truhlar And Truhlar Attys QUALIFIED96Ivan Magalhaes
1012Salvatore I DarakjyJapan2025-10-18Rangoni Of Florence UNQUALIFIED58Ivan Magalhaes
1013Deepesh J AmigonUnited Kingdom2025-09-24Printing Dimensions NEGOTIATION86Onyama Limba
1014Stacey Q OstroskyRussia2025-10-13Truhlar And Truhlar Attys QUALIFIED35Asiya Javayant
1015Jennifer H FlosiFrance2025-10-02Dorl, James J Esq UNQUALIFIED55Ivan Magalhaes
1016Isabel P CampainSpain2025-09-29Chapman, Ross E Esq PROPOSAL35Anna Fali
1017Chavez I NickaRussia2025-09-30Morlong Associates NEGOTIATION15Xuxue Feng
1018Deepesh O SergiCanada2025-09-29Dorl, James J Esq UNQUALIFIED55Amy Elsner
1019Misaki V ShinkoArgentina2025-09-22Buckley Miller Wright NEW7Xuxue Feng
1020Izzy H FerenczJapan2025-09-30Commercial Press QUALIFIED15Ioni Bowcher
1021Leon S OldroydJapan2025-10-12Benton, John B Jr QUALIFIED9Ivan Magalhaes
1022Maria M FollerIndia2025-09-30Printing Dimensions PROPOSAL42Asiya Javayant
1023Darci R KolmetzJapan2025-10-14Commercial Press UNQUALIFIED41Amy Elsner
1024Jones A GlickArgentina2025-10-15Chemel, James L Cpa QUALIFIED81Onyama Limba
1025Greenwood V RoysterFrance2025-10-18Rousseaux, Michael Esq RENEWAL31Anna Fali
1026Adams B GauchoCanada2025-09-30Feltz Printing Service PROPOSAL82Bernardo Dominic
1027Darci X RoysterIndia2025-09-30Rousseaux, Michael Esq QUALIFIED46Onyama Limba
1028Kaitlin X DarakjyBrazil2025-09-24King, Christopher A Esq UNQUALIFIED0Stephen Shaw
1029Adams H FlosiUnited Kingdom2025-09-27Commercial Press UNQUALIFIED97Amy Elsner
1030Juan Q FollerAustralia2025-10-06Feiner Bros RENEWAL27Asiya Javayant
1031Deepesh V OldroydUnited Kingdom2025-10-13Buckley Miller Wright PROPOSAL88Ivan Magalhaes
1032Johnson M BowleyCanada2025-09-30Chemel, James L Cpa NEGOTIATION52Ivan Magalhaes
1033Leja J StensethItaly2025-09-30Commercial Press NEW70Asiya Javayant
1034Adams S SergiRussia2025-10-11Morlong Associates UNQUALIFIED42Elwin Sharvill
1035Sinclair S BowleyGermany2025-10-19Commercial Press PROPOSAL29Stephen Shaw
1036Misaki W VenereArgentina2025-09-23Morlong Associates RENEWAL27Xuxue Feng
1037Tony H GlickJapan2025-10-10Buckley Miller Wright NEW51Onyama Limba
1038Julie A MaletAustralia2025-10-16Rangoni Of Florence PROPOSAL64Onyama Limba
1039Tony J BowleyBrazil2025-10-03Rousseaux, Michael Esq NEW78Elwin Sharvill
1040Wickens Z CaldareraRussia2025-09-24Buckley Miller Wright NEGOTIATION46Anna Fali
1041Leon T BologniaFrance2025-10-01Commercial Press NEW43Onyama Limba
1042Emily W GillianUnited Kingdom2025-10-20Feltz Printing Service NEW41Xuxue Feng
1043Isabel B SergiAustralia2025-10-10Commercial Press NEW84Xuxue Feng
1044Stacey M OldroydFrance2025-09-24Chanay, Jeffrey A Esq UNQUALIFIED16Amy Elsner
1045Izzy U DilliardCanada2025-09-30Truhlar And Truhlar Attys NEW77Stephen Shaw
1046Johnson T MorascaAustralia2025-09-24Chanay, Jeffrey A Esq RENEWAL15Anna Fali
1047Greenwood J WaycottRussia2025-10-16Dorl, James J Esq QUALIFIED65Asiya Javayant
1048Ricardo I WaycottArgentina2025-10-12Chemel, James L Cpa RENEWAL83Ivan Magalhaes
1049Greenwood H WaycottCanada2025-10-17Printing Dimensions UNQUALIFIED65Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Wickens J SaylorsFranceAmy Elsner NEGOTIATION
Leja S BologniaGermanyAsiya Javayant NEW
Alejandro N PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Izzy Q KuskoBrazilAsiya Javayant QUALIFIED
Salvatore M BologniaBrazilAnna Fali PROPOSAL
Nicolas M PaprockiGermanyAmy Elsner UNQUALIFIED
Aika G RimJapanAsiya Javayant NEGOTIATION
Smith W AmigonRussiaElwin Sharvill NEGOTIATION
Nicolas R MarrierGermanyBernardo Dominic UNQUALIFIED
Mayumi P PerinRussiaXuxue Feng PROPOSAL
Aditya N CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Juan W DoeSpainStephen Shaw QUALIFIED
Antonio K FerenczRussiaBernardo Dominic UNQUALIFIED
Julie I VenereGermanyAsiya Javayant PROPOSAL
Ricardo C SergiBrazilXuxue Feng UNQUALIFIED
Juan L GillianSpainElwin Sharvill QUALIFIED
Emily D MorascaCanadaElwin Sharvill RENEWAL
Jeanfrancois G BowleyGermanyElwin Sharvill UNQUALIFIED
Mujtaba X DarakjyFranceIvan Magalhaes NEW
Smith V ShinkoBrazilAsiya Javayant NEGOTIATION
Johnson S SaylorsItalyIvan Magalhaes RENEWAL
Faith Y PoquetteArgentinaXuxue Feng NEW
Nicolas W SaylorsRussiaXuxue Feng RENEWAL
Munro W MaletAustraliaXuxue Feng NEW
Adams Y DoeUnited KingdomOnyama Limba UNQUALIFIED
Antonio D BologniaSpainStephen Shaw NEW
Chavez W ShinkoBrazilStephen Shaw NEGOTIATION
Murillo F ShinkoUnited KingdomOnyama Limba PROPOSAL
Clifford T ShinkoItalyStephen Shaw NEGOTIATION
Emily N FigeroaGermanyAnna Fali NEGOTIATION
Silvio G GauchoIndiaStephen Shaw NEW
Aruna I CaldareraRussiaElwin Sharvill QUALIFIED
Clifford Y ChuiGermanyElwin Sharvill RENEWAL
Octavia M RulapaughBrazilAmy Elsner UNQUALIFIED
Morrow I CaudyFranceAnna Fali RENEWAL
Mujtaba L RimUnited KingdomAmy Elsner NEW
Emily S ButtGermanyAnna Fali QUALIFIED
Aruna G StockhamArgentinaAmy Elsner QUALIFIED
Smith Y InouyeSpainAnna Fali NEW
Adams C SaylorsUnited KingdomAnna Fali QUALIFIED
Alejandro B IturbideJapanBernardo Dominic NEW
Arvin I FlosiJapanOnyama Limba UNQUALIFIED
Costa W ShinkoSpainAmy Elsner PROPOSAL
Leon G NestleFranceXuxue Feng QUALIFIED
Francesco D WaycottBrazilIoni Bowcher PROPOSAL
Aditya I PaprockiJapanOnyama Limba PROPOSAL
Isabel W GlickSpainXuxue Feng NEW
Silvio G CampainIndiaOnyama Limba PROPOSAL
Ivar N VenereFranceIoni Bowcher NEW
Darci Y StockhamAustraliaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Octavia Q Shinko
Ricardo U Maclead
Chavez F Saylors
Smith X Wieser
Jeanfrancois R Bowley
Sinclair F Flosi
Jeanfrancois V Dilliard
Wickens H Paprocki
Alejandro L Briddick
Tony S Perin
Octavia I Stenseth
Misaki Z Inouye
Emily R Foller
Antonio Z Gillian
Morrow C Albares
Deepesh S Paprocki
Juan Q Ferencz
Julie O Ferencz
Stacey F Slusarski
Kaitlin U Ferencz
Chavez F Bowley
Isabel F Perin
Kadeem F Poquette
Wickens U Perin
Chavez T Bowley
Chavez Z Garufi
Jones K Whobrey
Maria F Amigon
Silvio H Bolognia
Leja B Gaucho
Maisha D Caudy
Morrow Y Wieser
Mayumi N Waycott
Salvatore N Schemmer
Jennifer K Stockham
Greenwood F Stockham
Morrow C Glick
Misaki L Iturbide
Julie D Gillian
Ivar L Bowley
Arvin H Albares
Murillo L Whobrey
Silvio X Briddick
Wickens M Rulapaugh
James O Maclead
Francesco S Bolognia
Morrow T Glick
Greenwood O Sergi
Jennifer Q Royster
Aika L Rulapaugh
IdCountryDate
1000India2025-10-10
1001Brazil2025-10-07
1002Italy2025-10-13
1003Italy2025-10-18
1004Germany2025-10-09
1005Canada2025-10-11
1006Australia2025-10-04
1007Australia2025-09-21
1008Australia2025-10-13
1009Brazil2025-10-18
1010France2025-10-06
1011India2025-09-29
1012Brazil2025-10-06
1013France2025-10-02
1014Canada2025-09-29
1015Spain2025-09-29
1016Brazil2025-09-25
1017France2025-10-15
1018United Kingdom2025-10-06
1019Brazil2025-09-24
1020Australia2025-10-09
1021Germany2025-10-05
1022Spain2025-10-06
1023Canada2025-09-21
1024Argentina2025-09-26
1025United Kingdom2025-09-25
1026France2025-10-17
1027France2025-10-01
1028Spain2025-09-24
1029United Kingdom2025-10-13
1030Germany2025-09-26
1031Australia2025-10-19
1032Brazil2025-09-26
1033Japan2025-09-21
1034Argentina2025-10-14
1035Germany2025-10-20
1036Russia2025-10-12
1037Japan2025-09-25
1038Australia2025-10-13
1039Brazil2025-10-18
1040United Kingdom2025-10-09
1041India2025-10-08
1042Canada2025-10-02
1043Canada2025-10-10
1044Italy2025-10-20
1045Japan2025-10-04
1046Australia2025-10-15
1047Canada2025-10-20
1048Australia2025-10-04
1049France2025-10-18

On-Demand Data

NameIdCountryDate
Chavez B Nicka1000Japan2025-09-24
Greenwood W Sergi1001Russia2025-09-29
Arvin Q Paprocki1002Argentina2025-10-09
Faith H Waycott1003United Kingdom2025-09-28
Cody E Figeroa1004Russia2025-10-03
David T Maclead1005Spain2025-09-29
Arvin R Doe1006Italy2025-09-21
Clifford M Foller1007Spain2025-09-22
Aika A Flosi1008Argentina2025-10-05
Tony I Nicka1009India2025-09-21
Arvin J Glick1010Russia2025-09-26
Tony F Chui1011Australia2025-10-12
Aika F Vocelka1012Argentina2025-09-28
Rodrigues R Waycott1013Germany2025-09-24
Emily N Iturbide1014France2025-10-04
Jefferson W Rim1015France2025-10-17
Adams V Doe1016Canada2025-10-10
Mujtaba Y Royster1017Spain2025-09-27
Claire G Rulapaugh1018India2025-10-06
Aditya M Poquette1019Spain2025-09-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon C VenereItalyElwin Sharvill PROPOSAL
Ricardo I RulapaughJapanBernardo Dominic PROPOSAL
Wickens M IturbideCanadaIoni Bowcher PROPOSAL
David Y MorascaRussiaXuxue Feng NEW
Mayumi P SergiFranceXuxue Feng QUALIFIED
Ricardo M MaletSpainBernardo Dominic QUALIFIED
Arvin L InouyeBrazilOnyama Limba UNQUALIFIED
Kadeem T KolmetzGermanyBernardo Dominic NEGOTIATION
Kadeem Q CaudyIndiaXuxue Feng NEGOTIATION
Mayumi V GlickUnited KingdomStephen Shaw NEGOTIATION
Jennifer O SergiItalyAmy Elsner PROPOSAL
Jefferson X ShinkoRussiaXuxue Feng NEGOTIATION
Morrow L MaletAustraliaBernardo Dominic RENEWAL
Francesco W RutaCanadaElwin Sharvill RENEWAL
Antonio D OldroydBrazilIoni Bowcher NEW
Costa Y DarakjyRussiaAmy Elsner NEW
Maria F DoeIndiaElwin Sharvill QUALIFIED
Aditya L RoysterFranceAnna Fali RENEWAL
Adams N NestleRussiaAsiya Javayant RENEWAL
Isabel M StensethCanadaAsiya Javayant NEGOTIATION
Chavez Z StensethFranceAnna Fali PROPOSAL
Misaki Y RutaFranceBernardo Dominic NEGOTIATION
Maria U AlbaresGermanyAmy Elsner PROPOSAL
James V DoeSpainAnna Fali RENEWAL
Alejandro S GauchoItalyBernardo Dominic NEW
Nicolas W GillianIndiaStephen Shaw RENEWAL
Aruna C RulapaughIndiaBernardo Dominic RENEWAL
Ashley K FlosiFranceXuxue Feng PROPOSAL
Faith H RulapaughGermanyOnyama Limba PROPOSAL
Alejandro I PoquetteRussiaOnyama Limba NEGOTIATION
Aditya T CaldareraBrazilAnna Fali NEGOTIATION
Julie H InouyeFranceBernardo Dominic NEW
Antonio O KuskoJapanIvan Magalhaes UNQUALIFIED
Tony C MorascaBrazilXuxue Feng UNQUALIFIED
Nicolas A WieserAustraliaOnyama Limba RENEWAL
Julie O CampainUnited KingdomAmy Elsner RENEWAL
Octavia L TollnerCanadaElwin Sharvill RENEWAL
Isabel T DoeSpainXuxue Feng QUALIFIED
Aditya I MaletJapanOnyama Limba NEW
Leon W DarakjyFranceAnna Fali NEGOTIATION

<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>