November Deals: Limited Coupons Available! 🎁 Claim Your Coupon

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
Aditya U CaudyIndiaStephen Shaw UNQUALIFIED
Kadeem H GarufiSpainXuxue Feng PROPOSAL
Claire S FerenczGermanyElwin Sharvill RENEWAL
Arvin R SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Juan Q FlosiAustraliaAsiya Javayant RENEWAL
Sinclair X RutaJapanOnyama Limba UNQUALIFIED
Mujtaba P FigeroaAustraliaXuxue Feng NEGOTIATION
Arvin S PerinCanadaOnyama Limba UNQUALIFIED
Salvatore E SchemmerItalyIvan Magalhaes UNQUALIFIED
Maisha H IturbideFranceAnna Fali UNQUALIFIED
Emily P GarufiArgentinaIoni Bowcher NEW
Salvatore Z CaldareraItalyIvan Magalhaes NEW
Costa O OldroydIndiaElwin Sharvill QUALIFIED
Clifford S AlbaresRussiaBernardo Dominic QUALIFIED
Izzy C GauchoAustraliaBernardo Dominic UNQUALIFIED
Jefferson C FlosiItalyAsiya Javayant QUALIFIED
Emily Y IturbideAustraliaAnna Fali RENEWAL
Jones L GauchoRussiaBernardo Dominic PROPOSAL
Leja C ButtAustraliaAnna Fali UNQUALIFIED
Emily O DoeIndiaBernardo Dominic UNQUALIFIED
Morrow G BriddickArgentinaAnna Fali NEW
Maria O SergiRussiaElwin Sharvill NEW
Deepesh M DoeBrazilXuxue Feng PROPOSAL
Izzy B StensethAustraliaAmy Elsner PROPOSAL
Izzy B WieserRussiaAsiya Javayant NEGOTIATION
Claire B VocelkaAustraliaStephen Shaw QUALIFIED
Mujtaba K BologniaSpainElwin Sharvill UNQUALIFIED
Francesco X AmigonCanadaAnna Fali UNQUALIFIED
Kadeem M AlbaresCanadaIoni Bowcher NEW
Wickens F IturbideFranceElwin Sharvill PROPOSAL
Octavia N FlosiRussiaIoni Bowcher NEGOTIATION
Darci T DilliardRussiaIoni Bowcher RENEWAL
Chavez C NickaUnited KingdomStephen Shaw NEGOTIATION
Wickens J CaudyRussiaXuxue Feng UNQUALIFIED
Leon B StockhamSpainAsiya Javayant QUALIFIED
Maisha W BriddickItalyIoni Bowcher RENEWAL
Misaki V BriddickSpainAsiya Javayant NEW
Ashley Y RulapaughFranceAnna Fali NEGOTIATION
James C TollnerFranceAsiya Javayant NEW
Munro S GarufiSpainAsiya Javayant PROPOSAL
Jennifer R InouyeItalyAnna Fali NEGOTIATION
Arvin Q FerenczAustraliaAmy Elsner QUALIFIED
Rodrigues S GlickCanadaAmy Elsner NEW
Murillo O KolmetzBrazilOnyama Limba RENEWAL
Julie K DilliardRussiaBernardo Dominic PROPOSAL
Tony Z SchemmerBrazilBernardo Dominic NEGOTIATION
Leon W TollnerItalyBernardo Dominic RENEWAL
Julie M PoquetteCanadaIoni Bowcher RENEWAL
Mayumi I NickaJapanAnna Fali UNQUALIFIED
Silvio I TollnerCanadaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Aruna S CaudyBrazilIoni Bowcher QUALIFIED
Jones U OldroydArgentinaOnyama Limba NEGOTIATION
David E WaycottRussiaAmy Elsner UNQUALIFIED
Izzy I GillianSpainIoni Bowcher NEGOTIATION
Leon R BologniaGermanyAmy Elsner QUALIFIED
Adams J PerinAustraliaIoni Bowcher QUALIFIED
Silvio R BologniaUnited KingdomAsiya Javayant RENEWAL
Jones D VocelkaArgentinaIvan Magalhaes RENEWAL
Aika Y SlusarskiFranceOnyama Limba RENEWAL
Chavez I FerenczIndiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David V GarufiJapan2026-10-05Truhlar And Truhlar Attys NEW29Amy Elsner
1001Murillo U FlosiGermany2026-10-27Commercial Press NEGOTIATION57Ivan Magalhaes
1002Deepesh G ButtAustralia2026-10-06Truhlar And Truhlar Attys QUALIFIED22Anna Fali
1003Isabel D StockhamJapan2026-10-23Rousseaux, Michael Esq PROPOSAL16Asiya Javayant
1004Julie K RutaUnited Kingdom2026-10-06Benton, John B Jr NEW94Elwin Sharvill
1005Darci P NickaFrance2026-10-14Morlong Associates UNQUALIFIED9Stephen Shaw
1006Maria P StockhamGermany2026-10-13Chapman, Ross E Esq QUALIFIED95Onyama Limba
1007Alejandro R PaprockiSpain2026-10-19Chapman, Ross E Esq UNQUALIFIED9Xuxue Feng
1008Johnson A FollerItaly2026-10-21Feiner Bros PROPOSAL11Amy Elsner
1009Juan C SaylorsArgentina2026-10-13Buckley Miller Wright NEW82Onyama Limba
1010Leon Q SlusarskiCanada2026-10-31Chemel, James L Cpa RENEWAL71Xuxue Feng
1011Silvio A DarakjyArgentina2026-10-17Dorl, James J Esq PROPOSAL91Onyama Limba
1012Leja K RutaFrance2026-10-11Truhlar And Truhlar Attys NEGOTIATION84Xuxue Feng
1013Antonio G VenereRussia2026-10-26Commercial Press UNQUALIFIED21Onyama Limba
1014Johnson N MaletSpain2026-10-17Feiner Bros NEGOTIATION59Bernardo Dominic
1015Mujtaba M KolmetzFrance2026-10-30Feiner Bros PROPOSAL86Xuxue Feng
1016Morrow Q ShinkoAustralia2026-10-23Morlong Associates NEGOTIATION20Anna Fali
1017Antonio L SchemmerUnited Kingdom2026-10-14Rousseaux, Michael Esq QUALIFIED41Amy Elsner
1018Adams N FlosiGermany2026-10-30Buckley Miller Wright PROPOSAL32Ioni Bowcher
1019Leon G DarakjyRussia2026-10-15Chemel, James L Cpa NEGOTIATION39Xuxue Feng
1020Francesco B PerinJapan2026-10-29Commercial Press UNQUALIFIED53Amy Elsner
1021Mayumi P MaletRussia2026-10-30Rousseaux, Michael Esq QUALIFIED50Xuxue Feng
1022Aika U RulapaughAustralia2026-10-24Chapman, Ross E Esq NEGOTIATION51Ioni Bowcher
1023David D TollnerFrance2026-10-20Chemel, James L Cpa NEW46Ioni Bowcher
1024Sinclair J RoysterJapan2026-10-25Morlong Associates UNQUALIFIED99Anna Fali
1025David H ChuiSpain2026-10-05Morlong Associates NEW33Ivan Magalhaes
1026Chavez Q RulapaughIndia2026-10-05King, Christopher A Esq UNQUALIFIED46Elwin Sharvill
1027Isabel X NickaAustralia2026-10-24Benton, John B Jr PROPOSAL73Asiya Javayant
1028Deepesh N MorascaItaly2026-11-01Morlong Associates NEGOTIATION38Stephen Shaw
1029Julie K StensethFrance2026-10-21King, Christopher A Esq NEGOTIATION7Onyama Limba
1030Juan H TollnerJapan2026-10-15Rangoni Of Florence PROPOSAL43Stephen Shaw
1031Darci M RutaAustralia2026-10-28Benton, John B Jr RENEWAL39Elwin Sharvill
1032Ricardo V MorascaIndia2026-10-10Chanay, Jeffrey A Esq RENEWAL8Xuxue Feng
1033Ashley E VocelkaBrazil2026-10-17Morlong Associates QUALIFIED19Asiya Javayant
1034Ashley M BowleyAustralia2026-10-23Feiner Bros PROPOSAL20Asiya Javayant
1035Sinclair J StockhamItaly2026-10-27Chapman, Ross E Esq PROPOSAL14Stephen Shaw
1036Faith H GillianAustralia2026-10-16Rousseaux, Michael Esq PROPOSAL75Xuxue Feng
1037Ricardo S PoquetteAustralia2026-11-02Feltz Printing Service NEW74Onyama Limba
1038Silvio V BriddickCanada2026-10-18Truhlar And Truhlar Attys QUALIFIED76Onyama Limba
1039Antonio B CampainIndia2026-10-04Feiner Bros RENEWAL48Asiya Javayant
1040Tony U MarrierGermany2026-10-26Truhlar And Truhlar Attys RENEWAL34Amy Elsner
1041Salvatore V ChuiRussia2026-10-26Rousseaux, Michael Esq UNQUALIFIED92Ioni Bowcher
1042Arvin M VocelkaGermany2026-10-15Rangoni Of Florence NEW51Asiya Javayant
1043Izzy M ChuiBrazil2026-10-13Commercial Press RENEWAL49Onyama Limba
1044James S GauchoUnited Kingdom2026-10-05King, Christopher A Esq PROPOSAL42Elwin Sharvill
1045Aruna E FigeroaSpain2026-11-01King, Christopher A Esq UNQUALIFIED14Elwin Sharvill
1046David N MaletJapan2026-11-01Chanay, Jeffrey A Esq NEW11Ioni Bowcher
1047Antonio B VocelkaBrazil2026-10-16Rangoni Of Florence UNQUALIFIED83Xuxue Feng
1048Ricardo A DilliardSpain2026-10-25Rangoni Of Florence PROPOSAL48Onyama Limba
1049Antonio C GlickBrazil2026-10-06Morlong Associates RENEWAL62Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar O OstroskySpainIoni Bowcher QUALIFIED
Aika G VocelkaRussiaIvan Magalhaes QUALIFIED
Izzy W RutaIndiaAnna Fali RENEWAL
James D OstroskyGermanyOnyama Limba QUALIFIED
Costa Y CaudyItalyIvan Magalhaes NEW
Jefferson Z BowleyCanadaBernardo Dominic QUALIFIED
Greenwood B DoeItalyIoni Bowcher RENEWAL
Munro N DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues G FigeroaJapanAsiya Javayant UNQUALIFIED
Ashley W SlusarskiBrazilIoni Bowcher UNQUALIFIED
Jeanfrancois F ShinkoAustraliaIvan Magalhaes QUALIFIED
Kaitlin T NestleGermanyElwin Sharvill RENEWAL
Darci B OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Munro B PaprockiBrazilAmy Elsner QUALIFIED
Aditya G ShinkoSpainAnna Fali UNQUALIFIED
Greenwood Y CaldareraUnited KingdomStephen Shaw PROPOSAL
Silvio R MaletFranceBernardo Dominic UNQUALIFIED
Sinclair W WhobreySpainStephen Shaw QUALIFIED
Deepesh B OldroydIndiaXuxue Feng UNQUALIFIED
Aika D MarrierCanadaAsiya Javayant NEGOTIATION
Silvio H KuskoArgentinaAnna Fali RENEWAL
Leja M NestleUnited KingdomStephen Shaw NEGOTIATION
Alejandro W MarrierJapanXuxue Feng PROPOSAL
Alejandro L FigeroaJapanIoni Bowcher RENEWAL
Maisha Z SergiCanadaIvan Magalhaes UNQUALIFIED
Claire U OstroskyRussiaIoni Bowcher RENEWAL
Julie B WieserAustraliaIvan Magalhaes NEGOTIATION
Adams M SlusarskiJapanOnyama Limba QUALIFIED
Mayumi G BowleyItalyIoni Bowcher NEW
Aika U FollerSpainIvan Magalhaes RENEWAL
Cody J SchemmerJapanElwin Sharvill QUALIFIED
Clifford F PoquetteCanadaAmy Elsner UNQUALIFIED
Nicolas O TollnerJapanElwin Sharvill QUALIFIED
Ricardo J InouyeJapanIvan Magalhaes PROPOSAL
Chavez B KuskoJapanIoni Bowcher RENEWAL
Silvio W VenereItalyOnyama Limba RENEWAL
Claire D FerenczArgentinaElwin Sharvill NEGOTIATION
Maisha W StensethBrazilBernardo Dominic NEW
Isabel A BriddickRussiaXuxue Feng RENEWAL
Nicolas D FlosiCanadaStephen Shaw UNQUALIFIED
Wickens N FlosiAustraliaElwin Sharvill NEW
Faith I KuskoAustraliaIvan Magalhaes RENEWAL
Misaki R InouyeRussiaStephen Shaw NEGOTIATION
Aruna P PaprockiFranceAsiya Javayant PROPOSAL
Clifford Y InouyeFranceStephen Shaw NEW
Kaitlin F FigeroaGermanyIvan Magalhaes UNQUALIFIED
Morrow A DilliardSpainBernardo Dominic NEGOTIATION
Juan V RutaRussiaAnna Fali NEW
David I OstroskyIndiaIoni Bowcher NEW
Sinclair E SergiFranceAsiya Javayant NEGOTIATION
Frozen Columns
Name
Arvin Z Saylors
Smith B Garufi
Johnson W Garufi
Silvio P Vocelka
Jennifer Q Gillian
Jones J Stenseth
Ricardo P Campain
Aditya U Dilliard
Aditya Z Doe
Julie N Perin
Aditya B Perin
Izzy T Slusarski
Mujtaba R Ferencz
Aika R Foller
Mayumi N Kusko
Leja L Paprocki
Octavia V Waycott
Faith B Foller
Misaki L Butt
Costa P Malet
Stacey M Gillian
Silvio N Caudy
Jones O Flosi
Octavia T Perin
Jefferson Y Iturbide
Jones O Ferencz
Kaitlin M Malet
Octavia P Poquette
Alejandro E Schemmer
Adams L Rim
Jennifer Z Tollner
Rodrigues W Flosi
Chavez V Venere
Greenwood A Saylors
Jefferson E Campain
Emily K Caldarera
Murillo K Sergi
Leja C Bowley
Stacey I Poquette
Sinclair R Malet
Arvin A Tollner
Julie W Perin
Sinclair L Stockham
Aruna B Tollner
Silvio O Dilliard
Juan L Perin
Greenwood A Kolmetz
Maria T Caudy
Isabel S Caldarera
Tony C Nestle
IdCountryDate
1000Germany2026-10-06
1001Italy2026-10-29
1002United Kingdom2026-10-16
1003Canada2026-10-07
1004France2026-10-21
1005France2026-10-14
1006United Kingdom2026-10-05
1007Japan2026-10-12
1008Japan2026-10-25
1009Spain2026-10-08
1010Argentina2026-10-29
1011Germany2026-10-13
1012Spain2026-10-27
1013Australia2026-10-27
1014Russia2026-10-12
1015Brazil2026-10-31
1016Argentina2026-10-11
1017Italy2026-10-25
1018Canada2026-10-23
1019Italy2026-10-19
1020Argentina2026-10-07
1021France2026-11-01
1022Brazil2026-10-13
1023Russia2026-10-05
1024Germany2026-10-30
1025Spain2026-10-23
1026France2026-10-12
1027Italy2026-10-10
1028Germany2026-10-22
1029Canada2026-10-11
1030Italy2026-10-10
1031Brazil2026-10-13
1032Argentina2026-10-15
1033Italy2026-10-20
1034France2026-10-05
1035Argentina2026-11-02
1036Brazil2026-10-27
1037Japan2026-10-28
1038France2026-10-30
1039France2026-10-08
1040Spain2026-10-06
1041Japan2026-10-29
1042Spain2026-10-18
1043France2026-10-13
1044Argentina2026-10-08
1045Argentina2026-10-18
1046France2026-10-23
1047France2026-10-07
1048Canada2026-10-28
1049Argentina2026-10-13

