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
Mujtaba Q BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Francesco D DarakjyArgentinaBernardo Dominic UNQUALIFIED
Wickens D WaycottJapanBernardo Dominic NEW
Johnson U WaycottAustraliaBernardo Dominic RENEWAL
Jefferson J VenereRussiaAnna Fali PROPOSAL
Jones H MaletBrazilElwin Sharvill QUALIFIED
Emily N MaletBrazilAnna Fali NEGOTIATION
Isabel N DoeBrazilAnna Fali UNQUALIFIED
Deepesh F MaletGermanyElwin Sharvill RENEWAL
Claire C TollnerRussiaAnna Fali NEW
Costa W CaudyFranceStephen Shaw NEGOTIATION
Misaki H CampainAustraliaAnna Fali UNQUALIFIED
Tony J OldroydUnited KingdomIoni Bowcher RENEWAL
Julie V MaletGermanyAmy Elsner NEW
Mujtaba M NickaUnited KingdomStephen Shaw NEGOTIATION
Darci N BowleyFranceXuxue Feng PROPOSAL
Aditya P WhobreyIndiaAmy Elsner RENEWAL
Mujtaba V IturbideArgentinaBernardo Dominic RENEWAL
Tony W MacleadGermanyBernardo Dominic NEW
Cody O FerenczRussiaStephen Shaw UNQUALIFIED
Kadeem S FigeroaAustraliaIvan Magalhaes QUALIFIED
Tony T RoysterArgentinaOnyama Limba NEW
Sinclair E SergiFranceAmy Elsner RENEWAL
Ivar K CaldareraArgentinaIvan Magalhaes NEW
Sinclair R RutaSpainXuxue Feng PROPOSAL
Alejandro Y RutaGermanyBernardo Dominic PROPOSAL
Clifford Y AmigonAustraliaXuxue Feng NEGOTIATION
Johnson U MaletUnited KingdomAsiya Javayant RENEWAL
Chavez Z WhobreyFranceElwin Sharvill NEW
Jennifer R ChuiSpainOnyama Limba QUALIFIED
Deepesh T FerenczArgentinaAnna Fali PROPOSAL
Ricardo D MaletItalyElwin Sharvill NEGOTIATION
Aika O RulapaughRussiaAnna Fali NEW
Alejandro H IturbideBrazilXuxue Feng UNQUALIFIED
Costa O BologniaArgentinaOnyama Limba PROPOSAL
Francesco J StockhamAustraliaIvan Magalhaes PROPOSAL
David M DarakjyItalyIvan Magalhaes NEGOTIATION
Aditya Z AlbaresJapanIoni Bowcher PROPOSAL
Aika N ButtRussiaStephen Shaw NEGOTIATION
Smith T SaylorsUnited KingdomIvan Magalhaes NEW
Sinclair T BowleyArgentinaIoni Bowcher PROPOSAL
Julie Q RutaArgentinaIoni Bowcher RENEWAL
Emily E AmigonBrazilAmy Elsner PROPOSAL
Sinclair V CaudyAustraliaBernardo Dominic UNQUALIFIED
Jefferson T BriddickIndiaAnna Fali RENEWAL
Juan V MorascaCanadaIoni Bowcher QUALIFIED
Kadeem C BowleyAustraliaIvan Magalhaes NEW
Leja C SaylorsArgentinaElwin Sharvill UNQUALIFIED
David F MacleadArgentinaAmy Elsner QUALIFIED
Ivar A FlosiGermanyAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya H KolmetzJapanAnna Fali PROPOSAL
Deepesh Y PerinRussiaAsiya Javayant NEW
Leja V PaprockiAustraliaAmy Elsner NEGOTIATION
Jones O SergiFranceElwin Sharvill NEW
Silvio P WaycottUnited KingdomStephen Shaw UNQUALIFIED
Isabel Y SchemmerAustraliaAmy Elsner QUALIFIED
Jennifer G ButtFranceXuxue Feng NEGOTIATION
Costa C GarufiSpainBernardo Dominic NEGOTIATION
Clifford D WaycottGermanyAnna Fali QUALIFIED
Isabel Y FlosiFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez D GarufiAustralia2025-08-09Commercial Press RENEWAL3Ivan Magalhaes
1001Wickens E AlbaresSpain2025-08-09Truhlar And Truhlar Attys PROPOSAL94Bernardo Dominic
1002Jennifer N StensethItaly2025-08-21Dorl, James J Esq RENEWAL37Ivan Magalhaes
1003Emily G KuskoArgentina2025-08-18Feiner Bros NEW89Bernardo Dominic
1004Johnson I MarrierCanada2025-08-06Chapman, Ross E Esq NEGOTIATION2Amy Elsner
1005Juan S GauchoFrance2025-08-24Benton, John B Jr QUALIFIED24Ioni Bowcher
1006Salvatore H BriddickRussia2025-08-18Chemel, James L Cpa UNQUALIFIED55Stephen Shaw
1007Sinclair O CampainBrazil2025-07-30Chanay, Jeffrey A Esq PROPOSAL77Ioni Bowcher
1008Ricardo W FlosiAustralia2025-08-27Feltz Printing Service PROPOSAL46Bernardo Dominic
1009Jennifer F MaletIndia2025-08-20Feiner Bros NEGOTIATION9Anna Fali
1010Jones B OldroydAustralia2025-08-10Feiner Bros UNQUALIFIED80Anna Fali
1011Silvio D PerinIndia2025-08-28Printing Dimensions PROPOSAL47Ioni Bowcher
1012David S KuskoBrazil2025-08-10Feltz Printing Service NEW14Ioni Bowcher
1013Costa F DilliardCanada2025-08-03Chapman, Ross E Esq NEW51Amy Elsner
1014Ashley W NestleCanada2025-08-28Printing Dimensions QUALIFIED28Amy Elsner
1015Izzy N SlusarskiCanada2025-08-11Benton, John B Jr UNQUALIFIED79Xuxue Feng
1016Maisha A GlickBrazil2025-08-19Chemel, James L Cpa RENEWAL54Onyama Limba
1017Sinclair R FerenczIndia2025-08-21Truhlar And Truhlar Attys RENEWAL2Bernardo Dominic
1018Darci B ButtSpain2025-08-14Rousseaux, Michael Esq QUALIFIED68Anna Fali
1019Maisha G FollerItaly2025-08-07Dorl, James J Esq NEW66Anna Fali
1020Ashley L PerinIndia2025-07-31Chemel, James L Cpa RENEWAL69Amy Elsner
1021Greenwood Z IturbideCanada2025-08-04Feiner Bros NEW50Anna Fali
1022Leon F StensethGermany2025-08-14Chapman, Ross E Esq NEW0Elwin Sharvill
1023Maisha V ChuiRussia2025-08-16Truhlar And Truhlar Attys NEW84Elwin Sharvill
1024Cody T CampainCanada2025-08-06Benton, John B Jr QUALIFIED24Onyama Limba
1025Nicolas Q WaycottBrazil2025-08-28Rousseaux, Michael Esq NEGOTIATION1Bernardo Dominic
1026Isabel T FigeroaBrazil2025-08-23Chanay, Jeffrey A Esq RENEWAL55Amy Elsner
1027Aika E MaletRussia2025-08-26Commercial Press RENEWAL34Ivan Magalhaes
1028Silvio X SergiBrazil2025-08-25Printing Dimensions UNQUALIFIED55Ioni Bowcher
1029Claire V ShinkoSpain2025-08-05Dorl, James J Esq UNQUALIFIED74Anna Fali
1030Izzy D MacleadGermany2025-08-07Chapman, Ross E Esq PROPOSAL57Amy Elsner
1031Costa H GillianIndia2025-08-05Rangoni Of Florence NEW62Ivan Magalhaes
1032Jennifer D MaletGermany2025-08-14Buckley Miller Wright UNQUALIFIED49Onyama Limba
1033Kadeem X BriddickIndia2025-08-16Feltz Printing Service QUALIFIED64Xuxue Feng
1034Ivar S NestleIndia2025-08-22King, Christopher A Esq NEW97Xuxue Feng
1035Ashley A KuskoFrance2025-08-22Feltz Printing Service NEGOTIATION1Anna Fali
1036Ivar Z AlbaresAustralia2025-08-17Dorl, James J Esq NEW64Amy Elsner
1037Smith T SergiCanada2025-08-14Dorl, James J Esq NEGOTIATION16Elwin Sharvill
1038Maria X OldroydRussia2025-08-17Truhlar And Truhlar Attys PROPOSAL98Amy Elsner
1039Morrow O MorascaAustralia2025-08-04Truhlar And Truhlar Attys PROPOSAL37Stephen Shaw
1040Ricardo Q NestleRussia2025-08-28Rangoni Of Florence UNQUALIFIED16Ioni Bowcher
1041Maisha S RoysterGermany2025-07-31Printing Dimensions QUALIFIED96Ivan Magalhaes
1042Costa C BowleyAustralia2025-08-03Benton, John B Jr NEGOTIATION82Elwin Sharvill
1043Alejandro E GauchoCanada2025-07-30King, Christopher A Esq UNQUALIFIED10Anna Fali
1044Sinclair O MaletUnited Kingdom2025-08-21Feiner Bros UNQUALIFIED58Onyama Limba
1045James K NestleUnited Kingdom2025-08-22Feltz Printing Service RENEWAL29Anna Fali
1046Salvatore K CaudyAustralia2025-08-26Benton, John B Jr PROPOSAL1Bernardo Dominic
1047Jeanfrancois O VocelkaAustralia2025-08-03King, Christopher A Esq NEGOTIATION88Bernardo Dominic
1048Izzy G IturbideAustralia2025-08-15King, Christopher A Esq NEGOTIATION39Xuxue Feng
1049Jeanfrancois K CampainFrance2025-08-18Chapman, Ross E Esq NEGOTIATION47Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Wickens Q MacleadIndiaAnna Fali NEGOTIATION
Salvatore W SchemmerJapanAnna Fali UNQUALIFIED
Nicolas O KuskoBrazilIvan Magalhaes UNQUALIFIED
Julie O SaylorsAustraliaOnyama Limba UNQUALIFIED
Antonio L StockhamJapanIvan Magalhaes QUALIFIED
Ricardo Q WaycottJapanIoni Bowcher NEW
Mujtaba L SergiAustraliaXuxue Feng UNQUALIFIED
Clifford Z NestleJapanElwin Sharvill RENEWAL
Maisha U WieserCanadaStephen Shaw QUALIFIED
Octavia X BologniaItalyAmy Elsner UNQUALIFIED
Jones N GillianBrazilAmy Elsner NEGOTIATION
Francesco B StockhamCanadaOnyama Limba NEW
Aruna D PoquetteArgentinaXuxue Feng NEGOTIATION
Leon K SaylorsJapanAnna Fali NEGOTIATION
Jefferson T DoeItalyAnna Fali RENEWAL
Aruna O AlbaresCanadaXuxue Feng NEW
Maria I GauchoArgentinaIvan Magalhaes RENEWAL
Emily M VocelkaJapanXuxue Feng PROPOSAL
Salvatore A AlbaresItalyIoni Bowcher QUALIFIED
Claire C WhobreyJapanElwin Sharvill UNQUALIFIED
Smith I RutaArgentinaXuxue Feng NEW
Izzy O ButtGermanyAnna Fali QUALIFIED
Mayumi N RutaUnited KingdomAmy Elsner NEGOTIATION
Octavia D PaprockiUnited KingdomAmy Elsner NEW
Jones G SergiAustraliaXuxue Feng RENEWAL
Greenwood I WieserJapanOnyama Limba NEW
Jeanfrancois M RoysterJapanOnyama Limba QUALIFIED
Adams U GauchoArgentinaElwin Sharvill RENEWAL
Clifford K GauchoRussiaOnyama Limba QUALIFIED
James F WieserUnited KingdomElwin Sharvill RENEWAL
Leon O RoysterUnited KingdomBernardo Dominic PROPOSAL
Mujtaba S FerenczAustraliaOnyama Limba NEGOTIATION
Emily G CaldareraGermanyElwin Sharvill NEGOTIATION
Rodrigues L ShinkoSpainOnyama Limba PROPOSAL
Jennifer A ChuiJapanBernardo Dominic NEGOTIATION
Darci G IturbideGermanyIvan Magalhaes RENEWAL
Nicolas L MacleadBrazilIoni Bowcher QUALIFIED
Silvio Y DilliardArgentinaIvan Magalhaes UNQUALIFIED
Mujtaba Z MaletFranceStephen Shaw QUALIFIED
Costa S FerenczSpainAnna Fali NEW
Emily B GlickIndiaIoni Bowcher UNQUALIFIED
Claire S PaprockiGermanyIvan Magalhaes QUALIFIED
Salvatore L StockhamItalyAmy Elsner NEGOTIATION
Wickens Y KolmetzIndiaAsiya Javayant NEW
Salvatore S GillianIndiaAmy Elsner NEW
Kadeem G FerenczSpainAmy Elsner UNQUALIFIED
Stacey X OldroydItalyIvan Magalhaes NEW
Jones H WaycottUnited KingdomStephen Shaw QUALIFIED
Leja D KuskoCanadaAsiya Javayant QUALIFIED
Francesco R GillianBrazilIvan Magalhaes PROPOSAL
Frozen Columns
Name
Murillo X Schemmer
Octavia E Morasca
Leja U Butt
Jeanfrancois A Rulapaugh
Julie I Perin
Izzy I Albares
Mayumi Y Bowley
Adams I Stenseth
Cody M Kusko
Rodrigues V Maclead
Adams Z Schemmer
Jennifer I Amigon
Munro S Malet
Munro Y Doe
Arvin N Bolognia
Smith T Stenseth
James X Briddick
Kaitlin N Nicka
Murillo K Venere
Leja D Doe
Leon M Kusko
Izzy M Briddick
Silvio L Foller
Rodrigues K Paprocki
Jefferson E Gaucho
Chavez D Paprocki
Kaitlin Y Vocelka
Misaki K Bowley
Jeanfrancois E Oldroyd
Misaki S Poquette
James P Paprocki
Mujtaba D Stenseth
Izzy H Paprocki
James V Wieser
Mujtaba D Whobrey
Smith A Shinko
Darci U Waycott
Leon O Malet
Francesco X Rim
Aruna J Rulapaugh
Misaki Q Whobrey
Isabel J Malet
Cody S Venere
Salvatore O Waycott
Izzy I Inouye
Octavia E Tollner
Greenwood B Foller
Ricardo P Shinko
Claire G Caudy
Jefferson Q Gaucho
IdCountryDate
1000Italy2025-08-03
1001Australia2025-08-25
1002France2025-08-07
1003Canada2025-08-12
1004Spain2025-08-01
1005France2025-08-25
1006Argentina2025-08-04
1007Japan2025-08-23
1008Japan2025-08-26
1009United Kingdom2025-08-20
1010Russia2025-08-08
1011Canada2025-08-11
1012Canada2025-08-09
1013Italy2025-08-07
1014Italy2025-08-17
1015Italy2025-08-04
1016Italy2025-08-26
1017Argentina2025-08-02
1018Canada2025-08-02
1019Argentina2025-08-19
1020Russia2025-08-10
1021India2025-08-10
1022United Kingdom2025-08-03
1023France2025-07-30
1024Italy2025-08-12
1025Australia2025-08-09
1026United Kingdom2025-08-10
1027Canada2025-08-11
1028India2025-08-05
1029Germany2025-08-13
1030Australia2025-08-28
1031United Kingdom2025-08-25
1032Brazil2025-08-23
1033Germany2025-08-19
1034Brazil2025-08-10
1035India2025-08-05
1036Brazil2025-08-24
1037Germany2025-08-07
1038France2025-08-04
1039Italy2025-08-09
1040France2025-08-27
1041Canada2025-08-04
1042Japan2025-07-31
1043Brazil2025-07-31
1044Italy2025-08-27
1045Canada2025-08-20
1046Germany2025-08-12
1047France2025-08-01
1048United Kingdom2025-08-01
1049Russia2025-07-31

