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
Deepesh D DarakjyJapanElwin Sharvill NEGOTIATION
Silvio D FlosiFranceStephen Shaw PROPOSAL
Cody G CaldareraSpainAmy Elsner NEW
Antonio T ShinkoFranceXuxue Feng NEW
Maria L ChuiJapanBernardo Dominic NEGOTIATION
Juan H PerinBrazilIvan Magalhaes QUALIFIED
Emily J KolmetzRussiaStephen Shaw NEGOTIATION
Aruna R ShinkoCanadaStephen Shaw RENEWAL
Ricardo O InouyeCanadaIvan Magalhaes UNQUALIFIED
Kadeem V GlickArgentinaAmy Elsner NEW
Faith M NestleCanadaBernardo Dominic NEGOTIATION
Mayumi K OldroydFranceElwin Sharvill NEGOTIATION
Morrow X CampainCanadaAsiya Javayant UNQUALIFIED
Antonio W CampainAustraliaXuxue Feng NEW
Chavez A VocelkaUnited KingdomElwin Sharvill NEW
Salvatore G CaudyArgentinaAmy Elsner QUALIFIED
Costa U NestleCanadaAmy Elsner QUALIFIED
Aruna S DoeItalyOnyama Limba UNQUALIFIED
Isabel G WaycottIndiaOnyama Limba NEGOTIATION
Ricardo I FollerGermanyXuxue Feng PROPOSAL
Murillo F MarrierRussiaElwin Sharvill NEGOTIATION
Maisha W FigeroaBrazilXuxue Feng RENEWAL
Maria O MorascaRussiaIoni Bowcher NEGOTIATION
Jefferson Y BologniaUnited KingdomIoni Bowcher NEW
Silvio U SlusarskiGermanyAnna Fali NEW
Morrow K DoeUnited KingdomAnna Fali RENEWAL
Jones X GauchoCanadaIoni Bowcher UNQUALIFIED
Aditya X BowleyJapanBernardo Dominic UNQUALIFIED
Kaitlin Z FlosiAustraliaIvan Magalhaes NEW
Izzy A FollerAustraliaIoni Bowcher RENEWAL
Clifford Q VenereFranceBernardo Dominic NEW
Kadeem G TollnerAustraliaAmy Elsner QUALIFIED
Adams D AlbaresRussiaElwin Sharvill QUALIFIED
Cody B PerinArgentinaIvan Magalhaes NEGOTIATION
David P DilliardUnited KingdomStephen Shaw PROPOSAL
Nicolas V AlbaresGermanyIoni Bowcher NEGOTIATION
Stacey M GarufiFranceOnyama Limba UNQUALIFIED
Rodrigues D MarrierFranceStephen Shaw RENEWAL
Leon W FlosiJapanIvan Magalhaes PROPOSAL
Antonio B SlusarskiArgentinaAnna Fali RENEWAL
Rodrigues I FigeroaAustraliaAnna Fali NEGOTIATION
Nicolas M AmigonFranceXuxue Feng QUALIFIED
Darci Y RutaArgentinaOnyama Limba UNQUALIFIED
James T MacleadIndiaAnna Fali QUALIFIED
Aruna H MaletArgentinaBernardo Dominic RENEWAL
Salvatore Y NickaJapanAnna Fali NEGOTIATION
Misaki P OstroskyCanadaStephen Shaw QUALIFIED
Maria W SlusarskiFranceXuxue Feng UNQUALIFIED
Emily A MorascaCanadaOnyama Limba NEW
Ricardo M PerinArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria K PaprockiAustraliaAnna Fali NEGOTIATION
Nicolas J ShinkoArgentinaXuxue Feng NEGOTIATION
Cody L GauchoSpainAnna Fali PROPOSAL
Julie T MacleadRussiaAsiya Javayant UNQUALIFIED
Arvin V CampainGermanyOnyama Limba QUALIFIED
Aruna R WhobreySpainIvan Magalhaes NEGOTIATION
Faith R ShinkoArgentinaAnna Fali UNQUALIFIED
Alejandro C AmigonCanadaAsiya Javayant PROPOSAL
Stacey R SlusarskiGermanyAmy Elsner QUALIFIED
Salvatore Z WaycottBrazilElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro B GarufiIndia2025-10-06Truhlar And Truhlar Attys QUALIFIED60Stephen Shaw
1001Morrow R VenereBrazil2025-10-02Rousseaux, Michael Esq QUALIFIED77Onyama Limba
1002Chavez Z FollerAustralia2025-10-18Chanay, Jeffrey A Esq PROPOSAL21Elwin Sharvill
1003Wickens J BowleySpain2025-10-13Buckley Miller Wright UNQUALIFIED97Stephen Shaw
1004Aditya G IturbideSpain2025-10-19Feiner Bros RENEWAL85Stephen Shaw
1005Aditya R PoquetteGermany2025-09-30Buckley Miller Wright RENEWAL94Anna Fali
1006Jefferson Z RutaBrazil2025-10-12Dorl, James J Esq UNQUALIFIED97Anna Fali
1007Leon G WieserArgentina2025-09-24Printing Dimensions UNQUALIFIED32Onyama Limba
1008Faith R PerinFrance2025-10-16Chapman, Ross E Esq RENEWAL19Amy Elsner
1009Mayumi Q DoeFrance2025-09-24Chanay, Jeffrey A Esq NEW57Stephen Shaw
1010Greenwood O NickaUnited Kingdom2025-09-20Morlong Associates UNQUALIFIED59Stephen Shaw
1011Cody A DilliardJapan2025-10-14Rangoni Of Florence NEW96Bernardo Dominic
1012Nicolas F FerenczBrazil2025-10-04Truhlar And Truhlar Attys RENEWAL60Bernardo Dominic
1013Isabel K MaletCanada2025-10-17King, Christopher A Esq NEGOTIATION60Ioni Bowcher
1014Costa C BriddickRussia2025-10-17Commercial Press NEW37Xuxue Feng
1015Rodrigues S PoquetteJapan2025-10-03Commercial Press UNQUALIFIED99Asiya Javayant
1016Izzy L MorascaFrance2025-10-08Truhlar And Truhlar Attys NEGOTIATION49Amy Elsner
1017Aditya O RutaBrazil2025-10-13Buckley Miller Wright UNQUALIFIED19Xuxue Feng
1018Faith H DilliardGermany2025-10-18Commercial Press NEW45Xuxue Feng
1019Izzy E MaletBrazil2025-10-17Commercial Press UNQUALIFIED92Amy Elsner
1020James G VocelkaFrance2025-09-27Rousseaux, Michael Esq NEGOTIATION66Ivan Magalhaes
1021Munro L WieserIndia2025-10-07Truhlar And Truhlar Attys UNQUALIFIED67Anna Fali
1022Chavez B GauchoJapan2025-10-06Rangoni Of Florence NEW69Ioni Bowcher
1023Darci J BowleyBrazil2025-10-02Chanay, Jeffrey A Esq NEW29Amy Elsner
1024Alejandro K NestleCanada2025-10-10Morlong Associates NEW23Ioni Bowcher
1025Leon Z BriddickItaly2025-10-05Feiner Bros UNQUALIFIED15Ioni Bowcher
1026Ashley M StockhamFrance2025-10-03Benton, John B Jr UNQUALIFIED34Ioni Bowcher
1027James A CampainBrazil2025-10-09Buckley Miller Wright RENEWAL78Anna Fali
1028Leon H SlusarskiGermany2025-10-13Chemel, James L Cpa UNQUALIFIED21Ivan Magalhaes
1029Maisha B StensethItaly2025-09-26King, Christopher A Esq QUALIFIED49Amy Elsner
1030Alejandro A VenereArgentina2025-10-03Feiner Bros NEGOTIATION32Ivan Magalhaes
1031Mayumi W SchemmerUnited Kingdom2025-09-29Morlong Associates QUALIFIED39Elwin Sharvill
1032Cody F RoysterArgentina2025-10-15Commercial Press RENEWAL32Ioni Bowcher
1033Aika A MacleadUnited Kingdom2025-09-21Printing Dimensions NEW44Onyama Limba
1034Jefferson O GillianRussia2025-10-10Printing Dimensions PROPOSAL1Bernardo Dominic
1035David S BriddickUnited Kingdom2025-09-20Dorl, James J Esq QUALIFIED44Onyama Limba
1036Ivar I VocelkaSpain2025-09-28Feltz Printing Service NEW49Asiya Javayant
1037Maria C NickaIndia2025-10-09Commercial Press RENEWAL46Onyama Limba
1038Antonio F GlickJapan2025-10-03Chanay, Jeffrey A Esq UNQUALIFIED32Elwin Sharvill
1039Isabel D DilliardItaly2025-10-15Chanay, Jeffrey A Esq NEGOTIATION27Anna Fali
1040Kaitlin C ShinkoIndia2025-10-07Feiner Bros QUALIFIED8Anna Fali
1041Maisha I KolmetzJapan2025-10-09King, Christopher A Esq QUALIFIED62Ivan Magalhaes
1042Aditya V RulapaughJapan2025-10-19Benton, John B Jr UNQUALIFIED78Anna Fali
1043Wickens B IturbideFrance2025-10-02Commercial Press NEGOTIATION74Asiya Javayant
1044Maisha R StensethArgentina2025-10-01Benton, John B Jr UNQUALIFIED87Ioni Bowcher
1045Isabel D CaldareraItaly2025-10-14Truhlar And Truhlar Attys NEGOTIATION20Asiya Javayant
1046Leon K MarrierArgentina2025-10-15Feiner Bros QUALIFIED86Anna Fali
1047Juan B ChuiJapan2025-10-18Chapman, Ross E Esq PROPOSAL19Ioni Bowcher
1048Cody J BriddickCanada2025-10-09Chapman, Ross E Esq NEW82Asiya Javayant
1049Deepesh F FollerAustralia2025-10-02Feltz Printing Service PROPOSAL61Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Murillo K RoysterRussiaXuxue Feng RENEWAL
Morrow X RoysterArgentinaIoni Bowcher PROPOSAL
Murillo O GarufiFranceAsiya Javayant NEW
Octavia V BowleyItalyBernardo Dominic RENEWAL
Emily U RimRussiaAnna Fali PROPOSAL
Jones R MarrierJapanXuxue Feng PROPOSAL
Claire F BriddickArgentinaXuxue Feng PROPOSAL
Wickens C ShinkoFranceOnyama Limba UNQUALIFIED
James U MorascaCanadaAnna Fali RENEWAL
Izzy P SaylorsArgentinaIoni Bowcher NEGOTIATION
Jennifer F VenereRussiaOnyama Limba RENEWAL
Rodrigues U WaycottIndiaAnna Fali NEGOTIATION
Aika T CaudyCanadaBernardo Dominic QUALIFIED
Octavia F RulapaughArgentinaIvan Magalhaes UNQUALIFIED
Nicolas Z BowleyJapanIoni Bowcher NEGOTIATION
Leon E GillianFranceElwin Sharvill NEGOTIATION
Johnson V BriddickAustraliaAnna Fali QUALIFIED
Ivar R TollnerGermanyAmy Elsner RENEWAL
Clifford Y ButtAustraliaBernardo Dominic UNQUALIFIED
Mayumi S InouyeCanadaBernardo Dominic NEW
Ricardo Q SergiItalyAsiya Javayant QUALIFIED
Juan J BriddickRussiaAnna Fali NEW
Mayumi S GauchoArgentinaXuxue Feng NEGOTIATION
Octavia Q ButtFranceStephen Shaw QUALIFIED
Johnson I PerinCanadaElwin Sharvill PROPOSAL
Arvin Q WieserItalyElwin Sharvill QUALIFIED
Octavia V ShinkoArgentinaAsiya Javayant NEGOTIATION
Costa G FigeroaJapanIvan Magalhaes RENEWAL
Alejandro L OstroskyBrazilOnyama Limba NEGOTIATION
Aditya B BologniaJapanOnyama Limba QUALIFIED
Greenwood K KolmetzIndiaAmy Elsner RENEWAL
Claire B SlusarskiBrazilOnyama Limba NEW
Leon K InouyeCanadaAsiya Javayant NEW
Ivar R VocelkaIndiaAmy Elsner NEW
Chavez A RoysterFranceIvan Magalhaes PROPOSAL
Juan R RimRussiaStephen Shaw NEGOTIATION
Leja M OldroydGermanyStephen Shaw NEW
Emily V NickaArgentinaXuxue Feng UNQUALIFIED
Ivar Y GlickIndiaIvan Magalhaes NEW
Isabel E MacleadSpainIvan Magalhaes PROPOSAL
Ashley L ChuiJapanOnyama Limba NEGOTIATION
Morrow E GarufiRussiaElwin Sharvill QUALIFIED
Sinclair L FollerUnited KingdomAnna Fali UNQUALIFIED
Claire P MorascaFranceOnyama Limba NEW
Wickens A WieserIndiaOnyama Limba NEGOTIATION
Clifford L OstroskyAustraliaAmy Elsner NEGOTIATION
Smith L KolmetzArgentinaAnna Fali NEGOTIATION
Mujtaba J FollerGermanyIvan Magalhaes RENEWAL
Arvin D MacleadIndiaElwin Sharvill QUALIFIED
Greenwood H DoeJapanIvan Magalhaes NEW
Frozen Columns
Name
Stacey B Malet
Silvio B Saylors
Misaki Q Ferencz
Leon I Marrier
Maisha G Paprocki
Munro D Caldarera
Jones T Venere
Cody L Nicka
Juan Q Kolmetz
Kadeem K Saylors
Morrow Y Gaucho
Murillo F Darakjy
Tony X Tollner
Cody J Ferencz
Ashley U Iturbide
Wickens I Albares
Aika R Inouye
Rodrigues T Stenseth
Darci A Inouye
Aruna L Tollner
Munro H Nicka
Nicolas A Campain
Izzy M Ostrosky
Wickens N Rim
Leja G Ruta
Sinclair M Paprocki
Jennifer W Paprocki
Deepesh K Albares
Julie T Chui
Misaki B Vocelka
Maria U Dilliard
Leja H Stenseth
Leja Q Ferencz
Jennifer G Paprocki
Alejandro L Tollner
Stacey F Nicka
Morrow G Flosi
Mayumi Q Glick
Ricardo F Whobrey
Salvatore P Butt
Izzy X Gillian
Alejandro X Briddick
Juan Q Gillian
Jones U Sergi
Isabel B Gaucho
David U Maclead
Francesco C Schemmer
Chavez S Foller
Silvio O Albares
Ivar S Figeroa
IdCountryDate
1000France2025-10-10
1001Argentina2025-09-22
1002India2025-10-03
1003Germany2025-09-24
1004France2025-09-28
1005United Kingdom2025-09-24
1006Spain2025-10-06
1007United Kingdom2025-09-27
1008Canada2025-10-02
1009France2025-09-24
1010Italy2025-09-26
1011Canada2025-10-17
1012India2025-10-15
1013Brazil2025-09-29
1014India2025-10-16
1015France2025-10-02
1016Russia2025-10-09
1017Argentina2025-09-26
1018Canada2025-10-07
1019France2025-10-09
1020Brazil2025-10-15
1021Russia2025-10-16
1022Germany2025-09-22
1023United Kingdom2025-10-14
1024France2025-10-18
1025United Kingdom2025-10-13
1026Germany2025-09-20
1027Argentina2025-10-15
1028Spain2025-10-17
1029Spain2025-10-15
1030United Kingdom2025-09-27
1031Germany2025-10-04
1032Argentina2025-09-23
1033Argentina2025-10-08
1034Argentina2025-10-19
1035Canada2025-10-14
1036Italy2025-10-13
1037Italy2025-10-10
1038Argentina2025-10-17
1039Canada2025-10-19
1040Japan2025-09-23
1041Japan2025-09-29
1042Brazil2025-10-16
1043France2025-09-21
1044Australia2025-09-24
1045Australia2025-10-07
1046India2025-09-25
1047Argentina2025-09-30
1048India2025-10-07
1049Italy2025-10-15

