• 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
Cody J SchemmerArgentinaStephen Shaw NEW
Clifford R StockhamIndiaAmy Elsner QUALIFIED
Maisha S AmigonJapanAnna Fali UNQUALIFIED
Aika O RulapaughAustraliaAmy Elsner PROPOSAL
Tony H TollnerBrazilAmy Elsner NEGOTIATION
Deepesh N CampainRussiaOnyama Limba NEGOTIATION
Greenwood E SaylorsSpainAmy Elsner NEW
Jennifer X RutaGermanyXuxue Feng NEGOTIATION
Ashley X FerenczGermanyXuxue Feng RENEWAL
Misaki W ShinkoBrazilBernardo Dominic RENEWAL
Francesco P KolmetzCanadaAnna Fali NEGOTIATION
Ivar Y RoysterBrazilAmy Elsner QUALIFIED
Darci R RulapaughArgentinaAnna Fali PROPOSAL
Kaitlin Z DoeJapanAnna Fali PROPOSAL
Rodrigues C MacleadGermanyAnna Fali PROPOSAL
Sinclair L CampainIndiaStephen Shaw RENEWAL
Maisha L PerinFranceIoni Bowcher RENEWAL
Munro Q DarakjyItalyStephen Shaw NEW
Ashley T SergiCanadaBernardo Dominic PROPOSAL
Aditya U StensethArgentinaStephen Shaw QUALIFIED
Jones E DoeArgentinaElwin Sharvill NEGOTIATION
Darci J ButtArgentinaIoni Bowcher NEGOTIATION
Rodrigues J CampainGermanyElwin Sharvill QUALIFIED
Jones Y FerenczSpainIvan Magalhaes NEGOTIATION
Chavez D FerenczIndiaIvan Magalhaes QUALIFIED
Juan Z PoquetteSpainAmy Elsner QUALIFIED
Ivar M RoysterIndiaXuxue Feng QUALIFIED
Juan M AlbaresIndiaBernardo Dominic NEGOTIATION
Nicolas L AmigonBrazilAmy Elsner NEW
Sinclair D StockhamAustraliaXuxue Feng UNQUALIFIED
Johnson Q MaletUnited KingdomAmy Elsner RENEWAL
Ashley K PoquetteFranceOnyama Limba QUALIFIED
Alejandro W VenereBrazilBernardo Dominic NEGOTIATION
Juan P PoquetteArgentinaAsiya Javayant QUALIFIED
Jones T StensethSpainOnyama Limba NEGOTIATION
Stacey Y AmigonArgentinaOnyama Limba NEW
Nicolas R GillianSpainXuxue Feng RENEWAL
Jennifer V TollnerArgentinaAsiya Javayant PROPOSAL
Tony A FigeroaArgentinaBernardo Dominic PROPOSAL
Munro L GarufiIndiaXuxue Feng NEGOTIATION
Faith K ButtRussiaAsiya Javayant NEW
Costa F MaletJapanOnyama Limba UNQUALIFIED
Nicolas P TollnerItalyAmy Elsner UNQUALIFIED
Greenwood K CampainBrazilElwin Sharvill PROPOSAL
Salvatore P RutaAustraliaIoni Bowcher QUALIFIED
Alejandro B SaylorsGermanyAmy Elsner RENEWAL
Deepesh E NickaUnited KingdomAnna Fali NEW
Jeanfrancois O MacleadIndiaStephen Shaw NEW
Tony K NickaIndiaStephen Shaw QUALIFIED
Jones I FerenczAustraliaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro U ShinkoBrazilAnna Fali UNQUALIFIED
David U MacleadItalyIvan Magalhaes PROPOSAL
Adams T WaycottAustraliaXuxue Feng PROPOSAL
Maisha K GlickCanadaXuxue Feng PROPOSAL
Claire Q DarakjySpainBernardo Dominic NEGOTIATION
Deepesh I SergiRussiaIoni Bowcher QUALIFIED
Tony Z CampainRussiaAnna Fali QUALIFIED
Faith O CampainRussiaIoni Bowcher QUALIFIED
Chavez H StockhamBrazilBernardo Dominic QUALIFIED
Faith H AmigonBrazilBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Z SchemmerUnited Kingdom2026-09-25Rousseaux, Michael Esq RENEWAL0Xuxue Feng
1001Johnson F DilliardItaly2026-09-27Rangoni Of Florence PROPOSAL60Anna Fali
1002Smith N BriddickIndia2026-09-24Benton, John B Jr NEGOTIATION85Ioni Bowcher
1003Nicolas A MaletBrazil2026-10-07Feiner Bros RENEWAL9Ivan Magalhaes
1004Antonio O InouyeArgentina2026-09-28Rangoni Of Florence QUALIFIED25Anna Fali
1005Aruna N StockhamFrance2026-10-21Chemel, James L Cpa NEGOTIATION62Stephen Shaw
1006Francesco P TollnerUnited Kingdom2026-09-28Benton, John B Jr PROPOSAL22Bernardo Dominic
1007Mujtaba R StockhamJapan2026-10-05Truhlar And Truhlar Attys UNQUALIFIED40Bernardo Dominic
1008Chavez K TollnerJapan2026-10-17Buckley Miller Wright QUALIFIED88Xuxue Feng
1009Aika I WaycottArgentina2026-10-05Chemel, James L Cpa QUALIFIED85Onyama Limba
1010Murillo F GlickIndia2026-10-22Feltz Printing Service UNQUALIFIED15Xuxue Feng
1011Stacey D GarufiArgentina2026-09-25Chapman, Ross E Esq NEW65Asiya Javayant
1012Leja K TollnerAustralia2026-09-25Feltz Printing Service NEGOTIATION26Anna Fali
1013Maria N FerenczUnited Kingdom2026-09-25Benton, John B Jr QUALIFIED54Elwin Sharvill
1014Leja T WieserItaly2026-10-06Chanay, Jeffrey A Esq NEW98Bernardo Dominic
1015Johnson S WieserIndia2026-10-14Feltz Printing Service NEGOTIATION46Bernardo Dominic
1016Maisha K GillianGermany2026-09-26Commercial Press RENEWAL83Xuxue Feng
1017Jeanfrancois N SchemmerAustralia2026-09-30Rangoni Of Florence NEW98Ivan Magalhaes
1018Tony J VocelkaRussia2026-09-24Chemel, James L Cpa UNQUALIFIED55Amy Elsner
1019Emily F GillianFrance2026-09-30Chemel, James L Cpa NEW56Bernardo Dominic
1020Leon O VocelkaCanada2026-10-05Chemel, James L Cpa PROPOSAL51Ioni Bowcher
1021Alejandro R TollnerBrazil2026-10-19King, Christopher A Esq NEW69Ioni Bowcher
1022Adams A GarufiUnited Kingdom2026-09-24Feiner Bros NEW5Ivan Magalhaes
1023David D OldroydAustralia2026-10-01Rangoni Of Florence NEW76Onyama Limba
1024Jones R NestleJapan2026-09-28Rousseaux, Michael Esq QUALIFIED99Amy Elsner
1025Emily J VenereUnited Kingdom2026-10-08Chapman, Ross E Esq PROPOSAL28Onyama Limba
1026Faith C ChuiJapan2026-10-16Rousseaux, Michael Esq NEGOTIATION62Amy Elsner
1027Costa R FlosiUnited Kingdom2026-10-19Rangoni Of Florence NEGOTIATION82Amy Elsner
1028Murillo Z PoquetteJapan2026-10-07Chemel, James L Cpa UNQUALIFIED74Ivan Magalhaes
1029Murillo P InouyeRussia2026-10-19Feiner Bros UNQUALIFIED39Ivan Magalhaes
1030Aditya A DilliardRussia2026-10-12Chanay, Jeffrey A Esq NEW69Anna Fali
1031Ivar O KolmetzBrazil2026-10-03Chemel, James L Cpa RENEWAL99Amy Elsner
1032Tony T MaletCanada2026-09-29Dorl, James J Esq UNQUALIFIED10Elwin Sharvill
1033Aruna V WaycottFrance2026-10-01Chanay, Jeffrey A Esq NEW39Xuxue Feng
1034Leon U GillianArgentina2026-10-01Rousseaux, Michael Esq RENEWAL24Anna Fali
1035Aruna M KolmetzBrazil2026-10-15Rangoni Of Florence NEGOTIATION32Elwin Sharvill
1036Isabel B DarakjyUnited Kingdom2026-10-03Printing Dimensions RENEWAL12Anna Fali
1037Rodrigues A OldroydItaly2026-10-07Feltz Printing Service NEGOTIATION84Elwin Sharvill
1038Emily Y PoquetteFrance2026-10-09Chapman, Ross E Esq PROPOSAL57Bernardo Dominic
1039Aika Z SaylorsCanada2026-10-22Chemel, James L Cpa NEGOTIATION23Stephen Shaw
1040Ashley C RutaJapan2026-10-03Benton, John B Jr NEW82Elwin Sharvill
1041Emily P FollerAustralia2026-10-22Rangoni Of Florence RENEWAL8Onyama Limba
1042Ivar L DarakjyGermany2026-10-06Feiner Bros NEW47Ivan Magalhaes
1043Jones D StockhamFrance2026-10-10Morlong Associates NEGOTIATION95Stephen Shaw
1044Maisha S NestleJapan2026-10-15Printing Dimensions NEGOTIATION70Elwin Sharvill
1045Adams W KuskoGermany2026-10-06Feltz Printing Service RENEWAL28Onyama Limba
1046Aika Q WieserGermany2026-10-07Chapman, Ross E Esq UNQUALIFIED9Ivan Magalhaes
1047Nicolas B MaletRussia2026-09-30Printing Dimensions NEGOTIATION38Ioni Bowcher
1048Morrow I TollnerAustralia2026-10-04Truhlar And Truhlar Attys NEGOTIATION87Onyama Limba
1049Sinclair F SaylorsSpain2026-10-19Rangoni Of Florence UNQUALIFIED33Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Francesco K DilliardRussiaAnna Fali RENEWAL
Murillo Y IturbideUnited KingdomXuxue Feng NEGOTIATION
Costa O ChuiAustraliaAnna Fali NEGOTIATION
Jones N WieserBrazilBernardo Dominic QUALIFIED
Leon Y WieserJapanIoni Bowcher RENEWAL
Kadeem V MarrierItalyAmy Elsner NEGOTIATION
Juan Y DoeCanadaIoni Bowcher UNQUALIFIED
Chavez E TollnerBrazilIvan Magalhaes RENEWAL
Murillo Y MarrierCanadaAnna Fali RENEWAL
Salvatore A IturbideCanadaOnyama Limba PROPOSAL
Kaitlin X PaprockiIndiaAmy Elsner QUALIFIED
Ivar C CampainUnited KingdomAnna Fali QUALIFIED
Ivar G VocelkaUnited KingdomBernardo Dominic NEW
James F PaprockiGermanyStephen Shaw NEGOTIATION
Emily D KolmetzRussiaAsiya Javayant NEGOTIATION
Juan H MaletAustraliaStephen Shaw PROPOSAL
Leon Y DilliardIndiaStephen Shaw UNQUALIFIED
Kaitlin C IturbideCanadaElwin Sharvill NEGOTIATION
Jefferson X OldroydArgentinaAmy Elsner NEGOTIATION
Costa D DarakjySpainElwin Sharvill QUALIFIED
Darci W SchemmerAustraliaXuxue Feng PROPOSAL
Octavia X AlbaresUnited KingdomBernardo Dominic PROPOSAL
Maria Z OldroydArgentinaBernardo Dominic RENEWAL
Jennifer J SergiBrazilStephen Shaw PROPOSAL
Maisha O OldroydAustraliaIoni Bowcher QUALIFIED
Maria R GauchoBrazilIoni Bowcher RENEWAL
Greenwood K RoysterBrazilIoni Bowcher QUALIFIED
Darci G SchemmerFranceAmy Elsner QUALIFIED
Mujtaba N InouyeArgentinaElwin Sharvill NEW
Faith K StockhamFranceAsiya Javayant PROPOSAL
Aika D RutaJapanAsiya Javayant RENEWAL
Maisha C OldroydSpainBernardo Dominic PROPOSAL
Adams Y ChuiItalyAsiya Javayant PROPOSAL
Jones B WaycottIndiaAmy Elsner UNQUALIFIED
Sinclair X ButtFranceIvan Magalhaes UNQUALIFIED
Silvio N DarakjyGermanyXuxue Feng UNQUALIFIED
Leon X IturbideBrazilAmy Elsner PROPOSAL
Jeanfrancois T PerinJapanIoni Bowcher NEGOTIATION
Leon Z FigeroaAustraliaElwin Sharvill QUALIFIED
Julie J RimUnited KingdomOnyama Limba RENEWAL
Tony L KuskoFranceOnyama Limba RENEWAL
Salvatore B PaprockiBrazilStephen Shaw NEGOTIATION
Kadeem Y KolmetzUnited KingdomStephen Shaw QUALIFIED
Costa Y CampainGermanyBernardo Dominic NEGOTIATION
Salvatore O FigeroaSpainXuxue Feng PROPOSAL
Jeanfrancois W MaletAustraliaIvan Magalhaes QUALIFIED
Mayumi R InouyeBrazilElwin Sharvill PROPOSAL
Chavez U SergiCanadaAmy Elsner RENEWAL
Cody Y MacleadFranceAnna Fali PROPOSAL
Salvatore L AmigonAustraliaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Juan V Schemmer
Morrow I Royster
Johnson M Marrier
Isabel G Caldarera
Salvatore I Kolmetz
Clifford Q Caldarera
Francesco Y Nicka
Darci O Slusarski
Misaki Y Wieser
Clifford G Marrier
Faith T Flosi
Mayumi P Garufi
Izzy N Albares
Clifford B Inouye
Adams X Malet
Isabel V Gaucho
Tony H Vocelka
Antonio E Stenseth
Ricardo J Malet
Faith J Gaucho
Morrow O Stockham
Adams F Ruta
Silvio X Maclead
Sinclair P Nicka
Francesco E Caldarera
Mayumi A Flosi
Salvatore O Gillian
Antonio K Gaucho
Jennifer V Nestle
Smith U Rim
Cody A Garufi
Jennifer Y Inouye
Octavia N Caldarera
Isabel Z Perin
Smith B Caudy
Misaki Z Garufi
Francesco J Malet
Jefferson S Caudy
Jones X Waycott
Silvio D Dilliard
Ricardo Y Stenseth
Francesco L Rim
Faith P Schemmer
Mujtaba I Schemmer
Stacey V Oldroyd
Mujtaba N Darakjy
Johnson D Maclead
Antonio W Bolognia
Octavia U Maclead
Silvio O Inouye
IdCountryDate
1000Australia2026-10-22
1001Japan2026-10-06
1002Germany2026-10-04
1003France2026-10-22
1004Germany2026-09-26
1005Australia2026-10-16
1006Brazil2026-10-15
1007India2026-10-09
1008Italy2026-10-15
1009Australia2026-10-13
1010Canada2026-10-04
1011Germany2026-10-22
1012Brazil2026-10-23
1013United Kingdom2026-10-13
1014Germany2026-10-14
1015Germany2026-10-01
1016Italy2026-10-09
1017France2026-09-29
1018Spain2026-09-28
1019Brazil2026-10-23
1020Brazil2026-10-07
1021United Kingdom2026-10-12
1022Argentina2026-10-07
1023Brazil2026-10-20
1024Italy2026-10-21
1025India2026-10-23
1026Spain2026-10-17
1027Japan2026-10-08
1028Canada2026-09-30
1029Argentina2026-10-21
1030France2026-10-10
1031Russia2026-10-13
1032Canada2026-10-19
1033Canada2026-10-03
1034Italy2026-10-22
1035Canada2026-10-02
1036Japan2026-10-17
1037France2026-10-12
1038France2026-10-20
1039India2026-10-14
1040Australia2026-10-12
1041Brazil2026-09-25
1042Italy2026-10-21
1043Argentina2026-10-19
1044Argentina2026-10-15
1045Australia2026-10-13
1046Japan2026-10-14
1047United Kingdom2026-09-28
1048France2026-10-03
1049France2026-10-14