On-Demand Data

NameIdCountryDate
Salvatore G Poquette1000Brazil2025-08-11
Cody B Perin1001Canada2025-08-07
Aika T Nestle1002United Kingdom2025-08-21
Ricardo Z Ostrosky1003France2025-08-26
Juan J Malet1004India2025-08-02
Kaitlin S Kusko1005Italy2025-08-28
Emily J Shinko1006Germany2025-08-27
Chavez W Vocelka1007Argentina2025-08-21
Faith B Chui1008Canada2025-08-22
Isabel G Foller1009Japan2025-08-24
Johnson W Foller1010Spain2025-08-06
Emily G Slusarski1011Spain2025-08-15
Johnson W Amigon1012Argentina2025-08-24
Greenwood O Ferencz1013Canada2025-08-23
Izzy Z Perin1014Russia2025-07-30
Mujtaba P Glick1015Italy2025-08-19
Izzy X Ruta1016Japan2025-08-17
Nicolas G Saylors1017India2025-08-14
Ricardo K Waycott1018Germany2025-08-16
Jefferson V Poquette1019Japan2025-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro L ButtItalyOnyama Limba QUALIFIED
Ricardo D CaudySpainAsiya Javayant RENEWAL
Antonio Q SchemmerBrazilBernardo Dominic NEW
Salvatore V RimArgentinaStephen Shaw NEGOTIATION
Mayumi E FlosiBrazilIvan Magalhaes PROPOSAL
Silvio K VocelkaFranceIoni Bowcher RENEWAL
Sinclair R VocelkaAustraliaXuxue Feng NEW
Salvatore M MorascaUnited KingdomAnna Fali UNQUALIFIED
Clifford O StockhamBrazilIvan Magalhaes NEGOTIATION
Isabel F BowleyRussiaIvan Magalhaes QUALIFIED
Isabel H WieserSpainOnyama Limba PROPOSAL
Johnson I FerenczBrazilIvan Magalhaes NEGOTIATION
Sinclair N DoeIndiaElwin Sharvill QUALIFIED
Jones P BologniaArgentinaXuxue Feng RENEWAL
Wickens Q PoquetteRussiaXuxue Feng NEGOTIATION
Darci L GillianIndiaAmy Elsner PROPOSAL
Costa T IturbideCanadaElwin Sharvill PROPOSAL
David C OstroskySpainBernardo Dominic NEGOTIATION
Izzy D NestleJapanBernardo Dominic NEW
Cody U FollerAustraliaAnna Fali UNQUALIFIED
Salvatore I GauchoArgentinaOnyama Limba NEW
Francesco P VenereSpainOnyama Limba QUALIFIED
Mujtaba S WhobreyArgentinaIvan Magalhaes RENEWAL
Jennifer K FigeroaJapanAmy Elsner PROPOSAL
Leon Z PoquetteBrazilAsiya Javayant PROPOSAL
Cody Z VenereItalyBernardo Dominic NEGOTIATION
Wickens J PerinIndiaOnyama Limba NEW
Johnson B KuskoGermanyAmy Elsner NEW
Johnson M RimSpainAsiya Javayant PROPOSAL
Aika V RutaArgentinaAsiya Javayant NEGOTIATION
Arvin I ButtSpainStephen Shaw QUALIFIED
Clifford A AlbaresJapanStephen Shaw NEW
Silvio P SergiRussiaOnyama Limba NEGOTIATION
Kaitlin O CampainGermanyXuxue Feng PROPOSAL
Stacey W CaudyArgentinaXuxue Feng PROPOSAL
Francesco I RoysterSpainOnyama Limba QUALIFIED
Silvio U StockhamSpainIvan Magalhaes NEW
Morrow M DarakjyAustraliaOnyama Limba NEW
Munro Q MaletSpainIoni Bowcher NEW
Misaki P OldroydRussiaElwin Sharvill QUALIFIED

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