# Yahoo! UI Library

### DataTable Widget 2.8.2r1

Yahoo! UI Library > datatable > YAHOO.widget.ScrollingDataTable
Search:
Filters
Show Private Show Protected Show Deprecated

## Class YAHOO.widget.ScrollingDataTable - extends YAHOO.widget.DataTable

The ScrollingDataTable class extends the DataTable class to provide functionality for x-scrolling, y-scrolling, and xy-scrolling.

### Constructor

YAHOO.widget.ScrollingDataTable `( elContainer , aColumnDefs , oDataSource , oConfigs )`

Parameters:
  `elContainer <HTMLElement>` Container element for the TABLE.
  `aColumnDefs <Object[]>` Array of object literal Column definitions.
  `oDataSource <YAHOO.util.DataSource>` DataSource instance.
  `oConfigs <object>` (optional) Object literal of configuration values.

### Properties

#### _bScrollbarX - `private Boolean`

True if x-scrollbar is currently visible.

#### _elBdContainer - `private HTMLElement`

Container for scrolling body TABLE element.

#### _elBdThead - `private HTMLElement`

Body THEAD element.

#### _elHdContainer - `private HTMLElement`

Container for fixed header TABLE element.

#### _elHdTable - `private HTMLElement`

Fixed header TABLE element.

#### _elTmpContainer - `private HTMLElement`

Offscreen container to temporarily clone SDT for auto-width calculation.

#### _elTmpTable - `private HTMLElement`

Offscreen TABLE element for auto-width calculation.

#### DataTable.CLASS_BODY - `static final String`

Class name assigned to inner DataTable body container.
Default Value: "yui-dt-bd"

#### DataTable.CLASS_HEADER - `static final String`

Class name assigned to inner DataTable header container.
Default Value: "yui-dt-hd"

#### Properties inherited from YAHOO.widget.DataTable:

`_aDynFunctions, _aSelections, _bInit, _elCaption, _elColgroup, _elContainer, _elMask, _elMsgTbody, _elMsgTd, _elMsgTr, _elTable, _elTbody, _elThead, _elTrTemplate, _nIndex, _nTdCount, _nTrCount, _oAnchorCell, _oAnchorRecord, _oCellEditor, _oChainRender, _oColumnSet, _oDataSource, _oRecordSet, _sFirstTrId, _sId, _sLastTrId, configs`

#### Properties inherited from YAHOO.util.AttributeProvider:

`_configs`

#### Properties inherited from YAHOO.util.Element:

`DOM_EVENTS`

#### Properties inherited from YAHOO.util.EventProvider:

`__yui_events, __yui_subscribers`

### Methods

#### _destroyBdTheadEl

`private void _destroyBdTheadEl ( )`
Destroy's the DataTable body THEAD element, if available.

#### _destroyContainerEl

`private void _destroyContainerEl ( elContainer )`
Destroy's the DataTable outer and inner container elements, if available.

Parameters:
  `elContainer <HTMLElement>` Reference to the container element.

#### _destroyHdTableEl

`private void _destroyHdTableEl ( )`
Destroy's the DataTable head TABLE element, if available.

#### _focusEl

`private void _focusEl ( el )`
Sets focus on the given element.

Parameters:
  `el <HTMLElement>` Element.

#### _initBdTheadEl

`private HTMLElement _initBdTheadEl ( elTable )`
Initializes body THEAD element.

Parameters:
  `elTable <HTMLElement>` TABLE element into which to create THEAD.

Returns: `HTMLElement`
  Initialized THEAD element.

#### _initBdThEl

`private void _initBdThEl ( elTh , oColumn )`
Populates TH element for the body THEAD element.

Parameters:
  `elTh <HTMLElement>` TH element reference.
  `oColumn <YAHOO.widget.Column>` Column object.

#### _initCaptionEl

`private void _initCaptionEl ( sCaption )`
Creates HTML markup CAPTION element.

Parameters:
  `sCaption <String>` Text for caption.