On-Demand Data

NameIdCountryDate
Faith P Poquette1000India2026-10-04
Faith A Glick1001United Kingdom2026-10-14
Juan T Figeroa1002Russia2026-10-05
Stacey T Ruta1003Australia2026-10-31
Ashley Y Malet1004Italy2026-10-20
Chavez A Morasca1005Russia2026-11-02
Jeanfrancois Z Vocelka1006France2026-10-16
Leja G Chui1007Spain2026-10-30
Mujtaba B Caldarera1008Russia2026-11-01
Claire P Whobrey1009Spain2026-10-14
Arvin N Caldarera1010Japan2026-11-02
Darci E Vocelka1011Russia2026-10-30
Wickens Q Tollner1012India2026-10-24
Salvatore S Maclead1013United Kingdom2026-10-04
Clifford J Campain1014Brazil2026-10-30
Jefferson R Marrier1015United Kingdom2026-10-22
Julie E Venere1016Italy2026-10-17
Antonio A Venere1017Australia2026-10-19
Aika M Malet1018India2026-10-30
Stacey Y Whobrey1019United Kingdom2026-10-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa R DarakjyGermanyBernardo Dominic RENEWAL
Ashley E GlickUnited KingdomStephen Shaw QUALIFIED
Stacey Z RutaArgentinaBernardo Dominic UNQUALIFIED
James D AlbaresIndiaAsiya Javayant UNQUALIFIED
Misaki F OldroydItalyOnyama Limba NEGOTIATION
Aditya P GarufiCanadaAsiya Javayant RENEWAL
Isabel Q KuskoIndiaOnyama Limba PROPOSAL
Aruna C ButtIndiaOnyama Limba PROPOSAL
Maisha B VenereUnited KingdomStephen Shaw UNQUALIFIED
Misaki G DilliardJapanIvan Magalhaes RENEWAL
Ivar L KuskoAustraliaIoni Bowcher NEGOTIATION
Aditya G AmigonBrazilAsiya Javayant UNQUALIFIED
Silvio A AmigonIndiaAnna Fali NEW
Ashley S SlusarskiSpainAnna Fali QUALIFIED
Tony Y BowleyBrazilStephen Shaw PROPOSAL
Stacey G RoysterSpainElwin Sharvill PROPOSAL
Nicolas S FerenczSpainElwin Sharvill NEW
Chavez X SlusarskiJapanAsiya Javayant NEW
Isabel X OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Munro S BologniaItalyElwin Sharvill RENEWAL
David V MaletItalyOnyama Limba PROPOSAL
Sinclair I CaudyFranceAnna Fali NEW
Darci P InouyeAustraliaAsiya Javayant NEW
Stacey K VenereGermanyAmy Elsner PROPOSAL
Tony A WieserIndiaBernardo Dominic UNQUALIFIED
Ivar R FigeroaCanadaOnyama Limba NEGOTIATION
Jones F PoquetteAustraliaAnna Fali RENEWAL
Maria I RutaJapanXuxue Feng RENEWAL
Isabel K PerinArgentinaElwin Sharvill NEW
Juan S OldroydItalyXuxue Feng QUALIFIED
Emily U SergiSpainIoni Bowcher NEW
Jefferson G CampainRussiaAsiya Javayant QUALIFIED
Adams K ChuiAustraliaBernardo Dominic RENEWAL
Mayumi B PaprockiUnited KingdomOnyama Limba PROPOSAL
Juan B FollerItalyStephen Shaw RENEWAL
Mujtaba U RulapaughGermanyOnyama Limba PROPOSAL
Octavia W WhobreyJapanAsiya Javayant UNQUALIFIED
Salvatore Z WaycottCanadaAsiya Javayant UNQUALIFIED
Ricardo L GillianItalyIoni Bowcher UNQUALIFIED
Aruna Q CaldareraBrazilBernardo Dominic RENEWAL

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