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
Octavia P ChuiAustraliaElwin Sharvill PROPOSAL
Costa G DilliardIndiaIvan Magalhaes QUALIFIED
Deepesh U CaudyFranceAnna Fali QUALIFIED
Clifford Y IturbideIndiaOnyama Limba QUALIFIED
Mujtaba O CaudyFranceAnna Fali NEW
Stacey G CampainItalyStephen Shaw UNQUALIFIED
Ashley U BowleyJapanXuxue Feng PROPOSAL
Emily A WhobreySpainAsiya Javayant NEW
Jennifer Z BologniaCanadaOnyama Limba QUALIFIED
Juan J DilliardFranceAnna Fali NEW
Salvatore H PaprockiAustraliaBernardo Dominic UNQUALIFIED
Jefferson G IturbideCanadaBernardo Dominic QUALIFIED
Faith L WieserUnited KingdomAsiya Javayant RENEWAL
Misaki S MorascaItalyElwin Sharvill QUALIFIED
Jefferson X AlbaresIndiaXuxue Feng QUALIFIED
Deepesh U AmigonArgentinaElwin Sharvill UNQUALIFIED
Nicolas L AlbaresGermanyElwin Sharvill UNQUALIFIED
James I StockhamGermanyIvan Magalhaes RENEWAL
Izzy F AlbaresFranceIoni Bowcher PROPOSAL
David P IturbideItalyAmy Elsner PROPOSAL
Wickens Y OldroydSpainBernardo Dominic RENEWAL
David U KuskoSpainIoni Bowcher PROPOSAL
Smith X FollerJapanStephen Shaw PROPOSAL
Alejandro V VenereCanadaAnna Fali PROPOSAL
Aruna Y GarufiCanadaElwin Sharvill UNQUALIFIED
Chavez S CampainAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba S OstroskyAustraliaXuxue Feng QUALIFIED
Jennifer H BowleyUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin E NestleJapanIvan Magalhaes PROPOSAL
Ivar Z WieserBrazilXuxue Feng RENEWAL
Darci E WieserCanadaAnna Fali QUALIFIED
Cody N NestleRussiaAsiya Javayant PROPOSAL
Darci P ChuiArgentinaElwin Sharvill UNQUALIFIED
Kadeem G MacleadJapanBernardo Dominic QUALIFIED
Tony T KolmetzItalyElwin Sharvill QUALIFIED
Murillo B WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Tony D IturbideRussiaAsiya Javayant NEW
Mujtaba Z SchemmerArgentinaStephen Shaw NEGOTIATION
Antonio M KuskoSpainOnyama Limba QUALIFIED
David O MacleadIndiaAnna Fali QUALIFIED
Rodrigues U FlosiFranceIoni Bowcher NEGOTIATION
Rodrigues Z RutaFranceBernardo Dominic NEGOTIATION
Emily G ButtFranceOnyama Limba UNQUALIFIED
Kaitlin N NestleArgentinaXuxue Feng RENEWAL
Adams F DarakjyBrazilBernardo Dominic NEW
Francesco F KuskoFranceBernardo Dominic PROPOSAL
Leja L BologniaUnited KingdomAmy Elsner NEW
Kadeem A ButtCanadaAsiya Javayant NEW
Murillo U ChuiItalyAsiya Javayant UNQUALIFIED
Jeanfrancois E NickaCanadaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith F CaudyBrazilAmy Elsner RENEWAL
Greenwood L KuskoGermanyElwin Sharvill QUALIFIED
Aditya R WaycottIndiaBernardo Dominic UNQUALIFIED
Arvin X AlbaresCanadaXuxue Feng NEW
Leon H VocelkaArgentinaAnna Fali QUALIFIED
Deepesh E CaudyCanadaElwin Sharvill NEW
Costa Q RimBrazilAsiya Javayant UNQUALIFIED
Arvin R ButtJapanBernardo Dominic NEW
Antonio X MacleadArgentinaXuxue Feng QUALIFIED
Deepesh G MorascaGermanyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith T PaprockiSpain2026-10-02Dorl, James J Esq NEGOTIATION76Xuxue Feng
1001Jefferson N WhobreyRussia2026-09-30Rangoni Of Florence NEW52Onyama Limba
1002Kadeem I RoysterArgentina2026-09-19Printing Dimensions NEW67Asiya Javayant
1003Sinclair K BologniaUnited Kingdom2026-09-24King, Christopher A Esq UNQUALIFIED85Anna Fali
1004Julie D BowleyGermany2026-10-01Chemel, James L Cpa NEW56Onyama Limba
1005Ricardo D RutaSpain2026-10-14Benton, John B Jr QUALIFIED12Onyama Limba
1006Aika Z IturbideSpain2026-09-30Truhlar And Truhlar Attys NEGOTIATION32Xuxue Feng
1007Nicolas V WaycottJapan2026-09-21Chemel, James L Cpa NEW71Asiya Javayant
1008Smith X RoysterJapan2026-09-25Feiner Bros RENEWAL84Elwin Sharvill
1009Nicolas R TollnerFrance2026-09-24Dorl, James J Esq PROPOSAL85Bernardo Dominic
1010Salvatore V PerinAustralia2026-10-13Chapman, Ross E Esq NEGOTIATION87Bernardo Dominic
1011Tony S PaprockiSpain2026-10-06King, Christopher A Esq NEW40Asiya Javayant
1012Greenwood P PoquetteJapan2026-09-19Benton, John B Jr QUALIFIED56Anna Fali
1013Leja F GillianItaly2026-10-11Commercial Press UNQUALIFIED74Bernardo Dominic
1014Kadeem S FerenczJapan2026-10-13Dorl, James J Esq RENEWAL44Stephen Shaw
1015Kadeem N CaudyGermany2026-09-28Chemel, James L Cpa NEW90Elwin Sharvill
1016Aditya B NickaGermany2026-10-07Benton, John B Jr PROPOSAL15Asiya Javayant
1017Clifford T SergiArgentina2026-10-04Commercial Press PROPOSAL42Onyama Limba
1018Faith Q PerinIndia2026-09-25Chanay, Jeffrey A Esq PROPOSAL31Ivan Magalhaes
1019Jones L CampainItaly2026-09-21Chemel, James L Cpa UNQUALIFIED10Anna Fali
1020Arvin M FlosiGermany2026-09-21Rangoni Of Florence NEW95Xuxue Feng
1021Deepesh C TollnerCanada2026-10-12Feltz Printing Service RENEWAL0Anna Fali
1022Rodrigues V FlosiFrance2026-09-16Chapman, Ross E Esq PROPOSAL8Onyama Limba
1023Aika W OstroskyItaly2026-09-21Feiner Bros UNQUALIFIED33Bernardo Dominic
1024Maisha L OldroydRussia2026-09-30Morlong Associates RENEWAL40Elwin Sharvill
1025Ivar P FerenczRussia2026-10-14Dorl, James J Esq NEW9Anna Fali
1026Jones V SlusarskiIndia2026-09-23Morlong Associates UNQUALIFIED44Ioni Bowcher
1027Jeanfrancois D WieserJapan2026-10-01Printing Dimensions QUALIFIED33Onyama Limba
1028Francesco Y StensethFrance2026-10-08King, Christopher A Esq NEGOTIATION77Amy Elsner
1029Julie L RimRussia2026-10-09King, Christopher A Esq NEW11Bernardo Dominic
1030Johnson B DarakjyFrance2026-09-23Chapman, Ross E Esq NEW74Bernardo Dominic
1031Silvio Q GarufiBrazil2026-09-27Dorl, James J Esq RENEWAL73Ivan Magalhaes
1032Ivar P IturbideJapan2026-10-08Chanay, Jeffrey A Esq UNQUALIFIED49Anna Fali
1033Arvin X ButtArgentina2026-09-19Printing Dimensions PROPOSAL24Amy Elsner
1034Smith I CaudyItaly2026-10-04Buckley Miller Wright RENEWAL81Ioni Bowcher
1035Jones K DarakjyCanada2026-09-25Chapman, Ross E Esq QUALIFIED78Amy Elsner
1036Adams P WhobreyItaly2026-09-18Benton, John B Jr PROPOSAL48Xuxue Feng
1037Silvio A TollnerArgentina2026-10-06Commercial Press NEW34Elwin Sharvill
1038Faith L SlusarskiIndia2026-09-19Morlong Associates NEW55Ivan Magalhaes
1039Ivar S AlbaresGermany2026-09-17Chapman, Ross E Esq NEGOTIATION41Stephen Shaw
1040Misaki B BologniaUnited Kingdom2026-09-29Feiner Bros RENEWAL71Anna Fali
1041Jennifer Y KolmetzGermany2026-10-15Chapman, Ross E Esq NEW0Ivan Magalhaes
1042Ashley V GlickIndia2026-09-20King, Christopher A Esq PROPOSAL33Amy Elsner
1043Aditya N OstroskyItaly2026-09-26Chemel, James L Cpa RENEWAL56Xuxue Feng
1044Kaitlin D AlbaresIndia2026-09-29Chanay, Jeffrey A Esq QUALIFIED86Stephen Shaw
1045Juan A StockhamUnited Kingdom2026-10-14King, Christopher A Esq QUALIFIED39Elwin Sharvill
1046Wickens T NestleSpain2026-10-01Feltz Printing Service NEGOTIATION79Bernardo Dominic
1047Munro C FerenczItaly2026-10-10Benton, John B Jr QUALIFIED67Ivan Magalhaes
1048Sinclair O StensethRussia2026-10-01Chapman, Ross E Esq NEW61Onyama Limba
1049Julie L SlusarskiRussia2026-09-22Benton, John B Jr QUALIFIED66Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja N DoeItalyStephen Shaw RENEWAL
Maisha F KolmetzBrazilBernardo Dominic UNQUALIFIED
Tony K CampainJapanIoni Bowcher PROPOSAL
Maria D PerinArgentinaAsiya Javayant NEW
Claire V RulapaughRussiaAsiya Javayant RENEWAL
Izzy G IturbideFranceElwin Sharvill NEW
Wickens I DilliardJapanAmy Elsner NEW
Maria S MaletAustraliaStephen Shaw NEGOTIATION
Cody J RimUnited KingdomAmy Elsner PROPOSAL
Wickens Y DilliardRussiaAmy Elsner RENEWAL
Misaki Y KuskoArgentinaOnyama Limba NEGOTIATION
Aika C GarufiCanadaIvan Magalhaes NEW
Aditya H PoquetteGermanyAnna Fali QUALIFIED
Ivar J WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Octavia G CampainRussiaAsiya Javayant PROPOSAL
Costa F MaletFranceBernardo Dominic RENEWAL
Arvin Z MorascaJapanIvan Magalhaes PROPOSAL
Jeanfrancois G PaprockiBrazilIoni Bowcher QUALIFIED
Juan Q KuskoSpainAsiya Javayant PROPOSAL
Murillo X WieserItalyAnna Fali QUALIFIED
Antonio Y NickaItalyXuxue Feng RENEWAL
Alejandro C GlickBrazilOnyama Limba PROPOSAL
Wickens Z BowleyItalyAsiya Javayant QUALIFIED
Sinclair G GlickSpainAnna Fali UNQUALIFIED
Wickens C RutaFranceAsiya Javayant NEW
Sinclair O GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Chavez A InouyeItalyAnna Fali PROPOSAL
Ivar D InouyeIndiaBernardo Dominic QUALIFIED
Wickens L IturbideIndiaIvan Magalhaes NEW
Silvio Q ShinkoRussiaOnyama Limba UNQUALIFIED
Francesco P PoquetteCanadaOnyama Limba RENEWAL
David N RimGermanyBernardo Dominic NEW
Aika B TollnerGermanyXuxue Feng QUALIFIED
Smith T WaycottItalyBernardo Dominic PROPOSAL
Aditya J OstroskyFranceAsiya Javayant NEW
Ivar P FlosiBrazilAmy Elsner QUALIFIED
Rodrigues V StensethCanadaOnyama Limba RENEWAL
Francesco H MaletSpainElwin Sharvill PROPOSAL
Tony T AlbaresItalyAsiya Javayant PROPOSAL
Nicolas D GarufiBrazilIoni Bowcher UNQUALIFIED
Maria E OldroydIndiaStephen Shaw UNQUALIFIED
Faith L CaudyCanadaAnna Fali NEW
Tony N WaycottRussiaIoni Bowcher QUALIFIED
Izzy M OstroskyGermanyIvan Magalhaes NEW
Clifford F BowleyFranceElwin Sharvill UNQUALIFIED
Mujtaba J VocelkaJapanXuxue Feng UNQUALIFIED
Munro E NestleFranceIoni Bowcher RENEWAL
Julie K GlickCanadaOnyama Limba NEW
Sinclair I OstroskyJapanAmy Elsner NEGOTIATION
Wickens X IturbideArgentinaBernardo Dominic PROPOSAL
Frozen Columns
Name
Jennifer B Royster
Darci E Poquette
Francesco U Waycott
Tony S Caudy
Wickens Y Gaucho
Antonio B Morasca
Jeanfrancois T Darakjy
Aruna T Ferencz
Aika C Bowley
Leon B Morasca
Murillo P Oldroyd
Deepesh V Waycott
Julie S Doe
Deepesh H Amigon
Wickens T Bowley
Kaitlin T Foller
David D Royster
Mujtaba V Glick
Deepesh W Royster
Octavia I Briddick
Chavez Z Tollner
Wickens R Vocelka
Aditya Z Nestle
Antonio I Kusko
Claire P Shinko
Wickens O Rulapaugh
Jefferson U Morasca
Kaitlin Q Gillian
Greenwood S Schemmer
Emily S Doe
Aika T Iturbide
Murillo F Iturbide
Emily L Morasca
Darci R Ferencz
Emily O Rim
Tony O Poquette
Stacey L Malet
Ricardo X Royster
Sinclair U Rulapaugh
James S Garufi
Rodrigues T Nicka
Deepesh E Ruta
Jeanfrancois K Kolmetz
Misaki O Stenseth
Stacey F Doe
Jones A Paprocki
Jeanfrancois R Darakjy
Stacey L Bowley
Francesco E Bolognia
Misaki B Shinko
IdCountryDate
1000Spain2026-09-18
1001Spain2026-09-22
1002Spain2026-09-27
1003France2026-09-22
1004Argentina2026-10-03
1005India2026-09-18
1006India2026-09-23
1007Argentina2026-10-02
1008Canada2026-10-05
1009France2026-09-26
1010India2026-10-02
1011France2026-10-08
1012France2026-10-14
1013France2026-09-16
1014Japan2026-10-11
1015Russia2026-09-19
1016United Kingdom2026-09-29
1017Spain2026-10-10
1018Canada2026-10-01
1019India2026-10-14
1020Italy2026-09-25
1021Russia2026-10-02
1022Germany2026-10-05
1023Germany2026-09-18
1024France2026-09-17
1025Japan2026-09-25
1026Japan2026-10-08
1027Japan2026-09-16
1028Canada2026-10-07
1029Australia2026-09-20
1030Russia2026-10-08
1031Germany2026-10-04
1032Russia2026-09-23
1033India2026-10-01
1034Australia2026-09-29
1035France2026-10-13
1036Argentina2026-10-12
1037Spain2026-10-14
1038Germany2026-09-30
1039Spain2026-09-17
1040Spain2026-10-09
1041Australia2026-10-06
1042India2026-10-08
1043Argentina2026-10-08
1044Brazil2026-10-05
1045Brazil2026-09-19
1046France2026-10-09
1047Germany2026-10-14
1048Australia2026-10-04
1049Italy2026-09-25

