Sencha Documentation

This class extends the GridPanel Class to provide cell editing on selected columns. The editable columns are specified by providing an editor in the column configuration.

Editability of columns may be controlled programatically by inserting an implementation of isCellEditable into the ColumnModel.

Editing is performed on the value of the field specified by the column's dataIndex in the backing Store (so if you are using a renderer in order to display transformed data, this must be accounted for).

If a value-to-description mapping is used to render a column, then a ComboBox which uses the same value-to-description mapping would be an appropriate editor.

If there is a more complex mismatch between the visible data in the grid, and the editable data in the Store, then code to transform the data both before and after editing can be injected using the beforeedit and afteredit events.

Config Options

 
animCollapse : Boolean
true to animate the transition when the panel is collapsed, false to skip the animation (defaults to true if the Ext....
true to animate the transition when the panel is collapsed, false to skip the animation (defaults to true if the Ext.Fx class is available, otherwise false). May also be specified as the animation duration in milliseconds.
 
autoEncode : Boolean
True to automatically HTML encode and decode values pre and post edit (defaults to false)
True to automatically HTML encode and decode values pre and post edit (defaults to false)
 
The id of a column in this grid that should expand to fill unused space. This value specified here can not be 0. Note...

The id of a column in this grid that should expand to fill unused space. This value specified here can not be 0.


Note: If the Grid's view is configured with forceFit=true the autoExpandColumn is ignored. See Ext.grid.Column.width for additional details.

See autoExpandMax and autoExpandMin also.

 
autoExpandMax : Number
The maximum width the autoExpandColumn can have (if enabled). Defaults to 1000.
The maximum width the autoExpandColumn can have (if enabled). Defaults to 1000.
 
autoExpandMin : Number
The minimum width the autoExpandColumn can have (if enabled). Defaults to 50.
The minimum width the autoExpandColumn can have (if enabled). Defaults to 50.
 
baseCls : String
The base CSS class to apply to this panel's element (defaults to 'x-panel').
The base CSS class to apply to this panel's element (defaults to 'x-panel').
 
bodyBorder : Number/Boolean
A shortcut for setting a border style on the body element. The value can either be a number to be applied to all side...
A shortcut for setting a border style on the body element. The value can either be a number to be applied to all sides, or a normal css string describing borders. Defaults to undefined.
 
bodyMargin : Number/Boolean
A shortcut for setting a margin style on the body element. The value can either be a number to be applied to all side...
A shortcut for setting a margin style on the body element. The value can either be a number to be applied to all sides, or a normal css string describing margins. Defaults to undefined.
 
bodyPadding : Number/Boolean
A shortcut for setting a padding style on the body element. The value can either be a number to be applied to all sid...
A shortcut for setting a padding style on the body element. The value can either be a number to be applied to all sides, or a normal css string describing padding. Defaults to undefined.
 
bubbleEvents : Array
An array of events that, when fired, should be bubbled to any parent container. See Ext.util.Observable.enableBubble....

An array of events that, when fired, should be bubbled to any parent container. See Ext.util.Observable.enableBubble. Defaults to [].

 
clicksToEdit : Number
The number of clicks on a cell required to display the cell's editor (defaults to 2). Setting this option to 'auto' m...

The number of clicks on a cell required to display the cell's editor (defaults to 2).

Setting this option to 'auto' means that mousedown on the selected cell starts editing that cell.

 
closable : Boolean
True to display the 'close' tool button and allow the user to close the window, false to hide the button and disallow...

True to display the 'close' tool button and allow the user to close the window, false to hide the button and disallow closing the window (defaults to false).

By default, when close is requested by clicking the close button in the header, the close method will be called. This will destroy the Panel and its content meaning that it may not be reused.

To make closing a Panel hide the Panel so that it may be reused, set closeAction to 'hide'.

 
closeAction : String
The action to take when the close header tool is clicked: <div class="mdetail-params"> 'close' : Default<div class="s...

The action to take when the close header tool is clicked:

  • 'close' : Default
    remove the window from the DOM and destroy it and all descendant Components. The window will not be available to be redisplayed via the show method.
  • 'hide' :
    hide the window by setting visibility to hidden and applying negative offsets. The window will be available to be redisplayed via the show method.

Note: This behavior has changed! setting *does* affect the close method which will invoke the approriate closeAction.

 
cm : Object
Shorthand for colModel.
Shorthand for colModel.
 
colModel : Object
The Ext.grid.ColumnModel to use when rendering the grid (required).
The Ext.grid.ColumnModel to use when rendering the grid (required).
 
The direction to collapse the Panel when the toggle button is clicked. Defaults to the headerPosition Important: This...

The direction to collapse the Panel when the toggle button is clicked.

Defaults to the headerPosition

Important: This config is ignored for collapsible Panels which are direct child items of a border layout.

Specify as 'top', 'bottom', 'left' or 'right'.

 
collapseFirst : Boolean
true to make sure the collapse/expand toggle button always renders first (to the left of) any other tools in the pane...
true to make sure the collapse/expand toggle button always renders first (to the left of) any other tools in the panel's title bar, false to render it last (defaults to true).
 
collapseMode : String
Important: this config is only effective for collapsible Panels which are direct child items of a border layout. When...

Important: this config is only effective for collapsible Panels which are direct child items of a border layout.

When not a direct child item of a border layout, then the Panel's header remains visible, and the body is collapsed to zero dimensions. If the Panel has no header, then a new header (orientated correctly depending on the collapseDirection) will be inserted to show a the title and a re-expand tool.

When a child item of a border layout, this config has two options:

  • alt : Default.
    When collapsed, a placeholder Container is injected into the layout to represent the Panel and to provide a UI with a Tool to allow the user to re-expand the Panel.
  • header :
    The Panel collapses to leave a header visible as when not inside a border layout.

 
collapsed : Boolean
true to render the panel collapsed, false to render it expanded (defaults to false).
true to render the panel collapsed, false to render it expanded (defaults to false).
 
collapsedCls : String
A CSS class to add to the panel's element after it has been collapsed (defaults to 'x-panel-collapsed').
A CSS class to add to the panel's element after it has been collapsed (defaults to 'x-panel-collapsed').
 
collapsible : Boolean
True to make the panel collapsible and have an expand/collapse toggle Tool added into the header tool button area. Fa...

True to make the panel collapsible and have an expand/collapse toggle Tool added into the header tool button area. False to keep the panel sized either statically, or by an owning layout manager, with no toggle Tool (defaults to false).

See collapseMode and collapseDirection
 
columnLines : Boolean
true to add css for column separation lines. Default is false.
true to add css for column separation lines. Default is false.
 
columns : Array
An array of columns to auto create a Ext.grid.ColumnModel. The ColumnModel may be explicitly created via the colMode...
An array of columns to auto create a Ext.grid.ColumnModel. The ColumnModel may be explicitly created via the colModel configuration property.
 
ddGroup : String
The DD group this GridPanel belongs to. Defaults to 'GridDD' if not specified.
The DD group this GridPanel belongs to. Defaults to 'GridDD' if not specified.
 
ddText : String
Configures the text in the drag proxy. Defaults to: ddText : '{0} selected row{1}' {0} is replaced with the number o...
Configures the text in the drag proxy. Defaults to:
ddText : '{0} selected row{1}'
{0} is replaced with the number of selected rows.
 
deferRowRender : Boolean
Defaults to true to enable deferred row rendering. This allows the GridPanel to be initially rendered empty, with the...

Defaults to true to enable deferred row rendering.

This allows the GridPanel to be initially rendered empty, with the expensive update of the row structure deferred so that layouts with GridPanels appear more quickly.

 
true to disable selections in the grid. Defaults to false. This configuration will lock the selection model that the ...

true to disable selections in the grid. Defaults to false. This configuration will lock the selection model that the GridPanel uses.

 
dockedItems : Object/Array
A component or series of components to be added as docked items to this panel. The docked items can be docked to eith...
A component or series of components to be added as docked items to this panel. The docked items can be docked to either the top, right, left or bottom of a panel. This is typically used for things like toolbars or tab bars:
var panel = new Ext.Panel({
    fullscreen: true,
    dockedItems: [{
        xtype: 'toolbar',
        dock: 'top',
        items: [{
            text: 'Docked to the bottom'
        }]
    }]
});
 
Defaults to true to enable hiding of columns with the header menu.
Defaults to true to enable hiding of columns with the header menu.
 
Defaults to true to enable drag and drop reorder of columns. false to turn off column reordering via drag drop.
Defaults to true to enable drag and drop reorder of columns. false to turn off column reordering via drag drop.
 
false to turn off column resizing for the whole grid. Defaults to true.
false to turn off column resizing for the whole grid. Defaults to true.
 
enableDragDrop : Boolean
Enables dragging of the selected rows of the GridPanel. Defaults to false. Setting this to true causes this GridPanel...

Enables dragging of the selected rows of the GridPanel. Defaults to false.

Setting this to true causes this GridPanel's GridView to create an instance of Ext.grid.GridDragZone. Note: this is available only after the Grid has been rendered as the GridView's dragZone property.

A cooperating DropZone must be created who's implementations of onNodeEnter, onNodeOver, onNodeOut and onNodeDrop are able to process the data which is provided.

 
enableHdMenu : Boolean
Defaults to true to enable the drop down button for menu in the headers.
Defaults to true to enable the drop down button for menu in the headers.
 
enableKeyNav : Boolean
Turns on/off keyboard navigation within the grid. Defaults to true.
Turns on/off keyboard navigation within the grid. Defaults to true.
 
floatable : Boolean
Important: This config is only effective for collapsible Panels which are direct child items of a border layout. true...

Important: This config is only effective for collapsible Panels which are direct child items of a border layout.

true to allow clicking a collapsed Panel's placeHolder to display the Panel floated above the layout, false to force the user to fully expand a collapsed region by clicking the expand button to see it again (defaults to true).
 
forceValidation : Boolean
True to force validation even if the value is unmodified (defaults to false)
True to force validation even if the value is unmodified (defaults to false)
 
frame : Boolean
True to apply a frame to the panel.
True to apply a frame to the panel.
 
Specify as 'top', 'bottom', 'left' or 'right'. Defaults to 'top'.
Specify as 'top', 'bottom', 'left' or 'right'. Defaults to 'top'.
 
true to hide the expand/collapse toggle button when collapsible == true, false to display it (defaults to false).
true to hide the expand/collapse toggle button when collapsible == true, false to display it (defaults to false).
 
hideHeaders : Boolean
True to hide the grid's header. Defaults to false.
True to hide the grid's header. Defaults to false.
 
loadMask : Object
An Ext.LoadMask config or true to mask the grid while loading. Defaults to false.
An Ext.LoadMask config or true to mask the grid while loading. Defaults to false.
 
maxHeight : Number
Sets the maximum height of the grid - ignored if autoHeight is not on.
Sets the maximum height of the grid - ignored if autoHeight is not on.
 
Minimum width of all form buttons in pixels (defaults to 75). If set, this will be used as the default value for the ...
Minimum width of all form buttons in pixels (defaults to 75). If set, this will be used as the default value for the Ext.form.Button.minWidth config of each Button added to the footer toolbar. Will be ignored for buttons that have this value configured some other way, e.g. in their own config object or via the defaults config of their parent container.
 
The minimum width a column can be resized to. Defaults to 25.
The minimum width a column can be resized to. Defaults to 25.
 
placeHolder : Mixed
Important: This config is only effective for collapsible Panels which are direct child items of a border layout when ...

Important: This config is only effective for collapsible Panels which are direct child items of a border layout when using the default 'alt' collapseMode.

b>Optional. A Component (or config object for a Component) to show in place of this Panel when this Panel is collapsed by a border layout. Defaults to a generated Header containing a Tool to re-expand the Panel.

 
preventHeader : Boolean
Prevent a Header from being created and shown. Defaults to false.
Prevent a Header from being created and shown. Defaults to false.
 
scroll : String/Boolean
Valid values are 'both', 'horizontal' or 'vertical'. true implies 'both'. false implies 'none'. Defaults to true.
Valid values are 'both', 'horizontal' or 'vertical'. true implies 'both'. false implies 'none'. Defaults to true.
 
selModel : Mixed
 
sm : Object
Shorthand for selModel.
Shorthand for selModel.
 
stateEvents : Array
An array of events that, when fired, should trigger this component to save its state. Defaults to:stateEvents: ['colu...
An array of events that, when fired, should trigger this component to save its state. Defaults to:
stateEvents: ['columnmove', 'columnresize', 'sortchange', 'groupchange']

These can be any types of events supported by this component, including browser or custom events (e.g., ['click', 'customerchange']).

See Ext.Component.stateful for an explanation of saving and restoring Component state.

 
store : Mixed
 
stripeRows : Boolean
true to stripe the rows. Default is false. This causes the CSS class x-grid3-row-alt to be added to alternate rows of...
true to stripe the rows. Default is false.

This causes the CSS class x-grid3-row-alt to be added to alternate rows of the grid. A default CSS rule is provided which sets a background colour, but you can override this with a rule which either overrides the background-color style using the '!important' modifier, or which uses a CSS selector of higher specificity.

 
titleCollapse : Boolean
true to allow expanding and collapsing the panel (when collapsible = true) by clicking anywhere in the header bar, fa...
true to allow expanding and collapsing the panel (when collapsible = true) by clicking anywhere in the header bar, false) to allow it only by clicking to tool button (defaults to false)).
 
