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
Munro X SaylorsUnited KingdomOnyama Limba QUALIFIED
Isabel X MacleadFranceIoni Bowcher QUALIFIED
Aditya Z InouyeIndiaIoni Bowcher UNQUALIFIED
Jones U FlosiArgentinaBernardo Dominic PROPOSAL
Stacey F DoeFranceAmy Elsner PROPOSAL
Rodrigues S KolmetzArgentinaIvan Magalhaes NEW
Greenwood V AmigonCanadaIoni Bowcher QUALIFIED
Antonio Q InouyeItalyIvan Magalhaes NEW
Claire Y CaudyJapanStephen Shaw NEGOTIATION
Misaki K GauchoJapanAnna Fali NEGOTIATION
Misaki N DoeFranceAmy Elsner RENEWAL
Tony P BowleyFranceStephen Shaw NEW
Alejandro S NestleBrazilElwin Sharvill PROPOSAL
Octavia E TollnerBrazilBernardo Dominic NEGOTIATION
Mujtaba K PerinAustraliaElwin Sharvill UNQUALIFIED
Maria G FollerFranceAsiya Javayant QUALIFIED
Aruna K StockhamSpainIvan Magalhaes UNQUALIFIED
Costa A RutaUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore H KolmetzCanadaElwin Sharvill RENEWAL
Jeanfrancois H SergiJapanElwin Sharvill RENEWAL
Costa C CampainArgentinaBernardo Dominic NEGOTIATION
James T TollnerCanadaXuxue Feng PROPOSAL
Adams Y MaletGermanyOnyama Limba NEW
Ashley V OldroydSpainAnna Fali RENEWAL
Izzy D FlosiRussiaXuxue Feng RENEWAL
Jeanfrancois X ButtItalyBernardo Dominic QUALIFIED
Morrow A GillianItalyElwin Sharvill QUALIFIED
Maria O DilliardIndiaOnyama Limba UNQUALIFIED
Aruna Q SaylorsSpainElwin Sharvill NEGOTIATION
Greenwood B CaldareraJapanElwin Sharvill QUALIFIED
Faith O CaudyFranceBernardo Dominic PROPOSAL
Alejandro H WaycottGermanyOnyama Limba NEGOTIATION
Johnson N FerenczGermanyIvan Magalhaes PROPOSAL
Johnson G GlickBrazilAsiya Javayant NEGOTIATION
Munro E FlosiFranceAnna Fali RENEWAL
Emily B GillianCanadaIvan Magalhaes NEGOTIATION
Aruna I SlusarskiUnited KingdomElwin Sharvill RENEWAL
Octavia O BologniaJapanAnna Fali NEW
Mujtaba P SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi P MorascaRussiaXuxue Feng NEW
Maisha L BologniaIndiaAmy Elsner NEGOTIATION
Claire S VenereCanadaXuxue Feng UNQUALIFIED
Faith O MaletJapanStephen Shaw UNQUALIFIED
Sinclair L CaldareraItalyAsiya Javayant NEGOTIATION
Munro S GlickUnited KingdomAsiya Javayant UNQUALIFIED
Silvio M IturbideCanadaAnna Fali NEW
Wickens C BriddickUnited KingdomOnyama Limba RENEWAL
Stacey Q NickaCanadaIvan Magalhaes PROPOSAL
Costa W SlusarskiFranceBernardo Dominic UNQUALIFIED
Faith Y CampainSpainBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi J NestleGermanyIvan Magalhaes NEGOTIATION
Izzy D ButtIndiaAsiya Javayant NEW
Darci N SaylorsJapanXuxue Feng PROPOSAL
Mayumi E KolmetzAustraliaStephen Shaw NEW
Smith E GarufiGermanyAnna Fali NEGOTIATION
Maisha L RoysterBrazilAnna Fali NEW
Maisha U OstroskyArgentinaIoni Bowcher RENEWAL
Izzy G AlbaresRussiaAnna Fali NEW
Maisha W GillianGermanyAmy Elsner QUALIFIED
Ivar T MaletItalyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas E SchemmerUnited Kingdom2025-07-25Chemel, James L Cpa RENEWAL0Ioni Bowcher
1001Darci J BowleyBrazil2025-08-19Chapman, Ross E Esq QUALIFIED47Xuxue Feng
1002Chavez V StockhamJapan2025-08-17Commercial Press UNQUALIFIED77Elwin Sharvill
1003Aika Z NestleCanada2025-07-29Feltz Printing Service NEW85Asiya Javayant
1004Murillo C KolmetzBrazil2025-08-14Buckley Miller Wright PROPOSAL81Onyama Limba
1005Smith U MarrierUnited Kingdom2025-08-05Feltz Printing Service UNQUALIFIED90Asiya Javayant
1006Emily A GauchoFrance2025-08-02Morlong Associates NEW45Elwin Sharvill
1007Misaki B StockhamItaly2025-08-14Truhlar And Truhlar Attys NEGOTIATION19Stephen Shaw
1008Alejandro N SaylorsAustralia2025-08-20Buckley Miller Wright RENEWAL64Onyama Limba
1009Cody O ChuiRussia2025-08-05Truhlar And Truhlar Attys RENEWAL74Stephen Shaw
1010Ivar H MarrierUnited Kingdom2025-07-27Feltz Printing Service NEGOTIATION11Amy Elsner
1011Cody I IturbideRussia2025-08-16Chapman, Ross E Esq NEW24Asiya Javayant
1012Aika O PerinItaly2025-07-31Truhlar And Truhlar Attys PROPOSAL3Onyama Limba
1013Jefferson K GarufiJapan2025-07-31Feltz Printing Service RENEWAL63Ivan Magalhaes
1014David K GauchoGermany2025-08-10Printing Dimensions QUALIFIED69Amy Elsner
1015Antonio R MaletFrance2025-08-12Chanay, Jeffrey A Esq PROPOSAL42Anna Fali
1016Antonio P MaletJapan2025-08-21Chapman, Ross E Esq UNQUALIFIED17Xuxue Feng
1017Claire Y StensethArgentina2025-08-14Chapman, Ross E Esq QUALIFIED37Xuxue Feng
1018Costa M ShinkoJapan2025-08-19Rousseaux, Michael Esq NEW50Bernardo Dominic
1019Francesco H InouyeCanada2025-08-19Dorl, James J Esq PROPOSAL85Amy Elsner
1020Ashley J TollnerCanada2025-08-03Feiner Bros RENEWAL94Stephen Shaw
1021Ashley H TollnerBrazil2025-08-16Commercial Press NEW12Stephen Shaw
1022Isabel V DoeItaly2025-08-07Chemel, James L Cpa RENEWAL98Elwin Sharvill
1023Leon H CaldareraCanada2025-08-10Rousseaux, Michael Esq NEGOTIATION60Onyama Limba
1024Isabel O SchemmerAustralia2025-07-30Chemel, James L Cpa UNQUALIFIED8Stephen Shaw
1025Smith V FollerItaly2025-07-30Commercial Press QUALIFIED0Elwin Sharvill
1026Deepesh Q WaycottBrazil2025-08-22Commercial Press NEGOTIATION35Ioni Bowcher
1027Greenwood K BologniaCanada2025-08-21Printing Dimensions UNQUALIFIED79Onyama Limba
1028Juan S AlbaresRussia2025-08-06Feiner Bros UNQUALIFIED10Onyama Limba
1029Nicolas A NickaRussia2025-08-15Feiner Bros UNQUALIFIED87Ivan Magalhaes
1030Silvio M CampainCanada2025-08-06Buckley Miller Wright RENEWAL28Elwin Sharvill
1031Deepesh M MarrierFrance2025-08-02Feiner Bros RENEWAL69Asiya Javayant
1032Leon H NickaArgentina2025-08-12Rangoni Of Florence UNQUALIFIED45Anna Fali
1033Maria K PerinRussia2025-08-05Truhlar And Truhlar Attys UNQUALIFIED52Asiya Javayant
1034Clifford Q RoysterFrance2025-08-07Buckley Miller Wright PROPOSAL78Amy Elsner
1035Aditya G CaudyRussia2025-08-15Feltz Printing Service UNQUALIFIED69Onyama Limba
1036Munro J GlickArgentina2025-08-13Rangoni Of Florence NEW3Amy Elsner
1037Tony D SchemmerRussia2025-08-08Commercial Press PROPOSAL3Stephen Shaw
1038Maria M InouyeBrazil2025-08-21Truhlar And Truhlar Attys NEW55Ivan Magalhaes
1039Kadeem M KolmetzSpain2025-08-20Dorl, James J Esq NEGOTIATION46Anna Fali
1040Izzy Y IturbideIndia2025-08-05Chapman, Ross E Esq UNQUALIFIED75Anna Fali
1041Ricardo O GarufiRussia2025-08-20Rousseaux, Michael Esq PROPOSAL82Bernardo Dominic
1042Nicolas J MaletArgentina2025-08-20Chapman, Ross E Esq NEW36Stephen Shaw
1043Cody V DoeRussia2025-08-21Rousseaux, Michael Esq UNQUALIFIED53Elwin Sharvill
1044Aruna P FollerJapan2025-08-17Buckley Miller Wright UNQUALIFIED50Elwin Sharvill
1045Morrow D MacleadAustralia2025-08-18Morlong Associates QUALIFIED2Elwin Sharvill
1046David O RimArgentina2025-08-16Chanay, Jeffrey A Esq QUALIFIED65Anna Fali
1047Misaki L BologniaItaly2025-08-21King, Christopher A Esq RENEWAL30Anna Fali
1048Octavia S GlickRussia2025-08-08Morlong Associates QUALIFIED80Bernardo Dominic
1049David R FigeroaRussia2025-08-06Feiner Bros NEGOTIATION47Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar X WieserArgentinaOnyama Limba UNQUALIFIED
Johnson D BowleyGermanyIoni Bowcher NEW
Costa R InouyeIndiaXuxue Feng RENEWAL
Emily T FerenczAustraliaOnyama Limba PROPOSAL
Octavia Y DoeIndiaOnyama Limba QUALIFIED
Isabel C VenereGermanyIvan Magalhaes NEW
Aruna P WhobreyBrazilAnna Fali NEW
Jefferson H WaycottArgentinaIoni Bowcher NEGOTIATION
Cody I SchemmerRussiaAsiya Javayant RENEWAL
Rodrigues S MaletSpainXuxue Feng QUALIFIED
Mayumi T MorascaJapanStephen Shaw QUALIFIED
James D PoquetteBrazilBernardo Dominic UNQUALIFIED
Morrow P SaylorsItalyIoni Bowcher RENEWAL
Julie C FerenczIndiaAnna Fali PROPOSAL
Aruna H StensethBrazilStephen Shaw NEGOTIATION
Francesco B CampainAustraliaIvan Magalhaes NEW
Deepesh J SergiGermanyStephen Shaw RENEWAL
Jones G VenereBrazilBernardo Dominic QUALIFIED
Aditya O SaylorsUnited KingdomOnyama Limba PROPOSAL
Jennifer O CaudySpainOnyama Limba QUALIFIED
Morrow I SlusarskiRussiaIoni Bowcher NEW
Clifford T SergiIndiaAnna Fali RENEWAL
Chavez Z DilliardItalyIvan Magalhaes PROPOSAL
Isabel K MarrierRussiaStephen Shaw NEW
Aditya E DilliardItalyIoni Bowcher NEGOTIATION
Ashley O MarrierBrazilStephen Shaw RENEWAL
Faith Q RimJapanXuxue Feng NEGOTIATION
Izzy V BowleyJapanAnna Fali PROPOSAL
Smith B BriddickIndiaIvan Magalhaes NEGOTIATION
Jefferson N WieserUnited KingdomIoni Bowcher UNQUALIFIED
Juan X VocelkaJapanElwin Sharvill QUALIFIED
Kaitlin E VocelkaIndiaAsiya Javayant NEGOTIATION
Cody A PoquetteUnited KingdomAnna Fali NEGOTIATION
Nicolas K GlickCanadaOnyama Limba NEW
Leon X MacleadJapanIoni Bowcher UNQUALIFIED
Jennifer V GarufiBrazilAsiya Javayant NEW
Salvatore J NestleFranceXuxue Feng NEGOTIATION
Ivar I CampainItalyXuxue Feng UNQUALIFIED
James N RimGermanyStephen Shaw RENEWAL
Aika Q RutaArgentinaIvan Magalhaes NEW
Kaitlin F RulapaughJapanAmy Elsner PROPOSAL
Maisha L KolmetzAustraliaOnyama Limba NEGOTIATION
Smith W TollnerSpainElwin Sharvill PROPOSAL
Clifford S FerenczRussiaAmy Elsner NEGOTIATION
Adams Q ShinkoRussiaOnyama Limba QUALIFIED
James Y SaylorsJapanIvan Magalhaes QUALIFIED
Jefferson M GauchoSpainElwin Sharvill PROPOSAL
Maisha J FlosiIndiaAmy Elsner QUALIFIED
Johnson K ChuiSpainAsiya Javayant QUALIFIED
James R ButtCanadaElwin Sharvill RENEWAL
Frozen Columns
Name
Jeanfrancois N Malet
Ashley T Darakjy
Jefferson O Chui
Jones E Iturbide
Cody W Gaucho
Octavia D Saylors
Darci E Stenseth
Juan D Ostrosky
Arvin W Malet
Wickens N Rulapaugh
Jennifer U Gaucho
Tony P Vocelka
Munro B Glick
Nicolas B Maclead
Isabel H Marrier
Aika H Slusarski
Isabel S Whobrey
Maria C Royster
Tony X Perin
Ricardo L Chui
Aika A Glick
Jones L Flosi
Greenwood N Glick
Smith L Ferencz
Julie V Morasca
Jefferson A Sergi
David A Bolognia
Munro A Oldroyd
Adams S Dilliard
Claire K Ruta
Jefferson X Slusarski
Wickens B Venere
Jennifer O Briddick
Julie E Whobrey
Nicolas E Maclead
Aruna J Morasca
Misaki N Kolmetz
Francesco D Saylors
Francesco W Kusko
Izzy P Saylors
Kadeem U Ferencz
Darci B Bolognia
Ricardo Y Foller
Jennifer P Morasca
Aruna B Schemmer
Emily B Wieser
Salvatore M Briddick
James F Royster
Maria R Nestle
Darci S Marrier
IdCountryDate
1000India2025-08-08
1001Italy2025-07-31
1002Italy2025-08-16
1003Canada2025-08-08
1004Spain2025-08-16
1005Canada2025-08-14
1006Canada2025-08-05
1007Germany2025-08-17
1008Italy2025-08-06
1009United Kingdom2025-08-06
1010Argentina2025-08-03
1011India2025-08-21
1012France2025-08-06
1013Brazil2025-07-26
1014Australia2025-08-15
1015Argentina2025-08-01
1016France2025-08-04
1017India2025-07-28
1018Germany2025-07-31
1019Australia2025-08-16
1020Japan2025-08-08
1021Spain2025-07-29
1022Brazil2025-08-14
1023Brazil2025-08-17
1024India2025-08-13
1025Spain2025-08-04
1026Italy2025-08-13
1027United Kingdom2025-08-08
1028United Kingdom2025-07-29
1029Germany2025-08-14
1030Germany2025-08-13
1031Italy2025-08-19
1032Italy2025-08-20
1033Canada2025-07-31
1034Canada2025-07-28
1035Canada2025-08-19
1036Italy2025-07-24
1037Australia2025-08-15
1038Italy2025-07-26
1039United Kingdom2025-08-12
1040Italy2025-08-17
1041Australia2025-07-28
1042Australia2025-08-15
1043Argentina2025-07-31
1044France2025-08-15
1045Argentina2025-08-04
1046India2025-08-13
1047Italy2025-08-14
1048France2025-08-10
1049Japan2025-08-05

