• Settings
    • 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
      Estonian
      Persian
      Finnish
      Danish
      Hindi
      Indonesian
      Icelandic
      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
  • Resources

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

DataTable Tag Documentation

DataTable is an enhanced version of the standard Datatable that provides built-in solutions to many commons use cases like paging, sorting, selection, lazy loading, filtering and more.

NameTypeRequiredDefaultDescription
id String false generated Unique identifier of the component in a namingContainer.
rendered boolean false true Boolean value to specify the rendering of the component, when set to false component will not be rendered.
binding UIComponent false generated An EL expression referring to a server side UIComponent instance in a backing bean.
widgetVar String false generated ('widget_' + componentClientId) Name of the client side widget.
allowUnsorting boolean false false Defines whether columns are allowed to be unsorted.
ariaRowLabel String false Label to read by screen readers on checkbox and radio selection.
cellEditMode String false eager Defines the cell edit behavior, valid values are "eager" and "lazy".
cellNavigation boolean false true Enables cell navigation with the keyboard for WCAG and screen reader compliance.
cellSeparator String false Separator text to use in output mode of editable cells with multiple components.
clientCache boolean false false Caches the next page asynchronously.
currentPageReportTemplate String false ({currentPage} of {totalPages}) Template of the currentPageReport UI.
dataLocale Object false The view locale Locale to be used in features such as sorting.
dir String false ltr Defines text direction, valid values are ltr and rtl.
disableContextMenuIfEmpty boolean false false Decides whether to disable context menu or not if a table has no records.
draggableColumns boolean false false Decides whether datatable columns can be reordered using dragdrop.
draggableRows boolean false false When enabled, rows can be reordered using dragdrop.
draggableRowsFunction MethodExpression false Method expression to execute after dragging row.
editInitEvent String false click Defines a client side event to open cell on editable table.
editMode String false row Defines edit mode, valid values are "row" and "cell".
editable boolean false false Controls incell editing.
editingRow boolean false false Defines if cell editors of row should be displayed as editable or not. False means display mode.
emptyMessage String false i18n Text to display when there is no data to display.
escapeText boolean false true Defines if headerText and footerText values on columns are escaped or not.
expandedRow boolean false false Defines if row should be rendered as expanded by default.
exportRowTag String false If XML data exporter in use, this allows customization of the row tag in the XML.
exportTag String false If XML data exporter in use, this allows customization of the document tag in the XML.
filterBy Object false Property to be used for filtering.
filterDelay int false 300 Delay to wait in milliseconds before sending each filter query.
filterEvent String false keyup Client side event to invoke filtering. If "enter" it will only filter after ENTER key is pressed.
filterNormalize boolean false false Defines if filtering would be done using normalized values (accents will be removed from characters).
filteredValue Object false List to keep the filtered data if filtering is enabled.
first int false 0 Index of the first data to display.
frozenColumns int false 0 Number of columns to freeze
frozenColumnsAlignment String false left Defines the alignment of frozen columns, valid values are 'left' and 'right'.
frozenRows int false 0 Number of rows to freeze starting from the beginning.
globalFilter String false Value of the global filter to use when filtering by default.
globalFilterFunction MethodExpression false Custom implementation to globally filter a value against a constraint.
globalFilterOnly boolean false false When true this will hide all column filters and allow all columns to be filtered by global filter only.
lazy boolean false True, if the value-binding is instance of LazyDataModel. Defines if lazy loading is enabled for the data component.
liveResize boolean false false Columns are resized live in this mode without using a resize helper.
liveScroll boolean false false Enables live scrolling.
liveScrollBuffer int false 0 Percentage height of the buffer between the bottom of the page and the scroll position to initiate the load for the new chunk. Value is defined in integer.
multiViewState boolean false false Whether to keep component state across views.
nativeElements boolean false false In native mode, treetable uses native checkboxes.
onExpandStart String false Client side callback to execute before row expansion.
onRowClick String false Client side callback to execute after clicking row.
pageLinks int false 10 Maximum number of page links to display.
paginator boolean false false Enables pagination.
paginatorAlwaysVisible boolean false true Defines if paginator should be hidden if total data count is less than number of rows per page.
paginatorPosition String false bottom Position of the paginator.
paginatorTemplate String false {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} Template of the paginator.
partialUpdate boolean false true When disabled, it updates the whole table instead of updating a specific field such as body element in the client requests of the dataTable.
reflow boolean false false Reflow mode is a responsive mode to display columns as stacked depending on screen size.
renderEmptyFacets boolean false false Render facets even if their children are not rendered.
resizableColumns boolean false false Decides whether datatable columns are resizable or not.
resizeMode String false fit Defines the resize behavior, valid values are "fit" and expand.
rowDragSelector String false td,span:not(.ui-c) Defines the element used to reorder rows using dragdrop.
rowEditMode String false eager Defines the row edit behavior, valid values are "eager" and "lazy".
rowExpandMode String false multiple Defines row expand mode, valid values are "single" and "multiple".
rowHover boolean false false Adds hover effect to rows, default is false. Hover is always on when selection is enabled.
rowIndexVar String false Name of iterator to refer each row index.
rowKey String false Unique identifier of row data.
rowSelector String false Client side check if rowclick triggered row click event not a clickable element in row content.
rowStatePreserved boolean false false Keeps state of its children on a per-row basis.
rowStyleClass String false Style class for each row.
rowTitle String false Title for each row.
rows int false 0 Number of rows to display per page. Default value is 0 meaning to display all data available.
rowsPerPageTemplate String false Template of the rowsPerPage dropdown.
saveOnCellBlur boolean false true Saves the changes in cell editing on blur, when set to false changes are discarded.
scrollHeight String false Height for scrollable data.
scrollRows int false 0 Number of rows to display in virtual scrolling mode.
scrollWidth String false Width for scrollable data.
scrollable boolean false false Makes data scrollable with fixed header.
selectAllFilteredOnly boolean false false When enabled, toggle select will only apply on filtered items.
selection Object false Reference to the selection data.
selectionDisabled boolean false false Disables row selection when true.
selectionMode String false Detected though the "selection" value expression. Enables data selection, valid values are "single" and "multiple".
selectionPageOnly boolean false true When using paginator and checkbox selection mode the select all checkbox in header will select the current page if true or all rows if false. When false, individual row unselections after 'select all' are preserved even across page navigation.
selectionRowMode String false new Indicates how rows of a DataTable may be selected, when clicking on the row itself (not the checkbox / radiobutton from p:column). The value `new` always unselects other rows, `add` preserves the currently selected rows, and `none` disables row selection.
selectionTextDisabled boolean false true Disables text selection on row click.
showGridlines boolean false false When enables, cell borders are displayed.
showSelectAll boolean false true Whether to show the select all checkbox inside the column's header.
size String false regular Size of the table content, valid values are "small", "regular" and "large".
skipChildren boolean false false Ignores processing of children during lifecycle, improves performance if table only has output components.
sortBy Object false Property to be used for sorting.
sortMode String false multiple Defines sorting mode, valid values are "single" and "multiple".
stickyHeader boolean false false Sticky header stays in window viewport during scrolling.
stickyTopAt String false Selector to position on the page according to other fixing elements on the top of the table.
stripedRows boolean false false Whether to display striped rows to visually separate content.
style String false Inline style of the component.
styleClass String false Style class of the component.
summary String false Summary attribute for WCAG.
tabindex String false 0 Position of the element in the tabbing order.
tableStyle String false Inline style of the table element.
tableStyleClass String false Style class of the table element.
touchable Boolean false Enable touch if supported by device. NULL uses global default or primefaces.TOUCHABLE. Default: globally enabled.
value Object true Datasource of the component.
var String true Name of the iterator variable that references each element in the data set.
virtualScroll boolean false false Loads data on demand as the scrollbar gets close to the bottom.
Loading...
Tag DocumentationNew DocumentationNew Documentation JSDoc Basic ColumnToggler ContextMenu Crud DisplayPriority Dynamic Columns Edit Facets Field Filter Gridlines Group Lazy MultiViewState Paginator Reorder Resize Responsive RowAdd RowColor RowExpansion RowGroup RowTitle RTL Scroll Selection Size Sort StickyHeader StripedRows SubTable
Vertical
NameCountryRepresentativeStatus
Claire W FerenczGermanyXuxue Feng QUALIFIED
Mujtaba P GarufiRussiaElwin Sharvill QUALIFIED
Silvio P KuskoFranceAnna Fali NEGOTIATION
Clifford R PaprockiFranceIoni Bowcher UNQUALIFIED
Maria U AlbaresItalyIoni Bowcher PROPOSAL
Jones V WaycottCanadaIvan Magalhaes PROPOSAL
Faith L WieserFranceIoni Bowcher PROPOSAL
Maria V StockhamBrazilXuxue Feng NEW
Johnson H WhobreyAustraliaIoni Bowcher NEGOTIATION
Izzy I SchemmerAustraliaAsiya Javayant RENEWAL
Ricardo J MorascaJapanIoni Bowcher QUALIFIED
Wickens B ShinkoJapanStephen Shaw PROPOSAL
Murillo U BriddickFranceAmy Elsner RENEWAL
Misaki Z GillianGermanyXuxue Feng QUALIFIED
Adams M CampainArgentinaAnna Fali QUALIFIED
Silvio R VenereCanadaIvan Magalhaes NEW
Ricardo J NestleAustraliaXuxue Feng UNQUALIFIED
Aditya D MarrierGermanyAnna Fali UNQUALIFIED
James P RulapaughSpainIoni Bowcher QUALIFIED
Aditya R ButtCanadaAsiya Javayant RENEWAL
Alejandro Z TollnerRussiaXuxue Feng QUALIFIED
Wickens H CaldareraCanadaAsiya Javayant NEGOTIATION
Aruna N VenereAustraliaAnna Fali QUALIFIED
Deepesh L AmigonUnited KingdomOnyama Limba PROPOSAL
Ricardo N PoquetteItalyStephen Shaw PROPOSAL
Nicolas S NickaUnited KingdomIoni Bowcher NEGOTIATION
Deepesh A ChuiJapanIvan Magalhaes PROPOSAL
Aruna Z DilliardCanadaStephen Shaw RENEWAL
Kadeem T GlickSpainAnna Fali UNQUALIFIED
Jeanfrancois E AmigonFranceAnna Fali QUALIFIED
Jeanfrancois R SaylorsRussiaElwin Sharvill NEW
Johnson M KuskoRussiaIoni Bowcher NEGOTIATION
Adams V PaprockiItalyXuxue Feng QUALIFIED
Julie E GlickRussiaAmy Elsner NEGOTIATION
James Z MacleadRussiaIoni Bowcher PROPOSAL
Johnson U FigeroaCanadaStephen Shaw NEGOTIATION
Ivar B VenereSpainAsiya Javayant QUALIFIED
Izzy P ChuiBrazilElwin Sharvill QUALIFIED
Adams K NestleJapanAnna Fali NEW
Jeanfrancois L CaudyFranceAmy Elsner NEGOTIATION
Maria A StensethIndiaXuxue Feng PROPOSAL
Johnson C BowleyIndiaAsiya Javayant NEGOTIATION
Jeanfrancois R DarakjyIndiaAsiya Javayant UNQUALIFIED
James D WaycottGermanyElwin Sharvill PROPOSAL
David U GillianBrazilAmy Elsner UNQUALIFIED
Emily F ButtGermanyStephen Shaw UNQUALIFIED
Johnson F ShinkoGermanyOnyama Limba NEGOTIATION
Octavia L StensethGermanyIoni Bowcher NEGOTIATION
Stacey G KuskoUnited KingdomXuxue Feng QUALIFIED
David J DilliardCanadaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Claire H MorascaBrazilAmy Elsner NEW
Cody I DarakjyGermanyAsiya Javayant NEW
Kaitlin D AmigonUnited KingdomAsiya Javayant RENEWAL
Cody M StensethRussiaElwin Sharvill PROPOSAL
Stacey S DilliardRussiaElwin Sharvill QUALIFIED
Kadeem W BowleyJapanStephen Shaw RENEWAL
Clifford G MarrierSpainAmy Elsner UNQUALIFIED
Mayumi H ShinkoFranceElwin Sharvill QUALIFIED
Munro Y FerenczBrazilIoni Bowcher NEGOTIATION
Emily A DoeRussiaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi E ChuiGermany2026-10-19Benton, John B Jr UNQUALIFIED49Onyama Limba
1001Chavez E AlbaresBrazil2026-10-08Printing Dimensions NEW2Elwin Sharvill
1002Arvin A GarufiBrazil2026-10-01Printing Dimensions UNQUALIFIED59Onyama Limba
1003David R MaletArgentina2026-10-08Buckley Miller Wright PROPOSAL1Bernardo Dominic
1004Johnson L StensethUnited Kingdom2026-10-19Feltz Printing Service PROPOSAL71Xuxue Feng
1005Antonio O PoquetteGermany2026-10-09Benton, John B Jr UNQUALIFIED45Stephen Shaw
1006Antonio W NickaFrance2026-10-17Morlong Associates NEGOTIATION55Stephen Shaw
1007Francesco W StensethBrazil2026-10-08Morlong Associates NEGOTIATION32Ioni Bowcher
1008Leon F GarufiJapan2026-10-10Morlong Associates RENEWAL9Stephen Shaw
1009Jennifer P IturbideUnited Kingdom2026-10-24Morlong Associates RENEWAL72Ivan Magalhaes
1010Aika M DoeRussia2026-10-24Benton, John B Jr NEGOTIATION41Asiya Javayant
1011Izzy W DilliardCanada2026-10-06Feltz Printing Service QUALIFIED88Asiya Javayant
1012David X BologniaUnited Kingdom2026-10-23Chanay, Jeffrey A Esq RENEWAL32Bernardo Dominic
1013Chavez S ChuiRussia2026-09-30King, Christopher A Esq QUALIFIED30Asiya Javayant
1014Julie W KuskoUnited Kingdom2026-10-12Feiner Bros NEGOTIATION54Elwin Sharvill
1015Munro D RimCanada2026-10-15Morlong Associates PROPOSAL69Amy Elsner
1016Jeanfrancois L FlosiJapan2026-09-27Printing Dimensions NEGOTIATION82Elwin Sharvill
1017Leja M FollerJapan2026-10-19Truhlar And Truhlar Attys PROPOSAL47Stephen Shaw
1018Jeanfrancois F AmigonGermany2026-09-26Commercial Press UNQUALIFIED70Bernardo Dominic
1019Isabel J DoeBrazil2026-10-01King, Christopher A Esq QUALIFIED86Anna Fali
1020Sinclair X VocelkaArgentina2026-09-28Printing Dimensions NEGOTIATION70Ivan Magalhaes
1021Aruna U InouyeArgentina2026-10-06Chanay, Jeffrey A Esq RENEWAL44Ioni Bowcher
1022Kadeem M InouyeFrance2026-10-09Chemel, James L Cpa UNQUALIFIED15Ivan Magalhaes
1023Johnson F RimAustralia2026-10-19Chanay, Jeffrey A Esq RENEWAL52Xuxue Feng
1024Jeanfrancois Q StensethFrance2026-10-23Printing Dimensions PROPOSAL74Anna Fali
1025Rodrigues Y SlusarskiArgentina2026-10-23Chapman, Ross E Esq NEGOTIATION58Asiya Javayant
1026Costa J PerinFrance2026-10-15Chanay, Jeffrey A Esq NEW29Bernardo Dominic
1027Morrow J VocelkaIndia2026-09-26Rangoni Of Florence NEW61Stephen Shaw
1028Claire K VenereItaly2026-09-30Benton, John B Jr RENEWAL16Asiya Javayant
1029Rodrigues R AlbaresJapan2026-10-16Chemel, James L Cpa UNQUALIFIED6Ioni Bowcher
1030Izzy H VocelkaRussia2026-09-29Commercial Press UNQUALIFIED32Stephen Shaw
1031Maria Y ShinkoUnited Kingdom2026-09-29Feiner Bros NEGOTIATION46Onyama Limba
1032Silvio R FerenczAustralia2026-10-18Commercial Press PROPOSAL9Bernardo Dominic
1033Leja B SchemmerFrance2026-10-06Chanay, Jeffrey A Esq NEW2Xuxue Feng
1034Leon I ButtItaly2026-10-05Printing Dimensions NEGOTIATION5Ioni Bowcher
1035Wickens F KuskoBrazil2026-09-29Rangoni Of Florence NEGOTIATION41Asiya Javayant
1036Jeanfrancois R FigeroaFrance2026-10-06Rousseaux, Michael Esq RENEWAL24Xuxue Feng
1037Ivar J ChuiRussia2026-10-04Feiner Bros PROPOSAL65Ivan Magalhaes
1038Jones R FollerAustralia2026-10-14Feltz Printing Service UNQUALIFIED52Ivan Magalhaes
1039Darci T CampainIndia2026-10-09Feltz Printing Service NEGOTIATION96Asiya Javayant
1040Tony K DoeGermany2026-10-03Rousseaux, Michael Esq QUALIFIED17Elwin Sharvill
1041Ricardo F VocelkaJapan2026-10-17Dorl, James J Esq PROPOSAL32Xuxue Feng
1042Claire Y MarrierCanada2026-10-09Morlong Associates RENEWAL39Elwin Sharvill
1043Adams Y FigeroaArgentina2026-10-11Printing Dimensions UNQUALIFIED57Stephen Shaw
1044Ivar T RoysterUnited Kingdom2026-10-06Commercial Press UNQUALIFIED34Amy Elsner
1045Leja V WhobreyBrazil2026-10-09Dorl, James J Esq UNQUALIFIED18Elwin Sharvill
1046Morrow D RoysterBrazil2026-09-27Chemel, James L Cpa RENEWAL43Asiya Javayant
1047Sinclair O MacleadFrance2026-10-03Morlong Associates NEGOTIATION27Bernardo Dominic
1048Johnson F AlbaresIndia2026-10-11Commercial Press NEGOTIATION23Amy Elsner
1049Ashley F GlickCanada2026-10-03Chapman, Ross E Esq UNQUALIFIED61Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Julie A GauchoAustraliaBernardo Dominic NEGOTIATION
Julie I BologniaArgentinaXuxue Feng NEGOTIATION
David Z ShinkoIndiaIoni Bowcher NEGOTIATION
Rodrigues C TollnerBrazilXuxue Feng NEGOTIATION
Stacey C AmigonRussiaIvan Magalhaes NEW
Emily T WhobreyRussiaIvan Magalhaes RENEWAL
Juan V MacleadRussiaXuxue Feng RENEWAL
Morrow T FlosiBrazilBernardo Dominic RENEWAL
James J SaylorsBrazilElwin Sharvill NEW
Stacey J RimIndiaBernardo Dominic PROPOSAL
Rodrigues J CaldareraJapanAnna Fali PROPOSAL
Smith B RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Faith Z RutaItalyStephen Shaw PROPOSAL
Ashley R WieserSpainXuxue Feng NEGOTIATION
Claire I KuskoAustraliaElwin Sharvill UNQUALIFIED
Murillo J KuskoRussiaOnyama Limba NEW
Julie A BriddickItalyOnyama Limba RENEWAL
Isabel W ButtAustraliaIvan Magalhaes RENEWAL
Julie J PerinSpainAmy Elsner NEW
Leon I SergiRussiaElwin Sharvill RENEWAL
Antonio E IturbideRussiaAmy Elsner NEW
Jones A FollerCanadaAmy Elsner QUALIFIED
David Q MaletBrazilBernardo Dominic PROPOSAL
Julie L GarufiIndiaAnna Fali PROPOSAL
James O NickaItalyXuxue Feng PROPOSAL
Chavez C PoquetteJapanAsiya Javayant PROPOSAL
Leon U MarrierIndiaAmy Elsner NEW
Maria E WaycottItalyIoni Bowcher QUALIFIED
Adams Z GlickBrazilAmy Elsner UNQUALIFIED
Rodrigues S AlbaresArgentinaXuxue Feng QUALIFIED
Arvin K SlusarskiUnited KingdomAnna Fali PROPOSAL
Antonio U PerinIndiaStephen Shaw NEGOTIATION
Silvio W DoeAustraliaStephen Shaw UNQUALIFIED
Antonio Z WhobreyJapanAmy Elsner NEW
Kaitlin X InouyeArgentinaBernardo Dominic NEW
Smith F SlusarskiJapanOnyama Limba NEW
Mujtaba K CampainIndiaStephen Shaw RENEWAL
Rodrigues B CaudyRussiaOnyama Limba UNQUALIFIED
Munro C RulapaughAustraliaAsiya Javayant PROPOSAL
Jefferson V OstroskyUnited KingdomXuxue Feng QUALIFIED
Costa X WhobreyAustraliaStephen Shaw PROPOSAL
Leon N PaprockiIndiaAmy Elsner RENEWAL
Aditya R VocelkaAustraliaStephen Shaw PROPOSAL
Darci H AmigonJapanStephen Shaw QUALIFIED
Aruna H DarakjyRussiaOnyama Limba QUALIFIED
Greenwood W SchemmerGermanyElwin Sharvill NEW
Tony Z SlusarskiIndiaXuxue Feng NEGOTIATION
Mujtaba Y DoeArgentinaElwin Sharvill QUALIFIED
Kaitlin W WieserGermanyAmy Elsner NEW
Salvatore X RimBrazilAnna Fali RENEWAL
Frozen Columns
Name
Chavez Y Inouye
Stacey H Caudy
Deepesh K Bowley
Tony W Saylors
Leon F Stockham
Emily B Gillian
Claire O Nestle
Leja M Venere
Deepesh Q Inouye
Wickens J Bowley
Munro C Campain
Aika P Slusarski
Maisha U Saylors
Mayumi K Gaucho
Jones C Ruta
Nicolas O Butt
Claire C Rulapaugh
Emily Z Nestle
Kaitlin K Caldarera
Johnson Z Glick
Rodrigues M Nestle
Greenwood R Oldroyd
Wickens C Campain
James W Saylors
Aika Y Kusko
Aruna R Royster
Rodrigues H Bolognia
Claire S Rim
Isabel C Perin
Izzy V Nestle
Ricardo A Gillian
Ricardo A Albares
David Q Maclead
Clifford R Inouye
Octavia G Gaucho
Nicolas V Amigon
Deepesh P Iturbide
Rodrigues G Doe
Francesco Z Nestle
Jefferson X Caldarera
Octavia F Tollner
Cody D Stenseth
Deepesh E Iturbide
Misaki U Briddick
Leon Z Waycott
Mayumi B Foller
Aditya N Whobrey
Tony W Rulapaugh
Sinclair U Glick
Julie G Malet
IdCountryDate
1000Russia2026-10-24
1001Spain2026-09-25
1002Canada2026-09-28
1003Italy2026-09-30
1004Australia2026-10-21
1005Australia2026-10-15
1006Russia2026-10-13
1007Italy2026-09-28
1008Italy2026-10-14
1009Australia2026-10-10
1010Italy2026-09-29
1011Brazil2026-10-15
1012Spain2026-09-25
1013Australia2026-10-12
1014Australia2026-10-22
1015France2026-09-30
1016Spain2026-09-27
1017Canada2026-10-20
1018United Kingdom2026-10-02
1019Brazil2026-10-18
1020Germany2026-09-28
1021Russia2026-09-27
1022France2026-10-05
1023Germany2026-09-27
1024Germany2026-10-14
1025Argentina2026-10-23
1026Germany2026-10-05
1027Brazil2026-10-15
1028Germany2026-10-11
1029Italy2026-09-28
1030Australia2026-10-11
1031Argentina2026-10-15
1032India2026-10-17
1033France2026-10-17
1034Spain2026-10-12
1035Germany2026-10-02
1036Canada2026-10-05
1037Spain2026-10-17
1038Australia2026-10-06
1039India2026-10-11
1040Australia2026-10-13
1041Spain2026-09-28
1042India2026-10-18
1043Canada2026-10-04
1044France2026-10-19
1045United Kingdom2026-09-30
1046France2026-10-07
1047United Kingdom2026-10-24
1048Spain2026-10-13
1049Canada2026-10-23