#### _initContainerEl

`private void _initContainerEl ( elContainer )`
Initializes the DataTable outer container element and creates inner header and body container elements.

Parameters:
  `elContainer <HTMLElement | String>` HTML DIV element by reference or ID.

#### _initDomElements

`private void _initDomElements ( elContainer )`
Initializes DOM elements for a ScrollingDataTable, including creation of two separate TABLE elements.

Parameters:
  `elContainer <HTMLElement | String} HTML DIV element by reference or ID. return {Boolean>` False in case of error, otherwise true

#### _initTableEl

`private void _initTableEl ( )`
Initializes ScrollingDataTable TABLE elements into the two inner containers.

#### _initTbodyEl

`private void _initTbodyEl ( elTable )`
Initializes ScrollingDataTable TBODY element for data

Parameters:
  `elTable <HTMLElement>` TABLE element into which to create TBODY .

#### _initTheadEl

`private void _initTheadEl ( elHdTable , elTable )`
Initializes ScrollingDataTable THEAD elements into the two inner containers.

Parameters:
  `elHdTable <HTMLElement>` (optional) Fixed header TABLE element reference.
  `elTable <HTMLElement>` (optional) TABLE element reference.

#### _initThEl

`private void _initThEl ( elTh , oColumn )`
SDT changes ID so as not to duplicate the accessibility TH IDs.

Parameters:
  `elTh <HTMLElement>` TH element reference.
  `oColumn <YAHOO.widget.Column>` Column object.

#### _onScroll

`private void _onScroll ( e , oSelf )`
Syncs scrolltop and scrollleft of all TABLEs.

Parameters:
  `e <HTMLEvent>` The scroll event.
  `oSelf <YAHOO.widget.ScrollingDataTable>` ScrollingDataTable instance.

#### _onTheadKeydown

`private void _onTheadKeydown ( e , oSelf )`
Handles keydown events on the THEAD element.

Parameters:
  `e <HTMLEvent>` The key event.
  `oSelf <YAHOO.widget.ScrollingDataTable>` ScrollingDataTable instance.

#### _retoreScrollPositions

`private void _retoreScrollPositions ( )`
Restores scroll positions to stored value.

#### _runRenderChain

`private void _runRenderChain ( )`
Internal wrapper calls run() on render Chain instance.

#### _setOverhangValue

`private void _setOverhangValue ( nBorderWidth )`
Sets Column header overhang to given width.

Parameters:
  `nBorderWidth <Number>` Value of new border for overhang.

#### _storeScrollPositions

`private void _storeScrollPositions ( )`
Stores scroll positions so they can be restored after a render.

#### _syncScroll

`private void _syncScroll ( )`
Syncs padding around scrollable tables, including Column header right-padding and container width and height.

#### _syncScrollOverhang

`private void _syncScrollOverhang ( )`
Adds/removes Column header overhang as necesary.

#### _syncScrollX

`private void _syncScrollX ( )`
Snaps container height for x-scrolling tables in IE. Syncs message TBODY width.

#### _syncScrollY

`private void _syncScrollY ( )`
Snaps container width for y-scrolling tables.

#### _validateColumnWidth

`private void _validateColumnWidth ( oColumn , elTd )`
Helper function calculates and sets a validated width for a Column in a ScrollingDataTable.

Parameters:
  `oColumn <YAHOO.widget.Column>` Column instance.
  `elTd <HTMLElement>` TD element to validate against.

#### clearScrollPositions

`private void clearScrollPositions ( )`
Clears stored scroll positions to interrupt the automatic restore mechanism. Useful for setting scroll positions programmatically rather than as part of the post-render cleanup process.

#### disable

`void disable ( )`
Disables ScrollingDataTable UI.

#### getBdContainerEl

`HTMLElement getBdContainerEl ( )`
Returns DOM reference to the DataTable's scrolling body container element.

Returns: `HTMLElement`
  Reference to DIV element.

#### getBdTableEl