On-Demand Data

NameIdCountryDate
Alejandro L Whobrey1000Japan2026-10-17
Tony I Garufi1001United Kingdom2026-10-20
Aika I Gillian1002Spain2026-09-27
Misaki R Stenseth1003Canada2026-10-20
Izzy Z Perin1004United Kingdom2026-10-08
Chavez I Morasca1005France2026-10-11
Isabel E Iturbide1006Brazil2026-10-08
Smith A Oldroyd1007Argentina2026-10-15
Aruna V Nicka1008Japan2026-10-15
Jones L Ostrosky1009France2026-10-11
Jones H Stenseth1010Spain2026-10-20
Jefferson L Rulapaugh1011Spain2026-10-19
Julie G Shinko1012Italy2026-09-27
Leja C Doe1013India2026-10-16
Silvio B Flosi1014Australia2026-10-16
Kadeem K Sergi1015Brazil2026-10-09
Isabel M Rulapaugh1016United Kingdom2026-09-29
Aditya V Schemmer1017Germany2026-10-07
Aditya E Iturbide1018Argentina2026-10-13
James N Morasca1019Russia2026-09-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon G PoquetteAustraliaXuxue Feng RENEWAL
Octavia O ChuiItalyElwin Sharvill NEGOTIATION
Darci U PoquetteSpainAmy Elsner UNQUALIFIED
Isabel K SaylorsAustraliaAnna Fali RENEWAL
Jefferson H GlickSpainOnyama Limba NEGOTIATION
Francesco D CaldareraArgentinaAnna Fali PROPOSAL
Salvatore J RoysterGermanyAsiya Javayant UNQUALIFIED
Jones F MacleadIndiaOnyama Limba NEW
Wickens J ButtRussiaAmy Elsner UNQUALIFIED
Aditya W SlusarskiJapanStephen Shaw RENEWAL
Jefferson H MorascaGermanyXuxue Feng NEGOTIATION
James D AlbaresJapanElwin Sharvill QUALIFIED
Mujtaba S InouyeIndiaAmy Elsner NEGOTIATION
Juan A NestleArgentinaBernardo Dominic PROPOSAL
Jeanfrancois Q KolmetzFranceIoni Bowcher NEW
Ivar I NestleJapanStephen Shaw RENEWAL
Greenwood E BowleyRussiaOnyama Limba NEGOTIATION
Morrow H OldroydBrazilElwin Sharvill NEW
Johnson B KolmetzRussiaXuxue Feng NEGOTIATION
Antonio S CaudyBrazilIvan Magalhaes NEW
Tony Y NestleRussiaElwin Sharvill NEGOTIATION
Alejandro M NestleCanadaElwin Sharvill UNQUALIFIED
Octavia X BowleySpainStephen Shaw NEW
Izzy E CaudyAustraliaElwin Sharvill UNQUALIFIED
Darci F InouyeFranceXuxue Feng NEW
Juan O PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Maisha D GillianArgentinaXuxue Feng RENEWAL
Aruna J CaudyIndiaAnna Fali RENEWAL
Deepesh B CampainBrazilStephen Shaw RENEWAL
Darci S RutaSpainOnyama Limba PROPOSAL
Clifford U ButtAustraliaIvan Magalhaes NEW
Jennifer L SchemmerCanadaStephen Shaw PROPOSAL
Juan Y MacleadIndiaAsiya Javayant NEGOTIATION
Sinclair X MaletRussiaStephen Shaw NEW
Francesco T ButtJapanIoni Bowcher UNQUALIFIED
Maria T ChuiIndiaElwin Sharvill UNQUALIFIED
Aika K SergiIndiaAnna Fali NEW
Julie Z GillianRussiaAsiya Javayant NEW
Julie W WieserRussiaAmy Elsner PROPOSAL
Aruna S NickaRussiaAsiya Javayant NEW

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>