On-Demand Data

NameIdCountryDate
Deepesh M Dilliard1000Argentina2025-08-17
Misaki Z Garufi1001France2025-08-01
Izzy U Tollner1002Australia2025-08-06
Stacey O Wieser1003United Kingdom2025-08-06
Emily N Stenseth1004Brazil2025-08-04
Mujtaba G Iturbide1005Japan2025-07-24
David B Slusarski1006Australia2025-08-08
Rodrigues F Malet1007Canada2025-08-22
Ashley J Doe1008France2025-07-26
Jeanfrancois P Schemmer1009Russia2025-08-21
Alejandro Q Figeroa1010Japan2025-08-04
Ivar R Slusarski1011Russia2025-08-07
Kadeem K Darakjy1012Brazil2025-07-24
Murillo N Whobrey1013Australia2025-08-19
Ivar C Stockham1014Russia2025-07-31
Sinclair F Figeroa1015Brazil2025-08-07
Munro P Perin1016Canada2025-08-06
Francesco Q Nicka1017Australia2025-08-15
Leja T Kusko1018United Kingdom2025-08-07
Silvio F Doe1019Japan2025-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon B ButtFranceOnyama Limba UNQUALIFIED
Johnson I ShinkoFranceXuxue Feng PROPOSAL
Darci F PerinArgentinaXuxue Feng NEW
Cody O WieserFranceAsiya Javayant NEGOTIATION
Jennifer Q RulapaughCanadaIvan Magalhaes PROPOSAL
Wickens L StensethJapanAmy Elsner QUALIFIED
Johnson R GlickFranceOnyama Limba RENEWAL
Nicolas L SaylorsIndiaXuxue Feng PROPOSAL
Ivar H OldroydSpainAsiya Javayant NEW
Julie Y SaylorsCanadaStephen Shaw NEGOTIATION
Faith U IturbideRussiaAnna Fali PROPOSAL
Darci F RimArgentinaAmy Elsner NEW
Leja S CaldareraBrazilIvan Magalhaes NEW
Silvio M SergiSpainElwin Sharvill QUALIFIED
Nicolas G BowleyFranceBernardo Dominic NEGOTIATION
Jeanfrancois C FlosiGermanyAmy Elsner UNQUALIFIED
Clifford Z MacleadArgentinaOnyama Limba NEW
Silvio I FollerFranceIvan Magalhaes RENEWAL
Aika G CaudyArgentinaIvan Magalhaes NEGOTIATION
Jefferson V InouyeIndiaIoni Bowcher PROPOSAL
Jennifer C GarufiIndiaAnna Fali RENEWAL
Maisha I FollerRussiaXuxue Feng RENEWAL
Isabel Z TollnerSpainStephen Shaw UNQUALIFIED
Claire Z StensethArgentinaStephen Shaw NEGOTIATION
Antonio Y VenereIndiaAmy Elsner RENEWAL
Wickens U KolmetzGermanyOnyama Limba NEW
Chavez Y BriddickCanadaStephen Shaw NEW
Francesco A CaldareraCanadaOnyama Limba PROPOSAL
Emily A NestleRussiaAmy Elsner QUALIFIED
Emily J OstroskyArgentinaElwin Sharvill NEW
Murillo Y NestleIndiaIvan Magalhaes QUALIFIED
Claire J CaudyUnited KingdomAsiya Javayant PROPOSAL
Ashley Y GauchoJapanIvan Magalhaes RENEWAL
Antonio V ChuiSpainIvan Magalhaes RENEWAL
David X BowleyRussiaAsiya Javayant PROPOSAL
Ivar I OldroydGermanyStephen Shaw QUALIFIED
Mujtaba J StensethCanadaOnyama Limba QUALIFIED
Costa T CaldareraUnited KingdomAnna Fali PROPOSAL
Misaki M BowleyArgentinaIvan Magalhaes RENEWAL
Aruna W MorascaGermanyStephen 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>