`HTMLElement getBdTableEl ( )`
Returns DOM reference to the DataTable's scrolling body TABLE element.

Returns: `HTMLElement`
  Reference to TABLE element.

#### getHdContainerEl

`HTMLElement getHdContainerEl ( )`
Returns DOM reference to the DataTable's fixed header container element.

Returns: `HTMLElement`
  Reference to DIV element.

#### getHdTableEl

`HTMLElement getHdTableEl ( )`
Returns DOM reference to the DataTable's fixed header TABLE element.

Returns: `HTMLElement`
  Reference to TABLE element.

#### initAttributes

`private void initAttributes ( oConfigs )`
Implementation of Element's abstract method. Sets up config values.

Parameters:
  `oConfigs <Object>` (Optional) Object literal definition of configuration values.

#### insertColumn

`YAHOO.widget.Column insertColumn ( oColumn , index )`
Inserts given Column at the index if given, otherwise at the end. NOTE: You can only add non-nested Columns and top-level parent Columns. You cannot add a nested Column to an existing parent.

Parameters:
  `oColumn <Object | YAHOO.widget.Column>` Object literal Column definition or a Column instance.
  `index <Number>` (optional) New tree index.

Returns: `YAHOO.widget.Column`
  oColumn Inserted Column instance.

#### onColumnChange

`void onColumnChange ( oArgs )`
Handles Column mutations

Parameters:
  `oArgs <Object>` Custom Event data.

#### removeColumn

`YAHOO.widget.Column removeColumn ( oColumn )`
Removes given Column. NOTE: You cannot remove nested Columns. You can only remove non-nested Columns, and top-level parent Columns (which will remove all children Columns).

Parameters:
  `oColumn <YAHOO.widget.Column>` Column instance.

Returns: `YAHOO.widget.Column`
  oColumn Removed Column instance.

#### reorderColumn

`void reorderColumn ( oColumn , index )`
Removes given Column and inserts into given tree index. NOTE: You can only reorder non-nested Columns and top-level parent Columns. You cannot reorder a nested Column to an existing parent.

Parameters:
  `oColumn <YAHOO.widget.Column>` Column instance.
  `index <Number>` New tree index.

#### scrollTo

`void scrollTo ( to )`
Scrolls to given row or cell

Parameters:
  `to <YAHOO.widget.Record | HTMLElement >` Itme to scroll to.

#### setColumnWidth

`void setColumnWidth ( oColumn , nWidth )`
Sets given Column to given pixel width. If new width is less than minWidth width, sets to minWidth. Updates oColumn.width value.

Parameters:
  `oColumn <YAHOO.widget.Column>` Column instance.
  `nWidth <Number>` New width in pixels.

#### showTableMessage

`void showTableMessage ( sHTML , sClassName )`
Displays message within secondary TBODY.

Parameters:
  `sHTML <String>` (optional) Value for innerHTMlang.
  `sClassName <String>` (optional) Classname.

#### validateColumnWidths

`void validateColumnWidths ( oArg.column )`
For one or all Columns of a ScrollingDataTable, when Column is not hidden, and width is not set, syncs widths of header and body cells and validates that width against minWidth and/or maxAutoWidth as necessary.

Parameters:
  `oArg.column <YAHOO.widget.Column>` (optional) One Column to validate. If null, all Columns' widths are validated.

#### Methods inherited from YAHOO.widget.DataTable:

