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
Leon X DoeIndiaBernardo Dominic QUALIFIED
Clifford F FerenczRussiaIoni Bowcher PROPOSAL
Emily T PoquetteBrazilBernardo Dominic PROPOSAL
Aruna N ButtArgentinaXuxue Feng NEW
Aditya L PerinSpainAnna Fali QUALIFIED
Nicolas E RoysterSpainIvan Magalhaes PROPOSAL
Aditya P RutaAustraliaIoni Bowcher RENEWAL
Jennifer S PoquetteBrazilIvan Magalhaes QUALIFIED
Julie V ShinkoUnited KingdomXuxue Feng QUALIFIED
Ricardo R RimBrazilStephen Shaw QUALIFIED
Darci J FlosiItalyAsiya Javayant UNQUALIFIED
Francesco Q PaprockiFranceBernardo Dominic NEW
Darci L SlusarskiItalyXuxue Feng PROPOSAL
Ashley V SergiSpainIvan Magalhaes QUALIFIED
Chavez Y FollerUnited KingdomBernardo Dominic PROPOSAL
Mujtaba R ShinkoFranceAsiya Javayant RENEWAL
Ivar C KolmetzAustraliaIvan Magalhaes QUALIFIED
Maisha B MacleadRussiaStephen Shaw PROPOSAL
Jefferson N BriddickBrazilAmy Elsner QUALIFIED
Misaki J FollerArgentinaIoni Bowcher PROPOSAL
Ivar S GarufiArgentinaElwin Sharvill RENEWAL
Adams S VenereJapanBernardo Dominic RENEWAL
Jennifer A WaycottGermanyElwin Sharvill UNQUALIFIED
Kadeem H GlickArgentinaElwin Sharvill QUALIFIED
Aika R FollerSpainElwin Sharvill NEGOTIATION
Leja S MarrierJapanElwin Sharvill PROPOSAL
Claire X SchemmerIndiaIvan Magalhaes UNQUALIFIED
Isabel V FollerCanadaAsiya Javayant NEW
Misaki Y KolmetzBrazilIoni Bowcher RENEWAL
Chavez F WhobreyJapanIvan Magalhaes PROPOSAL
Ivar G WaycottItalyStephen Shaw NEW
Leja T WhobreyIndiaAmy Elsner NEGOTIATION
Claire D GauchoItalyElwin Sharvill PROPOSAL
Jeanfrancois Z NestleGermanyAsiya Javayant NEW
Kadeem P FerenczItalyBernardo Dominic PROPOSAL
Alejandro J CaldareraFranceXuxue Feng PROPOSAL
Ivar U BologniaIndiaStephen Shaw NEW
Sinclair I MaletFranceOnyama Limba QUALIFIED
Murillo N WieserGermanyIoni Bowcher PROPOSAL
Francesco E SaylorsFranceIoni Bowcher NEW
Chavez T NickaFranceAnna Fali UNQUALIFIED
Ashley Q MarrierGermanyAnna Fali PROPOSAL
Kadeem T InouyeIndiaOnyama Limba PROPOSAL
Isabel U VenereUnited KingdomElwin Sharvill PROPOSAL
Costa E NestleJapanOnyama Limba NEGOTIATION
Rodrigues U KolmetzIndiaStephen Shaw PROPOSAL
Smith R SergiRussiaAnna Fali QUALIFIED
Jones W MaletArgentinaBernardo Dominic QUALIFIED
Sinclair D PerinRussiaIoni Bowcher NEGOTIATION
Rodrigues I GarufiJapanOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith J StockhamArgentinaAnna Fali NEGOTIATION
Francesco M IturbideAustraliaElwin Sharvill NEW
Claire E FigeroaAustraliaAsiya Javayant NEW
James D VocelkaFranceIoni Bowcher NEGOTIATION
Kaitlin N NestleBrazilOnyama Limba QUALIFIED
Maria X WaycottItalyElwin Sharvill RENEWAL
Francesco R MaletAustraliaOnyama Limba PROPOSAL
Ricardo X RulapaughGermanyAnna Fali NEW
Izzy K SergiAustraliaAsiya Javayant NEW
Ricardo S ChuiUnited KingdomXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody P BologniaBrazil2025-07-07Morlong Associates RENEWAL32Amy Elsner
1001Salvatore R BowleyBrazil2025-07-13Rangoni Of Florence QUALIFIED21Asiya Javayant
1002Kaitlin L KuskoSpain2025-07-22Feltz Printing Service PROPOSAL74Asiya Javayant
1003Silvio M NickaIndia2025-07-16King, Christopher A Esq QUALIFIED0Amy Elsner
1004Antonio X PaprockiIndia2025-07-12Feiner Bros UNQUALIFIED15Bernardo Dominic
1005Emily D VocelkaGermany2025-07-12Rangoni Of Florence UNQUALIFIED43Asiya Javayant
1006Julie R KuskoSpain2025-07-30Printing Dimensions PROPOSAL92Elwin Sharvill
1007Ricardo V FlosiArgentina2025-07-16Rangoni Of Florence RENEWAL40Asiya Javayant
1008Darci T FigeroaUnited Kingdom2025-07-23Morlong Associates NEGOTIATION19Xuxue Feng
1009Johnson P SchemmerRussia2025-07-10Rangoni Of Florence NEW88Stephen Shaw
1010David G OldroydGermany2025-07-26Benton, John B Jr RENEWAL8Ivan Magalhaes
1011Wickens R AmigonBrazil2025-07-23Truhlar And Truhlar Attys NEGOTIATION35Elwin Sharvill
1012Jones Q RulapaughIndia2025-07-19Morlong Associates NEW82Ioni Bowcher
1013Ricardo S RoysterJapan2025-07-14Morlong Associates RENEWAL48Ivan Magalhaes
1014Wickens O CaudyUnited Kingdom2025-07-30Chapman, Ross E Esq NEW2Ivan Magalhaes
1015Ivar F FollerCanada2025-07-19Benton, John B Jr NEGOTIATION67Bernardo Dominic
1016Misaki Y WaycottItaly2025-07-28Commercial Press PROPOSAL27Stephen Shaw
1017Octavia X DarakjyRussia2025-07-22Feltz Printing Service RENEWAL86Amy Elsner
1018Sinclair C ChuiAustralia2025-07-22Buckley Miller Wright NEW17Ivan Magalhaes
1019Mujtaba Q OstroskyGermany2025-07-10Truhlar And Truhlar Attys NEGOTIATION67Asiya Javayant
1020Faith P StensethFrance2025-07-05Feiner Bros RENEWAL0Bernardo Dominic
1021Sinclair Y DoeCanada2025-07-22Buckley Miller Wright UNQUALIFIED71Amy Elsner
1022Mayumi Z CaudyItaly2025-07-08Morlong Associates RENEWAL10Ivan Magalhaes
1023Leja Z RimFrance2025-07-20Benton, John B Jr RENEWAL82Anna Fali
1024Izzy H PaprockiFrance2025-07-17Chapman, Ross E Esq PROPOSAL67Stephen Shaw
1025James B DarakjyBrazil2025-07-31Feiner Bros QUALIFIED10Asiya Javayant
1026Arvin S FerenczGermany2025-07-22Chapman, Ross E Esq NEGOTIATION43Amy Elsner
1027Adams Y FerenczItaly2025-07-15Chapman, Ross E Esq NEW97Anna Fali
1028Murillo J WaycottIndia2025-07-29Chanay, Jeffrey A Esq PROPOSAL21Ioni Bowcher
1029Darci K MorascaCanada2025-07-19Printing Dimensions QUALIFIED52Ivan Magalhaes
1030Tony R IturbideAustralia2025-07-08Feiner Bros UNQUALIFIED26Asiya Javayant
1031Silvio M SlusarskiBrazil2025-08-02Feltz Printing Service PROPOSAL6Xuxue Feng
1032James G MaletAustralia2025-07-06Chanay, Jeffrey A Esq NEGOTIATION68Stephen Shaw
1033David K AmigonBrazil2025-07-11Rangoni Of Florence QUALIFIED18Amy Elsner
1034Aruna F SlusarskiCanada2025-07-28Chanay, Jeffrey A Esq UNQUALIFIED39Bernardo Dominic
1035Ashley E MaletRussia2025-07-11Commercial Press UNQUALIFIED6Asiya Javayant
1036Tony X KolmetzCanada2025-07-24Truhlar And Truhlar Attys PROPOSAL43Onyama Limba
1037Maisha B ChuiUnited Kingdom2025-07-30Chapman, Ross E Esq QUALIFIED8Elwin Sharvill
1038Emily L GauchoCanada2025-07-11Benton, John B Jr NEW47Anna Fali
1039Maisha H PaprockiCanada2025-07-26Morlong Associates UNQUALIFIED74Anna Fali
1040Costa I CaudyArgentina2025-07-07Chemel, James L Cpa PROPOSAL95Anna Fali
1041Isabel U MaletArgentina2025-07-06Rousseaux, Michael Esq NEGOTIATION66Amy Elsner
1042Maria M GauchoFrance2025-07-25Chemel, James L Cpa QUALIFIED90Onyama Limba
1043Jones D FigeroaCanada2025-07-24Rangoni Of Florence QUALIFIED62Elwin Sharvill
1044Isabel Z IturbideUnited Kingdom2025-07-15Rangoni Of Florence RENEWAL23Bernardo Dominic
1045Maisha V CaldareraSpain2025-07-08Buckley Miller Wright QUALIFIED96Ioni Bowcher
1046Silvio Q VocelkaRussia2025-07-31Buckley Miller Wright RENEWAL94Ivan Magalhaes
1047Silvio G WaycottBrazil2025-07-06Benton, John B Jr RENEWAL98Anna Fali
1048Smith Z CaudyCanada2025-07-19Feltz Printing Service NEGOTIATION45Amy Elsner
1049Izzy U TollnerAustralia2025-07-27King, Christopher A Esq NEGOTIATION79Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh J NestleBrazilXuxue Feng RENEWAL
David P ButtUnited KingdomElwin Sharvill UNQUALIFIED
Aruna N FerenczArgentinaStephen Shaw UNQUALIFIED
Aika T BriddickIndiaAsiya Javayant NEGOTIATION
Greenwood T StensethFranceAnna Fali QUALIFIED
Morrow Q ChuiGermanyIoni Bowcher UNQUALIFIED
Jones E WieserGermanyAmy Elsner RENEWAL
James T AmigonIndiaAmy Elsner PROPOSAL
Leja Y BologniaIndiaStephen Shaw QUALIFIED
Arvin K MaletFranceXuxue Feng NEW
Juan M InouyeSpainIvan Magalhaes RENEWAL
Aditya T FollerArgentinaAmy Elsner RENEWAL
Jeanfrancois V VocelkaItalyBernardo Dominic PROPOSAL
Rodrigues N GlickItalyAmy Elsner PROPOSAL
Faith D FerenczRussiaOnyama Limba NEW
Emily J OstroskyRussiaStephen Shaw PROPOSAL
Aika E VenereAustraliaElwin Sharvill NEGOTIATION
Adams Z FollerUnited KingdomOnyama Limba NEGOTIATION
Izzy X FollerSpainStephen Shaw NEW
Sinclair A GillianIndiaAmy Elsner UNQUALIFIED
Deepesh X IturbideCanadaIvan Magalhaes NEW
James C ButtArgentinaXuxue Feng RENEWAL
Deepesh I NestleFranceStephen Shaw RENEWAL
Darci V OstroskyArgentinaXuxue Feng UNQUALIFIED
Juan Q PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba K BriddickBrazilAmy Elsner NEGOTIATION
Ashley I MaletSpainIoni Bowcher RENEWAL
Jeanfrancois G PerinSpainAmy Elsner NEGOTIATION
Chavez X FollerBrazilXuxue Feng NEW
Munro O GarufiGermanyAsiya Javayant NEGOTIATION
David D PoquetteBrazilAsiya Javayant QUALIFIED
Greenwood V PaprockiAustraliaIoni Bowcher UNQUALIFIED
Emily E BriddickBrazilBernardo Dominic UNQUALIFIED
Silvio E PoquetteIndiaOnyama Limba RENEWAL
Tony T OldroydRussiaIvan Magalhaes NEGOTIATION
James L DilliardGermanyElwin Sharvill RENEWAL
James C RimSpainElwin Sharvill QUALIFIED
Antonio X WieserItalyAsiya Javayant PROPOSAL
David K MarrierArgentinaBernardo Dominic PROPOSAL
Alejandro N SlusarskiFranceXuxue Feng NEGOTIATION
Juan Z OldroydBrazilIoni Bowcher NEW
Smith H GillianJapanOnyama Limba PROPOSAL
Julie N RutaIndiaAnna Fali NEW
Antonio Q AmigonRussiaAmy Elsner NEW
James U SaylorsRussiaXuxue Feng PROPOSAL
Misaki L FlosiAustraliaAmy Elsner NEW
Jeanfrancois F RulapaughSpainAsiya Javayant PROPOSAL
Antonio N MacleadItalyStephen Shaw RENEWAL
David X VenereCanadaAmy Elsner NEGOTIATION
Aika S PoquetteAustraliaBernardo Dominic PROPOSAL
Frozen Columns
Name
Clifford G Bolognia
Francesco C Briddick
Isabel M Stockham
Sinclair O Maclead
Salvatore T Vocelka
Mujtaba G Kusko
Costa E Ferencz
Costa M Kolmetz
Ashley E Oldroyd
Wickens F Nestle
Isabel J Dilliard
Rodrigues O Sergi
Sinclair S Stenseth
Wickens Q Campain
Emily T Slusarski
Darci G Figeroa
Murillo F Bolognia
Tony D Shinko
Silvio K Caudy
Arvin D Tollner
Aruna D Venere
Izzy W Tollner
Maisha X Rim
Aruna C Nestle
Clifford O Wieser
Tony Q Kolmetz
Ashley R Figeroa
Maisha T Rulapaugh
Aruna D Poquette
Aika U Sergi
Costa Z Briddick
Alejandro I Ruta
Claire X Vocelka
Izzy D Iturbide
Emily D Rulapaugh
Jefferson O Garufi
Leja J Marrier
Mujtaba P Venere
Juan B Garufi
Mayumi K Foller
Izzy H Malet
Claire L Rim
Cody A Stockham
Antonio S Ostrosky
Greenwood O Saylors
Jefferson S Inouye
Smith U Caldarera
Ashley B Figeroa
Julie B Doe
Antonio M Campain
IdCountryDate
1000Spain2025-07-20
1001France2025-08-03
1002Canada2025-07-25
1003India2025-07-25
1004France2025-07-10
1005Russia2025-07-26
1006France2025-07-06
1007Germany2025-07-31
1008France2025-07-09
1009Australia2025-07-11
1010Japan2025-07-07
1011India2025-07-10
1012Argentina2025-07-08
1013Argentina2025-07-30
1014India2025-07-23
1015Italy2025-07-27
1016Brazil2025-07-17
1017Japan2025-08-02
1018United Kingdom2025-07-14
1019India2025-07-05
1020Canada2025-07-31
1021Japan2025-07-23
1022Canada2025-07-30
1023Spain2025-07-21
1024France2025-08-03
1025Russia2025-08-01
1026Argentina2025-07-08
1027Canada2025-07-27
1028Japan2025-07-09
1029France2025-07-15
1030Germany2025-07-24
1031Spain2025-07-29
1032Spain2025-07-06
1033Argentina2025-07-18
1034United Kingdom2025-07-14
1035Spain2025-07-20
1036India2025-07-15
1037Italy2025-07-28
1038Germany2025-07-27
1039Russia2025-07-13
1040Russia2025-07-25
1041Argentina2025-07-12
1042Argentina2025-07-21
1043Brazil2025-07-25
1044Germany2025-07-14
1045Spain2025-08-03
1046Italy2025-07-28
1047France2025-07-13
1048Japan2025-07-12
1049Brazil2025-07-08