On-Demand Data

NameIdCountryDate
Leja Z Flosi1000Canada2026-10-02
Leja H Stockham1001Japan2026-10-12
Salvatore L Stenseth1002Spain2026-09-17
Stacey K Iturbide1003United Kingdom2026-10-10
Octavia V Venere1004Spain2026-09-22
Francesco U Morasca1005Germany2026-10-12
Nicolas T Rim1006Brazil2026-09-18
Izzy O Sergi1007Russia2026-10-03
James G Bolognia1008Brazil2026-09-30
Alejandro P Whobrey1009Russia2026-10-14
Tony I Rim1010India2026-09-22
David S Dilliard1011India2026-10-02
David I Morasca1012Italy2026-10-12
Jennifer I Malet1013France2026-10-03
Nicolas J Dilliard1014United Kingdom2026-10-08
Jeanfrancois Z Campain1015India2026-09-17
Aditya S Iturbide1016France2026-10-06
Antonio U Schemmer1017Japan2026-09-24
Greenwood X Malet1018Germany2026-09-26
Silvio P Slusarski1019Argentina2026-10-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues J KolmetzSpainOnyama Limba UNQUALIFIED
Aruna O SergiGermanyIvan Magalhaes PROPOSAL
Isabel V VenereCanadaBernardo Dominic UNQUALIFIED
Arvin Z GillianRussiaAnna Fali NEW
Johnson M WhobreyFranceBernardo Dominic PROPOSAL
Faith L FollerIndiaAnna Fali NEW
Morrow W KolmetzCanadaAsiya Javayant PROPOSAL
Darci Y DoeRussiaBernardo Dominic QUALIFIED
Maria W SlusarskiSpainBernardo Dominic NEGOTIATION
Rodrigues N ButtJapanAmy Elsner UNQUALIFIED
Maria Y OldroydItalyStephen Shaw UNQUALIFIED
Tony N ButtItalyStephen Shaw PROPOSAL
Julie S DilliardBrazilAmy Elsner PROPOSAL
Aruna X PerinIndiaAsiya Javayant NEGOTIATION
Darci X ButtBrazilIoni Bowcher RENEWAL
Mayumi S TollnerBrazilElwin Sharvill NEGOTIATION
Jones I CaudySpainOnyama Limba NEW
Arvin A TollnerIndiaIoni Bowcher UNQUALIFIED
Izzy D ChuiIndiaIvan Magalhaes RENEWAL
Alejandro E CampainIndiaAsiya Javayant PROPOSAL
Nicolas J GillianSpainIvan Magalhaes RENEWAL
Munro N GarufiRussiaElwin Sharvill NEGOTIATION
Stacey T GillianSpainAnna Fali QUALIFIED
Jefferson A CaldareraItalyStephen Shaw UNQUALIFIED
James C StensethRussiaOnyama Limba NEW
Jeanfrancois A RutaGermanyBernardo Dominic PROPOSAL
Octavia Q MaletGermanyStephen Shaw RENEWAL
Leon Q GauchoItalyAsiya Javayant QUALIFIED
Chavez V OldroydBrazilIvan Magalhaes RENEWAL
Tony I RutaFranceAsiya Javayant RENEWAL
Ashley A KuskoIndiaAnna Fali QUALIFIED
Aika O PaprockiGermanyBernardo Dominic NEGOTIATION
Morrow O CaldareraGermanyOnyama Limba QUALIFIED
Maria O SaylorsArgentinaAsiya Javayant PROPOSAL
Tony L RutaJapanXuxue Feng QUALIFIED
Mujtaba Q StockhamAustraliaStephen Shaw NEW
Costa Y KolmetzItalyIoni Bowcher UNQUALIFIED
Darci D PerinSpainAsiya Javayant RENEWAL
Ricardo O VocelkaFranceIvan Magalhaes PROPOSAL
Aditya A WhobreyItalyAmy Elsner 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>