On-Demand Data

NameIdCountryDate
Greenwood V Chui1000Germany2026-10-07
Antonio H Whobrey1001India2026-10-06
Ivar J Caudy1002Brazil2026-09-28
Francesco J Kusko1003India2026-10-18
Smith A Butt1004Canada2026-10-02
Jennifer N Shinko1005Canada2026-10-06
Faith L Stockham1006Argentina2026-10-09
Julie O Paprocki1007Australia2026-10-20
Silvio Z Nestle1008France2026-10-14
Mayumi O Whobrey1009Argentina2026-09-28
Smith C Saylors1010Canada2026-10-21
Faith C Foller1011Australia2026-10-11
Johnson N Nicka1012India2026-10-07
Smith M Kusko1013Italy2026-10-07
Arvin X Malet1014India2026-10-22
Octavia X Foller1015Germany2026-10-21
David K Ostrosky1016Brazil2026-10-19
Juan N Slusarski1017Australia2026-10-07
Maria F Saylors1018Spain2026-10-06
Kadeem R Darakjy1019Argentina2026-10-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin A BologniaRussiaBernardo Dominic NEGOTIATION
Kadeem W IturbideSpainAnna Fali RENEWAL
Deepesh V MarrierIndiaAsiya Javayant PROPOSAL
Wickens P CaudyRussiaOnyama Limba PROPOSAL
Deepesh Q GillianJapanStephen Shaw NEW
Munro J PaprockiJapanAmy Elsner RENEWAL
Aruna V GillianCanadaStephen Shaw NEW
Misaki B OldroydAustraliaAnna Fali NEW
Murillo N RimFranceElwin Sharvill RENEWAL
Jennifer X KuskoBrazilAsiya Javayant NEW
Misaki A GillianFranceBernardo Dominic UNQUALIFIED
Mayumi E CaudyIndiaAsiya Javayant RENEWAL
Sinclair D CaldareraCanadaAmy Elsner NEW
Darci I OstroskyArgentinaElwin Sharvill UNQUALIFIED
Smith Y TollnerJapanOnyama Limba PROPOSAL
Misaki F AmigonItalyAnna Fali QUALIFIED
Nicolas U IturbideAustraliaElwin Sharvill PROPOSAL
Izzy H BriddickCanadaStephen Shaw QUALIFIED
Juan R ShinkoUnited KingdomAmy Elsner PROPOSAL
Clifford H MarrierSpainAsiya Javayant QUALIFIED
Johnson S DoeArgentinaElwin Sharvill NEW
Jennifer G BologniaRussiaAsiya Javayant NEGOTIATION
Munro A CampainUnited KingdomOnyama Limba RENEWAL
Salvatore J PaprockiJapanIoni Bowcher NEGOTIATION
Mayumi R AmigonBrazilAmy Elsner UNQUALIFIED
Smith W BologniaGermanyStephen Shaw UNQUALIFIED
Morrow F InouyeSpainAmy Elsner UNQUALIFIED
Adams J MarrierIndiaElwin Sharvill NEW
Chavez V BologniaRussiaElwin Sharvill PROPOSAL
Izzy U ButtItalyOnyama Limba RENEWAL
Munro D SchemmerGermanyAnna Fali PROPOSAL
David K BowleySpainXuxue Feng UNQUALIFIED
Jeanfrancois Q MorascaRussiaIvan Magalhaes RENEWAL
Murillo F MaletCanadaOnyama Limba RENEWAL
Aruna R ChuiCanadaBernardo Dominic PROPOSAL
Octavia U WieserCanadaIoni Bowcher RENEWAL
Munro G MaletItalyElwin Sharvill NEW
Deepesh T StockhamGermanyBernardo Dominic UNQUALIFIED
Leon G SchemmerCanadaAsiya Javayant QUALIFIED
Johnson J FlosiRussiaXuxue Feng PROPOSAL

Usage


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