view : Object
The Ext.grid.GridView used by the grid. This can be set before a call to render().
The Ext.grid.GridView used by the grid. This can be set before a call to render().
 
viewConfig : Object
A config object that will be applied to the grid's UI view. Any of the config options available for Ext.grid.GridVie...
A config object that will be applied to the grid's UI view. Any of the config options available for Ext.grid.GridView can be specified here. This option is ignored if view is specified.

Properties

 
dd : Ext.dd.DragSource.
If this Panel is configured draggable, this property will contain an instance of Ext.dd.DragSource which handles drag...

If this Panel is configured draggable, this property will contain an instance of Ext.dd.DragSource which handles dragging the Panel.

The developer must provide implementations of the abstract methods of Ext.dd.DragSource in order to supply behaviour for each stage of the drag/drop process. See draggable.

Methods

 
addDocked( Object/Array component., [Number pos] ) : Void
Adds docked item(s) to the panel.
Adds docked item(s) to the panel.

Parameters

  • component. : Object/Array
    The Component or array of components to add. The components must include a 'dock' parameter on each component to indicate where it should be docked ('top', 'right', 'bottom', 'left').
  • pos : Number
    (optional) The index at which the Component will be added

Returns

  • Void
 
close : Void
Closes the Panel. By default, this method, removes it from the DOM, destroys the Panel object and all its descendant ...

