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
Misaki A CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Emily C DilliardArgentinaOnyama Limba NEW
Alejandro Z RutaUnited KingdomAsiya Javayant NEW
Francesco F OldroydItalyOnyama Limba RENEWAL
Johnson E FerenczBrazilIoni Bowcher NEGOTIATION
Aruna L SergiFranceAsiya Javayant NEW
Nicolas W OstroskyItalyIvan Magalhaes UNQUALIFIED
Alejandro B MorascaAustraliaIoni Bowcher NEGOTIATION
Arvin I FlosiUnited KingdomBernardo Dominic PROPOSAL
Ashley R IturbideArgentinaAmy Elsner NEW
Mujtaba G DoeArgentinaStephen Shaw RENEWAL
Silvio V AlbaresItalyOnyama Limba RENEWAL
Arvin J OldroydArgentinaAsiya Javayant UNQUALIFIED
Isabel E PerinGermanyAsiya Javayant QUALIFIED
Smith G NickaArgentinaElwin Sharvill NEW
Isabel X NickaFranceAnna Fali QUALIFIED
Aditya I CaldareraArgentinaOnyama Limba RENEWAL
Misaki H SchemmerBrazilBernardo Dominic PROPOSAL
Munro F NestleGermanyBernardo Dominic NEGOTIATION
Emily A FigeroaItalyBernardo Dominic RENEWAL
Aditya F FollerArgentinaOnyama Limba NEGOTIATION
Mayumi I StensethCanadaElwin Sharvill PROPOSAL
Antonio Q MorascaFranceStephen Shaw PROPOSAL
Alejandro I StensethGermanyAnna Fali RENEWAL
Tony T RimBrazilXuxue Feng NEW
Tony Z ShinkoGermanyOnyama Limba NEW
Aruna G BowleyCanadaStephen Shaw PROPOSAL
Leja N MorascaAustraliaAmy Elsner RENEWAL
Aditya I KolmetzBrazilAnna Fali RENEWAL
Antonio D WhobreyArgentinaOnyama Limba QUALIFIED
Octavia J StensethRussiaAnna Fali NEW
Jennifer B DoeItalyIvan Magalhaes UNQUALIFIED
Chavez E RoysterItalyOnyama Limba RENEWAL
Silvio S GauchoIndiaXuxue Feng NEGOTIATION
Ricardo R BologniaJapanOnyama Limba RENEWAL
Alejandro K BriddickIndiaIvan Magalhaes PROPOSAL
Stacey U DoeGermanyIvan Magalhaes PROPOSAL
Cody E RimIndiaAnna Fali NEW
Sinclair G MaletCanadaStephen Shaw NEGOTIATION
Misaki P DarakjyItalyXuxue Feng NEGOTIATION
Misaki B KuskoSpainAnna Fali RENEWAL
Ivar F KolmetzCanadaOnyama Limba NEW
Mayumi D TollnerAustraliaXuxue Feng RENEWAL
Rodrigues Q NestleItalyAnna Fali UNQUALIFIED
Francesco W VocelkaIndiaAmy Elsner PROPOSAL
Alejandro L KolmetzCanadaOnyama Limba PROPOSAL
James L GillianGermanyStephen Shaw QUALIFIED
Greenwood C InouyeSpainAmy Elsner QUALIFIED
Rodrigues X BologniaUnited KingdomIoni Bowcher QUALIFIED
Rodrigues L FerenczArgentinaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Salvatore G OldroydBrazilXuxue Feng QUALIFIED
Aditya P WhobreyBrazilAnna Fali NEGOTIATION
Munro S NestleFranceIoni Bowcher NEW
Misaki A ShinkoAustraliaIvan Magalhaes NEGOTIATION
Munro A OstroskyItalyXuxue Feng NEW
Kaitlin I SergiJapanOnyama Limba RENEWAL
Murillo M CampainCanadaIvan Magalhaes PROPOSAL
Sinclair G PerinArgentinaStephen Shaw UNQUALIFIED
Aika U RulapaughJapanAnna Fali QUALIFIED
Jefferson G DoeGermanyOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith G WaycottArgentina2026-09-16Benton, John B Jr NEW83Stephen Shaw
1001Izzy J RulapaughAustralia2026-09-25Rangoni Of Florence NEW18Anna Fali
1002James J ButtAustralia2026-09-15Morlong Associates RENEWAL99Stephen Shaw
1003Mayumi F FerenczJapan2026-10-04Truhlar And Truhlar Attys UNQUALIFIED0Amy Elsner
1004Francesco I VenereGermany2026-09-19Morlong Associates RENEWAL98Amy Elsner
1005Arvin D FlosiFrance2026-09-16Morlong Associates NEGOTIATION7Elwin Sharvill
1006Francesco O StensethArgentina2026-09-29Buckley Miller Wright PROPOSAL26Onyama Limba
1007Sinclair B DilliardCanada2026-09-23Buckley Miller Wright RENEWAL71Anna Fali
1008Cody E WieserAustralia2026-09-20Rangoni Of Florence QUALIFIED27Anna Fali
1009Alejandro I PaprockiAustralia2026-09-23Truhlar And Truhlar Attys NEW2Xuxue Feng
1010Arvin L PaprockiItaly2026-10-03Feltz Printing Service RENEWAL76Stephen Shaw
1011Jeanfrancois G ShinkoArgentina2026-09-29Chapman, Ross E Esq QUALIFIED25Elwin Sharvill
1012David O FerenczItaly2026-10-09King, Christopher A Esq NEW65Stephen Shaw
1013Emily D StockhamAustralia2026-10-10King, Christopher A Esq NEW8Bernardo Dominic
1014Greenwood X RulapaughArgentina2026-09-18Chanay, Jeffrey A Esq RENEWAL51Ivan Magalhaes
1015Kadeem R AmigonAustralia2026-09-13Buckley Miller Wright NEGOTIATION30Ivan Magalhaes
1016Wickens A NickaUnited Kingdom2026-10-02Rangoni Of Florence PROPOSAL56Xuxue Feng
1017Stacey R ChuiSpain2026-09-30Truhlar And Truhlar Attys QUALIFIED72Anna Fali
1018Tony Z SlusarskiItaly2026-10-07King, Christopher A Esq NEGOTIATION61Amy Elsner
1019Kaitlin Y MorascaItaly2026-10-09Morlong Associates UNQUALIFIED95Asiya Javayant
1020Wickens Z NickaJapan2026-09-28Feltz Printing Service NEGOTIATION73Asiya Javayant
1021Arvin Q KolmetzArgentina2026-09-28Chapman, Ross E Esq QUALIFIED80Asiya Javayant
1022Faith O ButtSpain2026-10-07Commercial Press PROPOSAL37Ivan Magalhaes
1023Chavez B ShinkoJapan2026-10-07Feiner Bros NEW35Ivan Magalhaes
1024Julie B WaycottSpain2026-09-17Printing Dimensions NEGOTIATION7Bernardo Dominic
1025Isabel I WaycottArgentina2026-10-05King, Christopher A Esq NEW90Onyama Limba
1026Wickens S AlbaresJapan2026-10-05King, Christopher A Esq UNQUALIFIED30Elwin Sharvill
1027Ivar S WaycottBrazil2026-10-01Rangoni Of Florence UNQUALIFIED49Anna Fali
1028Deepesh D SergiFrance2026-10-03Chapman, Ross E Esq QUALIFIED4Anna Fali
1029Clifford K KolmetzJapan2026-09-22King, Christopher A Esq PROPOSAL46Ioni Bowcher
1030Ricardo L ShinkoBrazil2026-09-19Chemel, James L Cpa NEW65Anna Fali
1031Jones Q RimIndia2026-09-27King, Christopher A Esq NEW96Ioni Bowcher
1032Smith O DoeAustralia2026-09-29Rousseaux, Michael Esq QUALIFIED40Ioni Bowcher
1033Ricardo O StockhamFrance2026-09-15King, Christopher A Esq UNQUALIFIED0Amy Elsner
1034Kadeem Q AlbaresSpain2026-09-26Printing Dimensions NEGOTIATION54Elwin Sharvill
1035Darci T FollerSpain2026-10-04Dorl, James J Esq QUALIFIED52Elwin Sharvill
1036Mayumi L SlusarskiFrance2026-09-19Buckley Miller Wright UNQUALIFIED12Asiya Javayant
1037Costa K MorascaBrazil2026-09-28Dorl, James J Esq NEGOTIATION76Elwin Sharvill
1038Murillo M WieserIndia2026-10-01Commercial Press UNQUALIFIED32Elwin Sharvill
1039Leja J BowleyAustralia2026-09-24King, Christopher A Esq PROPOSAL62Elwin Sharvill
1040Ricardo E WaycottCanada2026-09-30Commercial Press NEGOTIATION5Anna Fali
1041Nicolas L MorascaFrance2026-09-14Commercial Press NEGOTIATION74Asiya Javayant
1042Maria J SlusarskiSpain2026-09-11Printing Dimensions PROPOSAL19Bernardo Dominic
1043Octavia W StockhamArgentina2026-09-11Rousseaux, Michael Esq QUALIFIED27Asiya Javayant
1044Arvin D NickaIndia2026-10-10Feltz Printing Service RENEWAL65Anna Fali
1045Nicolas T DilliardCanada2026-10-08Rousseaux, Michael Esq QUALIFIED97Anna Fali
1046Kaitlin X BriddickAustralia2026-10-09Commercial Press QUALIFIED49Asiya Javayant
1047Silvio B VocelkaUnited Kingdom2026-10-10Rangoni Of Florence QUALIFIED59Ivan Magalhaes
1048Francesco W PaprockiArgentina2026-10-01Printing Dimensions UNQUALIFIED79Xuxue Feng
1049David D PoquetteFrance2026-10-07Benton, John B Jr NEGOTIATION56Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Murillo Q SaylorsSpainAsiya Javayant NEGOTIATION
Sinclair S WieserAustraliaAnna Fali RENEWAL
Leon F MaletUnited KingdomIvan Magalhaes PROPOSAL
Greenwood Z RutaItalyIoni Bowcher NEGOTIATION
David P ChuiBrazilAnna Fali RENEWAL
Misaki Z RulapaughBrazilAsiya Javayant UNQUALIFIED
Johnson O FigeroaArgentinaIoni Bowcher NEGOTIATION
Aditya W DilliardItalyIvan Magalhaes UNQUALIFIED
Kaitlin R ShinkoAustraliaStephen Shaw PROPOSAL
Silvio G CampainSpainOnyama Limba UNQUALIFIED
Costa H GillianArgentinaBernardo Dominic QUALIFIED
Murillo P GlickUnited KingdomAsiya Javayant RENEWAL
Leon Y FollerFranceXuxue Feng UNQUALIFIED
Ricardo W ButtArgentinaIvan Magalhaes NEGOTIATION
Deepesh J OstroskyGermanyIoni Bowcher UNQUALIFIED
Misaki P InouyeJapanIoni Bowcher NEW
Johnson O GauchoFranceAmy Elsner QUALIFIED
Kaitlin L AlbaresGermanyAmy Elsner NEW
Isabel C WhobreyBrazilXuxue Feng PROPOSAL
Costa P PerinIndiaAsiya Javayant UNQUALIFIED
Ashley S PerinSpainIvan Magalhaes RENEWAL
Maisha A CaudyAustraliaIoni Bowcher PROPOSAL
Jennifer H FollerCanadaIvan Magalhaes UNQUALIFIED
Izzy F SchemmerItalyBernardo Dominic NEW
Maisha F FollerSpainAnna Fali UNQUALIFIED
Isabel O FollerGermanyIoni Bowcher RENEWAL
Octavia D OstroskyCanadaXuxue Feng NEGOTIATION
Costa I MaletAustraliaXuxue Feng UNQUALIFIED
Costa Y VenereFranceAsiya Javayant NEW
Mayumi H StensethGermanyElwin Sharvill UNQUALIFIED
Ashley P KolmetzFranceAnna Fali UNQUALIFIED
James G CaldareraArgentinaStephen Shaw QUALIFIED
Jennifer B BriddickCanadaIoni Bowcher NEGOTIATION
Misaki L MorascaFranceAnna Fali NEW
Mujtaba X StockhamAustraliaOnyama Limba RENEWAL
Ricardo P SergiFranceAnna Fali NEGOTIATION
Aika T AmigonIndiaIoni Bowcher NEGOTIATION
Antonio C AlbaresBrazilStephen Shaw RENEWAL
Clifford C MacleadGermanyElwin Sharvill UNQUALIFIED
Darci I ShinkoArgentinaIoni Bowcher RENEWAL
Maisha U FollerJapanElwin Sharvill RENEWAL
Mayumi G CaldareraCanadaAsiya Javayant NEW
Chavez R DilliardJapanAnna Fali UNQUALIFIED
Chavez E GlickCanadaXuxue Feng NEW
Mayumi M BowleyFranceXuxue Feng NEW
Aika Y BowleyAustraliaAsiya Javayant UNQUALIFIED
Francesco L AlbaresRussiaAsiya Javayant UNQUALIFIED
Jennifer P MaletIndiaIvan Magalhaes RENEWAL
Ricardo F ButtRussiaElwin Sharvill RENEWAL
Ricardo X ButtItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Tony P Poquette
Claire B Dilliard
Murillo A Bowley
Smith Z Paprocki
Salvatore L Ruta
Greenwood C Bolognia
David N Sergi
Costa W Bowley
James R Gillian
Leja Y Paprocki
Tony T Rulapaugh
Arvin F Ferencz
Antonio I Iturbide
Arvin G Wieser
Alejandro D Rim
Jefferson U Saylors
Izzy B Caudy
Jones U Rulapaugh
Arvin F Schemmer
Aditya E Briddick
Jennifer P Foller
James E Kolmetz
Aditya I Malet
Wickens O Garufi
Stacey F Stockham
Silvio K Rim
Mujtaba H Dilliard
Antonio L Waycott
Ricardo L Gaucho
Aika O Tollner
Leon P Gillian
Sinclair Q Doe
Jennifer F Chui
Kadeem V Gaucho
Silvio S Schemmer
Salvatore P Caldarera
Antonio Z Rim
Alejandro M Malet
Leon D Albares
Juan I Kolmetz
Maisha X Foller
Julie K Ruta
Francesco S Saylors
Greenwood R Butt
Deepesh I Butt
Costa X Caudy
Greenwood G Butt
Arvin N Foller
Emily X Garufi
Smith V Wieser
IdCountryDate
1000Canada2026-09-30
1001Spain2026-09-29
1002Argentina2026-09-17
1003Spain2026-09-15
1004Brazil2026-10-09
1005Canada2026-10-02
1006Australia2026-09-27
1007France2026-10-02
1008Russia2026-10-04
1009Russia2026-10-08
1010Argentina2026-10-05
1011Italy2026-10-09
1012Brazil2026-09-28
1013France2026-09-22
1014France2026-10-02
1015Spain2026-09-12
1016Brazil2026-09-17
1017India2026-09-27
1018Italy2026-09-30
1019France2026-09-14
1020Germany2026-09-15
1021Italy2026-09-29
1022India2026-09-23
1023Canada2026-09-19
1024Italy2026-09-19
1025United Kingdom2026-09-18
1026India2026-09-23
1027India2026-10-03
1028Argentina2026-10-02
1029Brazil2026-10-08
1030Australia2026-09-28
1031Russia2026-09-16
1032Spain2026-09-11
1033Japan2026-09-25
1034Australia2026-10-03
1035Spain2026-09-18
1036Italy2026-09-17
1037United Kingdom2026-10-08
1038Canada2026-09-30
1039Russia2026-10-10
1040Italy2026-10-05
1041Canada2026-10-06
1042Germany2026-10-07
1043Germany2026-09-19
1044France2026-09-11
1045Russia2026-09-12
1046United Kingdom2026-09-17
1047Russia2026-09-24
1048Brazil2026-09-22
1049Spain2026-09-30