`_clearMinWidth, _clearTrTemplateEl, _createTrEl, _defaultPaginatorContainers, _deleteTrEl, _destroyColgroupEl, _destroyColumnHelpers, _destroyContainerEl, _destroyDraggableColumns, _destroyMsgTbodyEl, _destroyPaginator, _destroyResizeableColumns, _destroyTableEl, _destroyTbodyEl, _destroyTheadEl, _focusEl, _formatTdEl, _getColumnClassnames, _getSelectionAnchor, _getSelectionTrigger, _getTrTemplateEl, _handleCellBlockSelectionByKey, _handleCellBlockSelectionByMouse, _handleCellRangeSelectionByKey, _handleCellRangeSelectionByMouse, _handlePaginatorChange, _handleSingleCellSelectionByKey, _handleSingleCellSelectionByMouse, _handleSingleSelectionByKey, _handleSingleSelectionByMouse, _handleStandardSelectionByKey, _handleStandardSelectionByMouse, _initCaptionEl, _initCellEditing, _initCellEditorEl, _initColgroupEl, _initColumnHelpers, _initColumnSet, _initColumnSort, _initConfigs, _initContainerEl, _initDataSource, _initDomElements, _initDraggableColumns, _initEvents, _initMsgTbodyEl, _initRecordSet, _initResizeableColumns, _initTableEl, _initTbodyEl, _initTheadEl, _initThEl, _insertColgroupColEl, _onDocumentClick, _onDropdownChange, _onEditorBlockEvent, _onEditorBlurEvent, _onEditorCancelEvent, _onEditorKeydownEvent, _onEditorRevertEvent, _onEditorSaveEvent, _onEditorShowEvent, _onEditorUnblockEvent, _onRenderChainEnd, _onTableDblclick, _onTableFocus, _onTableKeypress, _onTableMousedown, _onTableMouseout, _onTableMouseover, _onTableMouseup, _onTbodyClick, _onTbodyFocus, _onTbodyKeydown, _onTheadClick, _onTheadFocus, _onTheadKeydown, _removeColgroupColEl, _reorderColgroupColEl, _repaintGecko, _repaintOpera, _repaintWebkit, _restoreMinWidth, _runRenderChain, _setColumnWidth, _setColumnWidthDynFunction, _setColumnWidthDynStyles, _setFirstRow, _setLastRow, _setRowStripes, _setSelections, _syncColWidths, _unselectAllTdEls, _unselectAllTrEls, _unsetFirstRow, _unsetLastRow, _updatePaginator, _updateTrEl, addRow, addRows, cancelCellEditor, clearTextSelection, DataTable.editCheckbox, DataTable.editDate, DataTable.editDropdown, DataTable.editRadio, DataTable.editTextarea, DataTable.editTextbox, DataTable.formatTheadCell, deleteRow, deleteRows, destroy, destroyCellEditor, disable, doBeforeLoadData, doBeforePaginatorChange, doBeforeShowCellEditor, doBeforeSortColumn, focus, focusTbodyEl, focusTheadEl, formatCell, getAboveTdEl, getBelowTdEl, getBody, getCell, getCellEditor, getColumn, getColumnById, getColumnSet, getColumnSortDir, getContainerEl, getDataSource, getFirstTdEl, getFirstTrEl, getId, getLastSelectedCell, getLastSelectedRecord, getLastTdEl, getLastTrEl, getMsgTbodyEl, getMsgTdEl, getNextTdEl, getNextTrEl, getPreviousTdEl, getPreviousTrEl, getRecord, getRecordIndex, getRecordSet, getRow, getSelectedCells, getSelectedColumns, getSelectedRows, getSelectedTdEls, getSelectedTrEls, getState, getTableEl, getTbodyEl, getTdEl, getTdLinerEl, getTheadEl, getThEl, getThLinerEl, getTrEl, getTrIndex, handleDataReturnPayload, hideColumn, hideTableMessage, highlightCell, highlightColumn, highlightRow, initAttributes, initializeTable, insertColumn, isSelected, onDataReturnAppendRows, onDataReturnInitializeTable, onDataReturnInsertRows, onDataReturnReplaceRows, onDataReturnSetRecords, onDataReturnSetRows, onDataReturnUpdateRows, onEditorBlockEvent, onEditorBlurEvent, onEditorUnblockEvent, onEventCancelCellEditor, onEventEditCell, onEventFormatCell, onEventHighlightCell, onEventHighlightColumn, onEventHighlightRow, onEventSaveCellEditor, onEventSelectCell, onEventSelectColumn, onEventSelectRow, onEventShowCellEditor, onEventSortColumn, onEventUnhighlightCell, onEventUnhighlightColumn, onEventUnhighlightRow, onPaginatorChange, onPaginatorChangeRequest, onShow, refreshView, removeColumn, render, renderPaginator, reorderColumn, resetCellEditor, saveCellEditor, select, selectCell, selectColumn, selectRow, setColumnWidth, showCellEditor, showColumn, showTableMessage, sortColumn, toString, undisable, unhighlightCell, unhighlightColumn, unhighlightRow, unselectAllCells, unselectAllRows, unselectCell, unselectColumn, unselectRow, updateCell, updateRow, updateRows, validateColumnWidths`

