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
Ashley T VenereUnited KingdomBernardo Dominic NEW
Arvin G DoeUnited KingdomAmy Elsner QUALIFIED
Aditya Q TollnerItalyElwin Sharvill NEW
Johnson U GauchoIndiaOnyama Limba QUALIFIED
Aika N BriddickSpainIoni Bowcher QUALIFIED
Julie S AlbaresCanadaIoni Bowcher NEW
Clifford W SlusarskiRussiaOnyama Limba QUALIFIED
Wickens I SlusarskiAustraliaXuxue Feng QUALIFIED
Kadeem V PaprockiJapanAmy Elsner NEW
Stacey L InouyeSpainIoni Bowcher NEGOTIATION
Kadeem S BowleyIndiaXuxue Feng QUALIFIED
Kaitlin J SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues F DilliardBrazilBernardo Dominic NEW
Sinclair I MaletSpainBernardo Dominic RENEWAL
Emily G BowleyItalyIoni Bowcher QUALIFIED
Smith U DarakjyJapanStephen Shaw NEW
Kadeem N WaycottRussiaBernardo Dominic PROPOSAL
Morrow Z PerinUnited KingdomElwin Sharvill PROPOSAL
James B OstroskyItalyIoni Bowcher RENEWAL
Claire C BriddickFranceElwin Sharvill NEW
Ashley N AmigonItalyOnyama Limba RENEWAL
Isabel T VenereIndiaBernardo Dominic UNQUALIFIED
Ivar P OstroskyIndiaIvan Magalhaes PROPOSAL
Chavez S BowleyAustraliaElwin Sharvill NEW
Aika A RoysterSpainXuxue Feng UNQUALIFIED
Greenwood H GlickArgentinaElwin Sharvill NEW
Aika B RulapaughCanadaOnyama Limba NEW
Faith O GauchoBrazilIoni Bowcher UNQUALIFIED
Leon U PerinJapanAmy Elsner UNQUALIFIED
Isabel H BologniaCanadaAsiya Javayant UNQUALIFIED
Stacey J VocelkaIndiaElwin Sharvill NEGOTIATION
Jones Z NickaJapanIoni Bowcher QUALIFIED
Maisha P MaletUnited KingdomElwin Sharvill NEW
Antonio O GarufiGermanyElwin Sharvill RENEWAL
Sinclair H DoeGermanyXuxue Feng NEW
Munro J SlusarskiGermanyIvan Magalhaes RENEWAL
Juan Y KuskoBrazilElwin Sharvill NEW
Arvin M SaylorsCanadaOnyama Limba QUALIFIED
Francesco J ShinkoAustraliaStephen Shaw NEW
Aditya E PerinUnited KingdomIvan Magalhaes NEGOTIATION
James D KuskoIndiaAsiya Javayant QUALIFIED
Kaitlin P FlosiUnited KingdomXuxue Feng RENEWAL
Morrow M PerinJapanOnyama Limba UNQUALIFIED
Ashley W MaletJapanAsiya Javayant UNQUALIFIED
Jeanfrancois P NestleCanadaAmy Elsner UNQUALIFIED
Rodrigues C RoysterCanadaOnyama Limba RENEWAL
Jones X AlbaresBrazilIoni Bowcher RENEWAL
Silvio M SergiJapanAmy Elsner NEW
Ashley S OldroydGermanyBernardo Dominic UNQUALIFIED
Kadeem H WhobreyUnited KingdomXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar L OldroydRussiaIvan Magalhaes NEGOTIATION
Ricardo V BologniaItalyXuxue Feng NEGOTIATION
Isabel F VocelkaSpainIoni Bowcher NEW
Jefferson O WieserItalyOnyama Limba UNQUALIFIED
Salvatore F DarakjyUnited KingdomOnyama Limba QUALIFIED
Juan V RimRussiaAsiya Javayant NEW
Ashley O DarakjySpainIoni Bowcher UNQUALIFIED
Morrow G StockhamIndiaAnna Fali NEGOTIATION
Leja O InouyeItalyIvan Magalhaes RENEWAL
Aditya U SlusarskiArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony N SergiFrance2025-07-16Chemel, James L Cpa RENEWAL18Anna Fali
1001Aruna R RoysterSpain2025-07-12Buckley Miller Wright QUALIFIED88Ioni Bowcher
1002James X MaletRussia2025-07-20Chapman, Ross E Esq PROPOSAL43Ioni Bowcher
1003Salvatore K SergiRussia2025-07-14Chemel, James L Cpa NEGOTIATION61Ivan Magalhaes
1004Misaki S GlickSpain2025-07-25Printing Dimensions UNQUALIFIED6Stephen Shaw
1005Octavia Z InouyeFrance2025-07-23Buckley Miller Wright NEW67Elwin Sharvill
1006Maria U BowleyCanada2025-07-10Truhlar And Truhlar Attys PROPOSAL24Stephen Shaw
1007Greenwood R VocelkaFrance2025-07-13Chapman, Ross E Esq NEW16Xuxue Feng
1008Claire L DarakjyRussia2025-07-08King, Christopher A Esq RENEWAL52Ivan Magalhaes
1009Nicolas H MarrierSpain2025-07-28Feiner Bros PROPOSAL89Xuxue Feng
1010Claire K WhobreySpain2025-07-16Feiner Bros PROPOSAL54Anna Fali
1011Clifford D CaudySpain2025-07-07Truhlar And Truhlar Attys RENEWAL84Onyama Limba
1012Ashley Z KolmetzUnited Kingdom2025-07-03Rousseaux, Michael Esq NEW73Amy Elsner
1013Rodrigues Q WhobreyAustralia2025-07-03King, Christopher A Esq PROPOSAL99Ivan Magalhaes
1014Aditya R RutaSpain2025-07-27Benton, John B Jr QUALIFIED57Ivan Magalhaes
1015Chavez L FollerArgentina2025-07-08Commercial Press NEGOTIATION51Xuxue Feng
1016Clifford O SaylorsCanada2025-07-26Buckley Miller Wright UNQUALIFIED62Xuxue Feng
1017Darci Z MaletArgentina2025-07-05Chapman, Ross E Esq NEW64Stephen Shaw
1018Ashley X GauchoRussia2025-07-17Chemel, James L Cpa NEW6Amy Elsner
1019Isabel V IturbideArgentina2025-07-20Benton, John B Jr NEW93Bernardo Dominic
1020David P FigeroaRussia2025-07-15Chanay, Jeffrey A Esq UNQUALIFIED97Amy Elsner
1021Emily E OldroydCanada2025-07-01Feltz Printing Service UNQUALIFIED52Anna Fali
1022Faith Z KuskoArgentina2025-07-09Buckley Miller Wright NEW21Amy Elsner
1023Leja Y DoeFrance2025-07-02Feiner Bros RENEWAL31Amy Elsner
1024Claire S NickaRussia2025-07-24Feiner Bros UNQUALIFIED10Xuxue Feng
1025Ricardo J SaylorsRussia2025-07-12Benton, John B Jr NEGOTIATION41Xuxue Feng
1026Salvatore B WieserJapan2025-07-15Chapman, Ross E Esq RENEWAL50Asiya Javayant
1027Darci Y NestleItaly2025-07-26Feltz Printing Service UNQUALIFIED42Amy Elsner
1028Jefferson X PerinFrance2025-07-09Feiner Bros RENEWAL92Ivan Magalhaes
1029Leja Z MorascaIndia2025-07-04Feltz Printing Service NEW70Onyama Limba
1030Misaki V FollerFrance2025-07-16Buckley Miller Wright QUALIFIED20Onyama Limba
1031Antonio P MacleadFrance2025-07-28Dorl, James J Esq QUALIFIED94Ivan Magalhaes
1032Jefferson Y NestleAustralia2025-07-06Feltz Printing Service NEGOTIATION26Ivan Magalhaes
1033Arvin B FigeroaCanada2025-07-05Truhlar And Truhlar Attys NEW56Asiya Javayant
1034Emily Z StockhamUnited Kingdom2025-07-15Rousseaux, Michael Esq PROPOSAL98Stephen Shaw
1035David B PerinItaly2025-07-04Commercial Press UNQUALIFIED72Anna Fali
1036Deepesh H SaylorsFrance2025-07-15King, Christopher A Esq NEW47Stephen Shaw
1037Clifford P MacleadAustralia2025-07-07Chanay, Jeffrey A Esq PROPOSAL87Amy Elsner
1038Izzy O SaylorsCanada2025-07-06Buckley Miller Wright UNQUALIFIED53Asiya Javayant
1039Julie J VocelkaItaly2025-07-13Commercial Press UNQUALIFIED62Asiya Javayant
1040Isabel J ChuiIndia2025-07-25Benton, John B Jr NEW33Anna Fali
1041Juan F SlusarskiItaly2025-07-19Buckley Miller Wright PROPOSAL88Bernardo Dominic
1042Claire G VocelkaIndia2025-07-04Morlong Associates NEGOTIATION42Bernardo Dominic
1043Izzy D RulapaughArgentina2025-07-04Morlong Associates NEW17Onyama Limba
1044Kadeem K PoquetteUnited Kingdom2025-07-06Commercial Press UNQUALIFIED31Elwin Sharvill
1045Sinclair L BowleyJapan2025-07-01King, Christopher A Esq PROPOSAL5Ivan Magalhaes
1046Greenwood B SergiIndia2025-07-13Feiner Bros PROPOSAL41Bernardo Dominic
1047Emily A GauchoGermany2025-07-02Rousseaux, Michael Esq QUALIFIED42Amy Elsner
1048Jones H TollnerBrazil2025-07-21Chapman, Ross E Esq PROPOSAL43Anna Fali
1049Jones L FigeroaUnited Kingdom2025-07-13Rousseaux, Michael Esq NEW23Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jennifer K RulapaughIndiaIvan Magalhaes RENEWAL
Deepesh D MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Francesco U NestleAustraliaXuxue Feng NEGOTIATION
Stacey T AlbaresBrazilElwin Sharvill QUALIFIED
Maisha X MaletItalyOnyama Limba QUALIFIED
Octavia I WaycottUnited KingdomAmy Elsner RENEWAL
Alejandro K RimSpainElwin Sharvill PROPOSAL
Kadeem N PaprockiIndiaAnna Fali PROPOSAL
Johnson B GauchoItalyAmy Elsner QUALIFIED
Ricardo H GauchoUnited KingdomOnyama Limba PROPOSAL
Wickens C DoeSpainXuxue Feng QUALIFIED
Darci W DarakjyFranceXuxue Feng PROPOSAL
Morrow W KolmetzFranceBernardo Dominic RENEWAL
Octavia J RoysterRussiaAnna Fali QUALIFIED
Aruna P TollnerUnited KingdomAnna Fali QUALIFIED
Julie W BriddickGermanyAmy Elsner NEGOTIATION
Tony N PoquetteIndiaAmy Elsner RENEWAL
Wickens U FerenczItalyStephen Shaw PROPOSAL
Mayumi E RoysterIndiaAnna Fali QUALIFIED
Aika B WaycottGermanyAmy Elsner UNQUALIFIED
Darci Y WieserUnited KingdomOnyama Limba RENEWAL
Johnson L PoquetteUnited KingdomElwin Sharvill PROPOSAL
David I OldroydGermanyIvan Magalhaes PROPOSAL
Izzy M PerinGermanyStephen Shaw QUALIFIED
Claire R WhobreyGermanyBernardo Dominic RENEWAL
Octavia N FlosiFranceStephen Shaw RENEWAL
Ivar U StensethAustraliaIoni Bowcher PROPOSAL
Munro V SergiIndiaAmy Elsner PROPOSAL
Jeanfrancois G KolmetzCanadaIoni Bowcher NEGOTIATION
Tony C AmigonBrazilOnyama Limba PROPOSAL
Mujtaba F StensethUnited KingdomOnyama Limba RENEWAL
Arvin C MaletAustraliaBernardo Dominic PROPOSAL
Chavez V CampainFranceBernardo Dominic NEGOTIATION
Maria G FigeroaAustraliaXuxue Feng RENEWAL
Julie A DoeSpainAnna Fali NEGOTIATION
Costa W MaletIndiaAnna Fali RENEWAL
Julie G MaletAustraliaElwin Sharvill QUALIFIED
Clifford C InouyeSpainXuxue Feng PROPOSAL
Aruna H BriddickItalyIvan Magalhaes NEGOTIATION
Smith T DoeSpainBernardo Dominic PROPOSAL
Faith E RulapaughSpainElwin Sharvill PROPOSAL
Izzy O VenereAustraliaBernardo Dominic RENEWAL
Kaitlin V DoeCanadaOnyama Limba UNQUALIFIED
Costa K PoquetteArgentinaOnyama Limba UNQUALIFIED
Nicolas K GarufiBrazilIoni Bowcher QUALIFIED
Adams R BriddickGermanyElwin Sharvill PROPOSAL
Rodrigues O DilliardRussiaIvan Magalhaes NEW
Ivar J KolmetzCanadaElwin Sharvill NEGOTIATION
Leon N ButtIndiaElwin Sharvill QUALIFIED
Sinclair U ShinkoSpainIvan Magalhaes RENEWAL
Frozen Columns
Name
Sinclair X Rulapaugh
Jennifer P Saylors
Greenwood W Tollner
Smith C Marrier
Leon C Sergi
Maria U Whobrey
Alejandro X Nicka
Antonio R Doe
Misaki X Stockham
Darci R Garufi
Greenwood W Kolmetz
Mujtaba K Glick
Izzy T Slusarski
Juan N Stockham
Jeanfrancois F Gillian
Mujtaba E Glick
Jeanfrancois O Butt
Wickens Z Ostrosky
Izzy S Darakjy
Ricardo H Slusarski
Claire N Ruta
Mujtaba C Inouye
James F Bolognia
Darci S Gillian
Arvin C Butt
Claire V Malet
Octavia C Ruta
Maisha H Nicka
Mayumi X Schemmer
Leja A Schemmer
Morrow D Wieser
Murillo V Foller
David F Wieser
Wickens I Malet
Salvatore U Nestle
Deepesh I Amigon
Antonio A Darakjy
Stacey B Venere
Mujtaba U Iturbide
Antonio G Iturbide
Stacey W Stockham
Claire Z Foller
Aditya F Garufi
Leon A Wieser
Claire Y Foller
Jeanfrancois H Kusko
Maria Z Sergi
Maria J Inouye
Smith Z Waycott
Ivar Z Saylors
IdCountryDate
1000Spain2025-07-18
1001Argentina2025-07-24
1002Italy2025-07-17
1003Japan2025-07-14
1004Japan2025-07-08
1005Australia2025-07-11
1006Spain2025-07-13
1007Germany2025-07-24
1008India2025-07-04
1009France2025-07-10
1010Spain2025-07-13
1011Japan2025-07-03
1012Japan2025-07-10
1013Germany2025-07-07
1014Canada2025-07-19
1015Argentina2025-07-02
1016United Kingdom2025-07-03
1017Argentina2025-07-06
1018Russia2025-07-01
1019Italy2025-07-02
1020Australia2025-06-30
1021India2025-07-22
1022Australia2025-07-12
1023Australia2025-07-11
1024France2025-07-13
1025Brazil2025-07-14
1026Argentina2025-07-18
1027United Kingdom2025-07-28
1028Spain2025-07-01
1029Germany2025-07-20
1030Italy2025-07-24
1031Spain2025-07-08
1032Italy2025-07-26
1033Germany2025-07-12
1034Russia2025-07-16
1035Germany2025-07-27
1036Germany2025-07-05
1037France2025-07-15
1038Australia2025-07-13
1039Brazil2025-07-28
1040Italy2025-07-03
1041United Kingdom2025-07-10
1042Brazil2025-07-19
1043Brazil2025-07-18
1044Australia2025-07-16
1045Brazil2025-07-22
1046Russia2025-07-08
1047Japan2025-07-07
1048Canada2025-07-01
1049France2025-07-08