On-Demand Data

NameIdCountryDate
Mayumi T Perin1000Canada2026-09-18
Jennifer I Chui1001Canada2026-09-26
Aruna F Bolognia1002Italy2026-10-10
Stacey H Chui1003Brazil2026-09-13
Maisha O Iturbide1004Brazil2026-09-30
Arvin M Iturbide1005Italy2026-09-22
Mujtaba D Foller1006India2026-10-06
Jefferson S Foller1007Canada2026-09-30
Johnson E Caldarera1008United Kingdom2026-09-18
Mujtaba M Butt1009Brazil2026-09-22
Munro S Rim1010Canada2026-09-30
Aruna E Malet1011Italy2026-09-22
Emily K Whobrey1012France2026-09-20
Morrow X Shinko1013Russia2026-10-09
Izzy V Wieser1014Australia2026-09-16
Claire R Venere1015India2026-09-23
Chavez Q Flosi1016Australia2026-09-11
Mujtaba F Malet1017Russia2026-10-05
Francesco O Gaucho1018France2026-09-26
Arvin L Campain1019Russia2026-09-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams B OstroskyArgentinaIoni Bowcher NEW
Izzy G NestleRussiaBernardo Dominic QUALIFIED
Greenwood E NestleJapanIoni Bowcher UNQUALIFIED
Ricardo J AlbaresArgentinaAnna Fali UNQUALIFIED
Silvio D MacleadItalyStephen Shaw RENEWAL
Ashley Z CaudyIndiaOnyama Limba PROPOSAL
Kaitlin X MarrierFranceBernardo Dominic QUALIFIED
Leja Q FlosiAustraliaOnyama Limba RENEWAL
Ashley T WhobreyAustraliaAsiya Javayant NEGOTIATION
Alejandro V RoysterItalyAnna Fali QUALIFIED
Silvio R SlusarskiJapanAnna Fali RENEWAL
Octavia X VocelkaAustraliaAmy Elsner QUALIFIED
Kaitlin R KuskoArgentinaIvan Magalhaes UNQUALIFIED
Deepesh U MaletSpainXuxue Feng QUALIFIED
Kaitlin Q KolmetzGermanyIvan Magalhaes QUALIFIED
Silvio E AlbaresJapanIoni Bowcher NEGOTIATION
Ricardo Y WaycottJapanAmy Elsner RENEWAL
Wickens Q MarrierGermanyIoni Bowcher NEW
Juan P RulapaughGermanyAmy Elsner PROPOSAL
Munro D KuskoBrazilElwin Sharvill NEW
Sinclair V ChuiItalyIoni Bowcher QUALIFIED
Morrow E FerenczFranceIvan Magalhaes UNQUALIFIED
Octavia G SaylorsCanadaAsiya Javayant QUALIFIED
Sinclair J CaldareraFranceIoni Bowcher UNQUALIFIED
Isabel P ChuiItalyBernardo Dominic QUALIFIED
Alejandro R OstroskyJapanIvan Magalhaes NEW
Izzy Z WaycottJapanIoni Bowcher UNQUALIFIED
Antonio W KolmetzIndiaAmy Elsner UNQUALIFIED
Costa W VenereGermanyXuxue Feng NEGOTIATION
Mayumi M DarakjyItalyIvan Magalhaes QUALIFIED
Nicolas Q ButtAustraliaXuxue Feng NEGOTIATION
Maisha Z IturbideItalyIoni Bowcher NEW
Alejandro G AmigonIndiaElwin Sharvill NEW
Smith U AlbaresJapanAmy Elsner RENEWAL
Aika V WieserSpainXuxue Feng PROPOSAL
Ivar Y IturbideGermanyIvan Magalhaes NEGOTIATION
Aruna Q RulapaughSpainXuxue Feng UNQUALIFIED
Jeanfrancois P BowleyCanadaXuxue Feng RENEWAL
Alejandro D CaudyArgentinaAsiya Javayant UNQUALIFIED
Adams S MarrierCanadaStephen Shaw PROPOSAL

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