Closes the Panel. By default, this method, removes it from the DOM, destroys the Panel object and all its descendant Components. The beforeclose event is fired before the close happens and will cancel the close action if it returns false.

Note: This method is not affected by the closeAction setting which only affects the action triggered when clicking the 'close' tool in the header. To hide the Panel without destroying it, call hide.

 
collapse( Number direction., Boolean animate ) : Ext.panel.Panel
Collapses the panel body so that the body becomes hidden. Docked Components parallel to the border towards which the ...
Collapses the panel body so that the body becomes hidden. Docked Components parallel to the border towards which the collapse takes place will remain visible. Fires the beforecollapse event which will cancel the collapse action if it returns false.

Parameters

  • direction. : Number
    The direction to collapse towards. Must be one of
    • Ext.Component.DIRECTION_TOP
    • Ext.Component.DIRECTION_RIGHT
    • Ext.Component.DIRECTION_BOTTOM
    • Ext.Component.DIRECTION_LEFT
  • animate : Boolean
    True to animate the transition, else false (defaults to the value of the animCollapse panel config)

Returns

  • Ext.panel.Panel   this
 
expand( Boolean animate ) : Ext.panel.Panel
Expands the panel body so that it becomes visible. Fires the beforeexpand event which will cancel the expand action ...
Expands the panel body so that it becomes visible. Fires the beforeexpand event which will cancel the expand action if it returns false.