#### Methods inherited from YAHOO.util.AttributeProvider:

`configureAttribute, fireBeforeChangeEvent, fireChangeEvent, get, getAttributeConfig, getAttributeKeys, refresh, register, resetAttributeConfig, resetValue, set, setAttributeConfig, setAttributes`

#### Methods inherited from YAHOO.util.Element:

`_setHTMLAttrConfig, addClass, addListener, appendChild, appendTo, delegate, fireQueue, getElementsByClassName, getElementsByTagName, getStyle, hasChildNodes, hasClass, initAttributes, insertBefore, on, removeChild, removeClass, removeDelegate, removeListener, replaceChild, replaceClass, setStyle, subscribe`

#### Methods inherited from YAHOO.util.EventProvider:

`createEvent, fireEvent, hasEvent, subscribe, unsubscribe, unsubscribeAll`

### Events

#### beforeCOLOR_COLUMNFILLERChange

`beforeCOLOR_COLUMNFILLERChange ( event )`
Fires before the value for the configuration attribute 'COLOR_COLUMNFILLER' changes. Return false to cancel the attribute change.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### beforeHeightChange

`beforeHeightChange ( event )`
Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### beforeWidthChange

`beforeWidthChange ( event )`
Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### COLOR_COLUMNFILLERChange

`COLOR_COLUMNFILLERChange ( event )`
Fires when the value for the configuration attribute 'COLOR_COLUMNFILLER' changes.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### heightChange

`heightChange ( event )`
Fires when the value for the configuration attribute 'height' changes.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### tableScrollEvent

`tableScrollEvent ( oArgs.event , oArgs.target )`
Fired when a fixed scrolling DataTable has a scroll.

Parameters:
  `oArgs.event <HTMLEvent>` The event object.
  `oArgs.target <HTMLElement>` The DataTable's CONTAINER element (in IE) or the DataTable's TBODY element (everyone else).

#### widthChange

`widthChange ( event )`
Fires when the value for the configuration attribute 'width' changes.

Parameters:
  `event <{oldValue: any, newValue: any}>` An object containing the previous attribute value and the new value.

#### Events inherited from YAHOO.widget.DataTable:

`beforeCaptionChange, beforeCurrencyOptionsChange, beforeCurrencySymbolChange, beforeDateOptionsChange, beforeDraggableColumnsChange, beforeDynamicDataChange, beforeFormatRowChange, beforeGenerateRequestChange, beforeInitialLoadChange, beforeInitialRequestChange, beforeMSG_EMPTYChange, beforeMSG_ERRORChange, beforeMSG_LOADINGChange, beforeMSG_SORTASCChange, beforeMSG_SORTDESCChange, beforeNumberOptionsChange, beforePaginatorChange, beforeRenderEvent, beforeRenderLoopSizeChange, beforeSelectionModeChange, beforeSortedByChange, beforeSummaryChange, buttonClickEvent, captionChange, cellClickEvent, cellDblclickEvent, cellFormatEvent, cellHighlightEvent, cellMousedownEvent, cellMouseoutEvent, cellMouseoverEvent, cellMouseupEvent, cellSelectEvent, cellUnhighlightEvent, cellUnselectEvent, cellUpdateEvent, checkboxClickEvent, columnHideEvent, columnHighlightEvent, columnInsertEvent, columnRemoveEvent, columnReorderEvent, columnResizeEvent, columnSelectEvent, columnSetWidthEvent, columnShowEvent, columnSortEvent, columnUnhighlightEvent, columnUnselectEvent, columnUnsetWidthEvent, currencyOptionsChange, currencySymbolChange, dataReturnEvent, dateOptionsChange, disableEvent, draggableColumnsChange, dropdownChangeEvent, dynamicDataChange, editorBlockEvent, editorBlurEvent, editorCancelEvent, editorKeydownEvent, editorRevertEvent, editorSaveEvent, editorShowEvent, editorUnblockEvent, editorUpdateEvent, formatRowChange, generateRequestChange, headerCellClickEvent, headerCellDblclickEvent, headerCellMousedownEvent, headerCellMouseoutEvent, headerCellMouseoverEvent, headerLabelClickEvent, headerLabelDbllickEvent, headerLabelMousedownEvent, headerLabelMouseoutEvent, headerLabelMouseoverEvent, headerRowClickEvent, headerRowDblclickEvent, headerRowMousedownEvent, headerRowMouseoutEvent, headerRowMouseoverEvent, initEvent, initialLoadChange, initialRequestChange, linkClickEvent, MSG_EMPTYChange, MSG_ERRORChange, MSG_LOADINGChange, MSG_SORTASCChange, MSG_SORTDESCChange, numberOptionsChange, paginatorChange, postRenderEvent, radioClickEvent, renderEvent, renderLoopSizeChange, rowAddEvent, rowClickEvent, rowDblclickEvent, rowDeleteEvent, rowHighlightEvent, rowMousedownEvent, rowMouseoutEvent, rowMouseoverEvent, rowMouseupEvent, rowsAddEvent, rowsDeleteEvent, rowSelectEvent, rowUnhighlightEvent, rowUnselectEvent, rowUpdateEvent, selectionModeChange, sortedByChange, summaryChange tableBlurEvent tableClickEvent tableDblclickEvent tableFocusEvent tableKeyEvent tableMousedownEvent tableMouseoutEvent tableMouseoverEvent tableMouseupEvent tableMsgHideEvent tableMsgShowEvent tbodyFocusEvent tbodyKeyEvent theadCellClickEvent theadCellDblclickEvent theadCellMousedownEvent theadCellMouseoutEvent theadCellMouseoverEvent theadCellMouseupEvent theadFocusEvent theadKeyEvent theadLabelClickEvent theadLabelDblclickEvent theadLabelMousedownEvent theadLabelMouseoutEvent theadLabelMouseoverEvent theadLabelMouseupEvent theadRowClickEvent theadRowDblclickEvent theadRowMousedownEvent theadRowMouseoutEvent theadRowMouseoverEvent theadRowMouseupEvent undisableEvent unselectAllCellsEvent unselectAllRowsEvent`

#### Events inherited from YAHOO.util.Element:

`appendTo, available, beforeAppendTo, beforeElementChange, contentReady, elementChange,`

### Configuration Attributes

#### COLOR_COLUMNFILLER `- String`

CSS color value assigned to header filler on scrollable tables.
Default Value: "#F2F2F2"

#### height `- String`

Table body height for scrollable tables, not including headers (e.g., "40em").

#### width `- String`

Table width for scrollable tables (e.g., "40em").

#### Configuration attributes inherited from YAHOO.widget.DataTable:

`caption, currencyOptions, currencySymbol, dateOptions, draggableColumns, dynamicData, formatRow, generateRequest, initialLoad, initialRequest, MSG_EMPTY MSG_ERROR MSG_LOADING MSG_SORTASC MSG_SORTDESC numberOptions paginator renderLoopSize selectionMode sortedBy summary`

#### Configuration attributes inherited from YAHOO.util.Element:

`element`

Copyright © 2010 Yahoo! Inc. All rights reserved.