On-Demand Data

NameIdCountryDate
Salvatore H Caudy1000Germany2025-09-29
Faith E Ruta1001Spain2025-10-06
Jeanfrancois Q Chui1002Japan2025-09-23
James F Stockham1003Germany2025-10-09
Jones O Amigon1004Japan2025-09-29
Clifford Q Gaucho1005India2025-10-18
Murillo L Albares1006Brazil2025-10-10
Leja A Darakjy1007Russia2025-10-18
Aruna T Perin1008Argentina2025-10-08
Misaki U Paprocki1009France2025-10-17
Adams W Ostrosky1010France2025-09-23
Leon B Tollner1011Germany2025-10-07
Francesco J Nicka1012India2025-10-13
Octavia T Paprocki1013Australia2025-10-14
Izzy G Chui1014Spain2025-10-09
Aditya T Kolmetz1015Australia2025-10-09
Rodrigues U Poquette1016Germany2025-10-07
Greenwood H Caldarera1017Spain2025-10-02
Emily A Perin1018Germany2025-09-29
Octavia F Waycott1019Brazil2025-10-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo C FerenczRussiaXuxue Feng NEGOTIATION
Izzy V WaycottFranceAsiya Javayant PROPOSAL
Misaki X CaudyIndiaStephen Shaw NEGOTIATION
Emily O RoysterJapanAnna Fali RENEWAL
Maisha T PerinAustraliaOnyama Limba UNQUALIFIED
Mujtaba X MaletUnited KingdomBernardo Dominic UNQUALIFIED
Tony Z NickaItalyAsiya Javayant NEW
Julie Y GillianSpainBernardo Dominic NEGOTIATION
Jones E KuskoUnited KingdomElwin Sharvill QUALIFIED
Costa Y MacleadItalyBernardo Dominic UNQUALIFIED
Leja M KolmetzFranceOnyama Limba NEGOTIATION
Mujtaba C PaprockiJapanOnyama Limba PROPOSAL
Ricardo B IturbideRussiaAsiya Javayant NEGOTIATION
Chavez X NestleJapanAnna Fali NEW
Munro D RimCanadaIoni Bowcher UNQUALIFIED
James R RulapaughBrazilBernardo Dominic QUALIFIED
Cody H ShinkoRussiaXuxue Feng UNQUALIFIED
Munro L PoquetteIndiaAnna Fali NEW
Darci R StockhamBrazilElwin Sharvill PROPOSAL
Arvin C GillianFranceOnyama Limba QUALIFIED
Smith F BologniaItalyXuxue Feng UNQUALIFIED
Stacey M PaprockiJapanIvan Magalhaes PROPOSAL
Claire E StensethRussiaStephen Shaw NEGOTIATION
Sinclair I AmigonIndiaAnna Fali UNQUALIFIED
Stacey Y RimJapanAnna Fali PROPOSAL
Misaki P MorascaRussiaXuxue Feng NEW
Darci I ChuiItalyOnyama Limba NEGOTIATION
Morrow P IturbideJapanStephen Shaw QUALIFIED
Izzy T SlusarskiItalyIvan Magalhaes UNQUALIFIED
Leon K MarrierFranceElwin Sharvill QUALIFIED
Kaitlin M BowleyArgentinaAnna Fali NEW
Jennifer S WaycottBrazilBernardo Dominic NEGOTIATION
Aruna N DoeGermanyAmy Elsner QUALIFIED
Claire B SergiAustraliaIvan Magalhaes RENEWAL
Julie Z CaudyIndiaIvan Magalhaes PROPOSAL
Aruna Q FerenczItalyBernardo Dominic PROPOSAL
Antonio J PaprockiSpainIoni Bowcher QUALIFIED
Jeanfrancois X WieserSpainAnna Fali PROPOSAL
Ivar D WaycottCanadaOnyama Limba QUALIFIED
Nicolas G DoeBrazilStephen Shaw NEGOTIATION

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