Parameters

  • animate : Boolean
    True to animate the transition, else false (defaults to the value of the animCollapse panel config)

Returns

  • Ext.panel.Panel   this
 
getComponent( String/Number comp ) : Ext.Component
Attempts a default component lookup (see Ext.container.Container.getComponent). If the component is not found in the ...
Attempts a default component lookup (see Ext.container.Container.getComponent). If the component is not found in the normal items, the dockedItems are searched and the matched component (if any) returned (see {@loink #getDockedComponent}). Note that docked items will only be matched by component id or itemId -- if you pass a numeric index only non-docked child components will be searched.

Parameters

  • comp : String/Number
    The component id, itemId or position to find

Returns

  • Ext.Component   The component (if found)
 
getDockedComponent( String/Number comp ) : Ext.Component
Finds a docked component by id, itemId or position
Finds a docked component by id, itemId or position

Parameters

  • comp : String/Number
    The id, itemId or position of the docked component (see getComponent for details)

Returns

  • Ext.Component   The docked component (if found)
 
Retrieve an array of all currently docked components.
Retrieve an array of all currently docked components.
 
Called to get grid's drag proxy text, by default returns this.ddText.
Called to get grid's drag proxy text, by default returns this.ddText.
 
getSelectionModel : SelectionModel
Returns the grid's selection model configured by the selModel configuration option. If no selection model was configu...
Returns the grid's selection model configured by the selModel configuration option. If no selection model was configured, this will create and return a RowSelectionModel.
 
getView : Ext.grid.GridView
Returns the grid's GridView object.
Returns the grid's GridView object.
 
insertDocked( Number pos, Object/Array component. ) : Void
Inserts docked item(s) to the panel at the indicated position.
Inserts docked item(s) to the panel at the indicated position.

Parameters

  • pos : Number
    The index at which the Component will be inserted
  • component. : Object/Array
    The Component or array of components to add. The components must include a 'dock' paramater on each component to indicate where it should be docked ('top', 'right', 'bottom', 'left').

Returns

  • Void
 
User overrideable to provide custom editing available logic.
User overrideable to provide custom editing available logic.
 
reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ) : Void
Reconfigures the grid to use a different Store and Column Model and fires the 'reconfigure' event. The View will be b...

Reconfigures the grid to use a different Store and Column Model and fires the 'reconfigure' event. The View will be bound to the new objects and refreshed.

Be aware that upon reconfiguring a GridPanel, certain existing settings may become invalidated. For example the configured autoExpandColumn may no longer exist in the new ColumnModel. Also, an existing PagingToolbar will still be bound to the old Store, and will need rebinding. Any plugins might also need reconfiguring with the new data.

Parameters

Returns

  • Void
 
removeDocked( Ext.Component item., [Boolean autoDestroy] ) : Void
Removes the docked item from the panel.
Removes the docked item from the panel.

Parameters

  • item. : Ext.Component
    The Component to remove.
  • autoDestroy : Boolean
    (optional) Destroy the component after removal.

Returns

  • Void
 
setIconClass( cls undefined ) : Void
Set the iconCls for the panel's header. See Ext.panel.Header.iconCls.
Set the iconCls for the panel's header. See Ext.panel.Header.iconCls.

Parameters

  • undefined : cls

Returns

  • Void
 
setTitle( String title ) : Void
Set a title for the panel's header. See Ext.panel.Header.title.
Set a title for the panel's header. See Ext.panel.Header.title.

Parameters

  • title : String

Returns

  • Void
 
startEditing( Number rowIndex, Number colIndex ) : Void
Starts editing the specified for the specified row/column
Starts editing the specified for the specified row/column

Parameters

  • rowIndex : Number
  • colIndex : Number

Returns

  • Void
 
toggleCollapse : Ext.panel.Panel
Shortcut for performing an expand or collapse based on the current state of the panel.
Shortcut for performing an expand or collapse based on the current state of the panel.

Events

 
afteredit( Object e )
Fires after a cell is edited. The edit event object has the following properties <br /> <ul style="padding:5px;paddin...
Fires after a cell is edited. The edit event object has the following properties
  • grid - This grid
  • record - The record being edited
  • field - The field name being edited
  • value - The value being set
  • originalValue - The original value for the field, before the edit.
  • row - The grid row index
  • column - The grid column index
grid.on('afteredit', afterEdit, this );

function afterEdit(e) {
    // execute an XHR to send/commit data to the server, in callback do (if successful):
    e.record.commit();
};

Parameters

  • e : Object
    An edit event (see above for description)

Returns

  • Void
 
beforeedit( Object e )
Fires before cell editing is triggered. The edit event object has the following properties <br /> <ul style="padding:...
Fires before cell editing is triggered. The edit event object has the following properties
  • grid - This grid
  • record - The record being edited
  • field - The field name being edited
  • value - The value for the field being edited.
  • row - The grid row index
  • column - The grid column index
  • cancel - Set this to true to cancel the edit or return false from your handler.

Parameters

  • e : Object
    An edit event (see above for description)

Returns

  • Void
 
bodyresize( Ext.Panel p, Number width, Number height )
Fires after the Panel has been resized.
Fires after the Panel has been resized.

Parameters

  • p : Ext.Panel
    the Panel which has been resized.
  • width : Number
    The Panel body's new width.
  • height : Number
    The Panel body's new height.

Returns

  • Void
 
validateedit( Object e )
Fires after a cell is edited, but before the value is set in the record. Return false to cancel the change. The edit ...
Fires after a cell is edited, but before the value is set in the record. Return false to cancel the change. The edit event object has the following properties
  • grid - This grid
  • record - The record being edited
  • field - The field name being edited
  • value - The value being set
  • originalValue - The original value for the field, before the edit.
  • row - The grid row index
  • column - The grid column index
  • cancel - Set this to true to cancel the edit or return false from your handler.
Usage example showing how to remove the red triangle (dirty record indicator) from some records (not all). By observing the grid's validateedit event, it can be cancelled if the edit occurs on a targeted row (for example) and then setting the field's new value in the Record directly:
grid.on('validateedit', function(e) {
  var myTargetRow = 6;

  if (e.row == myTargetRow) {
    e.cancel = true;
    e.record.data[e.field] = e.value;
  }
});

Parameters

  • e : Object
    An edit event (see above for description)

Returns

  • Void