On-Demand Data

NameIdCountryDate
Greenwood M Ferencz1000Germany2025-07-17
Ricardo S Albares1001Russia2025-07-19
Johnson M Darakjy1002Germany2025-07-19
Jeanfrancois K Bowley1003Italy2025-07-26
Jones H Malet1004United Kingdom2025-07-23
Misaki I Iturbide1005India2025-07-07
Julie P Vocelka1006Argentina2025-07-24
Maria L Marrier1007Germany2025-07-18
Faith G Ruta1008Spain2025-07-01
Kadeem Y Stenseth1009France2025-07-12
Nicolas V Campain1010France2025-07-03
Antonio F Bowley1011Australia2025-07-19
Murillo I Rulapaugh1012India2025-07-22
Arvin P Ruta1013France2025-07-12
Juan Y Morasca1014Spain2025-07-21
Rodrigues S Flosi1015Argentina2025-07-18
Julie M Wieser1016Australia2025-07-27
Claire R Stenseth1017Germany2025-07-23
Stacey N Inouye1018Canada2025-07-17
Deepesh N Marrier1019Australia2025-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens D MaletSpainIvan Magalhaes NEW
Julie Y DilliardGermanyXuxue Feng RENEWAL
Deepesh B CaldareraFranceIvan Magalhaes RENEWAL
Julie L RulapaughJapanBernardo Dominic UNQUALIFIED
Silvio W AlbaresAustraliaIoni Bowcher NEGOTIATION
Johnson E WaycottRussiaAnna Fali QUALIFIED
Deepesh N WhobreyFranceXuxue Feng RENEWAL
Clifford R OldroydJapanXuxue Feng QUALIFIED
Adams E SergiGermanyAnna Fali NEGOTIATION
Ivar X DilliardUnited KingdomBernardo Dominic NEW
Deepesh C RulapaughArgentinaElwin Sharvill QUALIFIED
Salvatore O ChuiIndiaAmy Elsner NEW
Clifford R FlosiUnited KingdomAnna Fali RENEWAL
Alejandro W MacleadItalyOnyama Limba RENEWAL
Aruna W FollerArgentinaStephen Shaw QUALIFIED
Arvin F GillianIndiaElwin Sharvill RENEWAL
Stacey C VocelkaFranceElwin Sharvill NEGOTIATION
Silvio T SaylorsRussiaStephen Shaw NEGOTIATION
Antonio Q BologniaBrazilElwin Sharvill NEW
Claire W MacleadBrazilXuxue Feng QUALIFIED
Jefferson N DoeBrazilXuxue Feng QUALIFIED
Leja N CampainArgentinaAmy Elsner QUALIFIED
Aditya X BriddickSpainOnyama Limba NEW
Adams E BriddickAustraliaBernardo Dominic QUALIFIED
Chavez S ShinkoBrazilStephen Shaw RENEWAL
Izzy I NestleCanadaAsiya Javayant QUALIFIED
Jeanfrancois T InouyeRussiaBernardo Dominic NEW
David P RulapaughIndiaOnyama Limba NEW
Wickens G BologniaIndiaXuxue Feng UNQUALIFIED
Izzy B CaldareraItalyStephen Shaw NEGOTIATION
Jefferson Y ShinkoFranceIoni Bowcher NEGOTIATION
Johnson Q MorascaRussiaAsiya Javayant PROPOSAL
Johnson I CaudyItalyAsiya Javayant PROPOSAL
Arvin X KuskoSpainBernardo Dominic NEGOTIATION
Deepesh J BriddickGermanyAsiya Javayant RENEWAL
Aruna S DoeRussiaElwin Sharvill NEGOTIATION
Stacey T CaudyIndiaBernardo Dominic RENEWAL
Cody H VenereFranceAnna Fali QUALIFIED
Octavia G OldroydGermanyAmy Elsner QUALIFIED
Claire L GlickRussiaStephen Shaw 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>