v7.3.0
SupportExamplesFree Trial

StickyCells
Feature

A feature which pins cell content to the top of the grid while the row scrolls off the top but is still visible. Very similar to native position: sticky, which because of Grid's multiple-region setup unfortunately cannot be used to achieve the same effect.

When a row is partially scrolled off the top of the viewport, the content of each sticky cell is translated downward to remain visible. When the remaining visible row height is less than the content height, the content scrolls out naturally.

const grid = new Grid({ appendTo : targetElement, height : 300, rowHeight : 200, features : { stickyCells : true }, data : DataGenerator.generateData(10), columns : [ { field : 'name', text : 'Name', flex : 1 }, { field : 'city', text : 'City', flex : 1 }, { field : 'food', text : 'Favorite food', flex : 1 } ] });

All columns have sticky content by default when this feature is enabled. To opt out a specific column, set stickyContent to false.

For example:

new Grid({
    features : {
        stickyCells : true
    },
    columns : [
        { field : 'name', text : 'Name' },
        { field : 'age', text : 'Age', stickyContent : false } // Opt out of stickiness
    ]
});

Note that if you have custom CSS targeting cell content, you may need to adjust it to account for the additional wrapper element added by this feature when stickyContent is true. The wrapper has the class .b-sticky-cell-content. The DOM structure of a sticky cell looks like this:

<!-- Without StickyCells or with stickyContent: false -->
<div data-column-id="name">
    Alice
</div>

<!-- With StickyCells and stickyContent: true --> <div data-column-id="name"> <div> Alice </div> </div>

This feature is disabled by default.

See also

No results

Configs

Configs are options you supply in a configuration object when creating an instance of this class
  • contentSelector : String
    DEPRECATED
    Deprecated:

    7.3.0 Use the per-column stickyContent config instead

    A CSS selector identifying child elements within cells to pin. Applied to all columns that do not specify their own stickyContent value.

  • Internal listeners, that cannot be removed by the user.

  • The widget which this plugin is to attach to.

    Has a corresponding runtime client property.

  • Set to false to disable localization of this object.

Properties

Properties are getters/setters or publicly accessible variables on this class
  • isEvents : Booleantrue
    READONLY
    static
    ADVANCED
    Events
    Identifies an object as an instance of Events class, or subclass thereof.
  • isLocalizable : Booleantrue
    READONLY
    static
    ADVANCED
    Localizable
    Identifies an object as an instance of Localizable class, or subclass thereof.
  • isStickyCells : Booleantrue
    READONLY
    static
    ADVANCED
    Identifies an object as an instance of StickyCells class, or subclass thereof.
  • properties : Object
    internal
    static
    InstancePlugin

    A class property getter for the default values of internal properties for this class.

  • emptyArray : Array
    internal
    READONLY
    InstancePlugin

    An empty array that can be used as a default value.

  • emptyObject : Object
    internal
    READONLY
    InstancePlugin

    An empty object that can be used as a default value.

  • isInstancePlugin : Booleantrue
    READONLY
    ADVANCED
    InstancePlugin
    Identifies an object as an instance of InstancePlugin class, or subclass thereof.
  • isStickyCells : Booleantrue
    READONLY
    ADVANCED
    Identifies an object as an instance of StickyCells class, or subclass thereof.
  • config : Object
    READONLY
    ADVANCED
    InstancePlugin

    Returns a copy of the full configuration which was used to configure this object.

  • This property is set to true before the constructor returns.

  • isDestroying : Boolean
    READONLY
    ADVANCED
    InstancePlugin

    This property is set to true on entry to the destroy method. It remains on the objects after returning from destroy(). If isDestroyed is true, this property will also be true, so there is no need to test for both (for example, comp.isDestroying || comp.isDestroyed).

  • client : Widget
    READONLY
    ADVANCED
    InstancePlugin

    The Widget which was passed into the constructor, which is the Widget we are providing extra services for.

    Has a corresponding client config.

  • Get the global LocaleHelper

  • Get the global LocaleManager

Functions

Functions are methods available for calling on the class
  • onClassMixedIn( )
    internal
    static
    InstancePlugin

    This optional class method is called when a class is mixed in using the mixin() method.

  • initClass( )
    static
    ADVANCED
    InstancePlugin

    Registers this class type with its Factory

  • Cancels all active scroll-driven animations. Animation.cancel() removes the animation effect, restoring elements to their un-animated state.

  • Clears all sticky translations from all visible rows.

  • Handles virtual scroll height changes that may shift row positions without changing the top row. Recreates animations so their scroll ranges stay in sync.

  • setupListeners( )
    private

    Attaches scroll listener. Called from both construct and doDisable(false).

  • Internal function used to hook destroy() calls when using thisObj

  • Internal function used restore hooked destroy() calls when using thisObj

  • doDestroy( )
    internal
    Events

    Auto detaches listeners registered from start, if set as detachable

  • once( )
    private
    Events

    Internal function used to run a callback function after an event is triggered

  • Removes all listeners registered to this object by the application.

  • This will merge a feature's (subclass of InstancePlugin) keyMap with it's client's keyMap.

Events

Events are triggered for certain actions in this class and can be listened for to react to those actions in your code

Event handlers

Event handlers are callbacks called as a result of certain actions in this class
id: stickyCells

Source path

Grid/feature/StickyCells.js

Contents