On-Demand Data

NameIdCountryDate
Jeanfrancois Y Slusarski1000Australia2025-07-06
Antonio I Chui1001United Kingdom2025-07-09
Greenwood E Stockham1002Brazil2025-07-27
Ashley B Marrier1003United Kingdom2025-07-22
Leon Y Vocelka1004Australia2025-07-22
Isabel G Kusko1005Spain2025-07-31
Stacey Z Caldarera1006Spain2025-07-31
Stacey Z Perin1007France2025-08-02
Murillo A Ruta1008Argentina2025-07-28
Salvatore Q Ostrosky1009India2025-07-30
Ashley M Campain1010Brazil2025-07-25
Stacey B Flosi1011Spain2025-07-19
Antonio C Stockham1012Italy2025-07-31
Smith B Flosi1013Australia2025-07-16
Arvin H Malet1014France2025-07-06
Deepesh Y Perin1015Brazil2025-07-25
Johnson U Iturbide1016Germany2025-07-13
Murillo X Malet1017Russia2025-07-15
Johnson X Tollner1018Germany2025-07-30
David V Venere1019Canada2025-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon D IturbideSpainBernardo Dominic UNQUALIFIED
Julie F PoquetteFranceXuxue Feng RENEWAL
Johnson V TollnerSpainElwin Sharvill NEGOTIATION
Murillo K GauchoBrazilIvan Magalhaes RENEWAL
Jennifer J OstroskyItalyBernardo Dominic UNQUALIFIED
Izzy K ShinkoGermanyXuxue Feng PROPOSAL
Juan S WhobreyUnited KingdomAnna Fali UNQUALIFIED
David G KolmetzGermanyXuxue Feng NEGOTIATION
Deepesh C PaprockiJapanAmy Elsner NEW
Munro N WieserCanadaAnna Fali UNQUALIFIED
Tony D TollnerItalyOnyama Limba NEGOTIATION
Jefferson W SaylorsUnited KingdomAmy Elsner PROPOSAL
Emily J MarrierSpainIvan Magalhaes NEGOTIATION
Murillo Q IturbideGermanyAmy Elsner NEGOTIATION
Isabel R RutaBrazilAnna Fali UNQUALIFIED
Chavez Y MaletIndiaAsiya Javayant QUALIFIED
Kadeem I MorascaAustraliaAmy Elsner UNQUALIFIED
Sinclair K StensethRussiaAmy Elsner UNQUALIFIED
Chavez I MaletBrazilXuxue Feng UNQUALIFIED
Claire K SchemmerItalyOnyama Limba QUALIFIED
Maisha Z SaylorsFranceIvan Magalhaes UNQUALIFIED
Jefferson D GlickCanadaAnna Fali NEGOTIATION
Octavia G KolmetzItalyAmy Elsner PROPOSAL
Stacey F KuskoSpainXuxue Feng PROPOSAL
Mujtaba F AmigonUnited KingdomStephen Shaw PROPOSAL
Adams V WieserSpainStephen Shaw NEW
Francesco U TollnerArgentinaIvan Magalhaes PROPOSAL
Jefferson F RulapaughRussiaAmy Elsner QUALIFIED
Darci C VocelkaCanadaXuxue Feng RENEWAL
Misaki R OstroskyGermanyAmy Elsner NEW
Costa N OstroskyUnited KingdomOnyama Limba NEW
Arvin V CampainFranceIvan Magalhaes NEW
Aika D FerenczJapanAmy Elsner QUALIFIED
Sinclair E MorascaBrazilAnna Fali RENEWAL
Nicolas N WieserSpainElwin Sharvill NEW
Francesco K FlosiRussiaXuxue Feng PROPOSAL
Tony N FollerItalyElwin Sharvill PROPOSAL
Emily M RoysterItalyOnyama Limba RENEWAL
Aruna E PoquetteArgentinaStephen Shaw NEGOTIATION
Johnson T FerenczJapanAmy Elsner 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>