Ext.grid.GridPanel
Hierarchy
Ext.util.ObservableExt.ComponentExt.BoxComponentExt.ContainerExt.PanelExt.grid.GridPanelSubclasses
Files
This class represents the primary interface of a component based grid control to represent data in a tabular format of rows and columns. The GridPanel is composed of the following:
- Store : The Model holding the data records (rows)
- Column model : Column makeup
- View : Encapsulates the user interface
- selection model : Selection behavior
Example usage:
var grid = new Ext.grid.GridPanel({
store: new Ext.data.Store({
autoDestroy: true,
reader: reader,
data: xg.dummyData
}),
colModel: new Ext.grid.ColumnModel({
defaults: {
width: 120,
sortable: true
},
columns: [
{id: 'company', header: 'Company', width: 200, sortable: true, dataIndex: 'company'},
{header: 'Price', renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
{header: 'Change', dataIndex: 'change'},
{header: '% Change', dataIndex: 'pctChange'},
// instead of specifying renderer: Ext.util.Format.dateRenderer('m/d/Y') use xtype
{
header: 'Last Updated', width: 135, dataIndex: 'lastChange',
xtype: 'datecolumn', format: 'M d, Y'
}
]
}),
viewConfig: {
forceFit: true,
// Return CSS class to apply to rows depending upon data values
getRowClass: function(record, index) {
var c = record.get('change');
if (c < 0) {
return 'price-fall';
} else if (c > 0) {
return 'price-rise';
}
}
},
sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
width: 600,
height: 300,
frame: true,
title: 'Framed with Row Selection and Horizontal Scrolling',
iconCls: 'icon-grid'
});
Notes:
- Although this class inherits many configuration options from base classes, some of them (such as autoScroll, autoWidth, layout, items, etc) are not used by this class, and will have no effect.
- A grid requires a width in which to scroll its columns, and a height in which to scroll its rows. These dimensions can either be set explicitly through the height and width configuration options or implicitly set by using the grid as a child item of a Container which will have a layout manager provide the sizing of its child items (for example the Container of the Grid may specify layout:'fit').
- To access the data in a Grid, it is necessary to use the data model encapsulated by the Store. See the cellclick event for more details.
Available since: 2.3.0
Config options
Note: this config is only used when this Component is rendered by a Container which has been configured to use an AnchorLayout (or subclass thereof). based layout manager, for example:
- Ext.form.FormPanel
- specifying
layout: 'anchor' // or 'form', or 'absolute'
See Ext.layout.AnchorLayout.anchor also.
Available since: Ext JS 3.4.0
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).
Available since: 2.3.0
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.
Defaults to: false
Available since: 2.3.0
The maximum width the autoExpandColumn can have (if enabled). Defaults to 1000.
Defaults to: 1000
Available since: 2.3.0
The minimum width the autoExpandColumn can have (if enabled). Defaults to 50.
Defaults to: 50
Available since: 2.3.0
true to use height:'auto', false to use fixed height (defaults to false).
Note: Setting autoHeight: true means that the browser will manage the panel's height
based on its contents, and that Ext will not manage it at all. If the panel is within a layout that
manages dimensions (fit, border, etc.) then setting autoHeight: true
can cause issues with scrolling and will not generally work as expected since the panel will take
on the height of its contents rather than the height required by the Ext layout.
Available since: 2.3.0
Overrides: Ext.BoxComponent.autoHeight
True if the component should check for hidden classes (e.g. 'x-hidden' or 'x-hide-display') and remove them on render (defaults to false).
Defaults to: false
Available since: 2.3.0
The base CSS class to apply to this panel's element (defaults to 'x-panel').
Another option available by default is to specify 'x-plain' which strips all styling
except for required attributes for Ext layouts to function (e.g. overflow:hidden).
See unstyled also.
Defaults to: 'x-panel'
Available since: 2.3.0
The bottom toolbar of the panel. This can be a Ext.Toolbar object, a toolbar config, or an array of buttons/button configs to be added to the toolbar. Note that this is not available as a property after render. To access the bottom toolbar after render, use getBottomToolbar.
Note: Although a Toolbar may contain Field components, these will not be updated by a load of an ancestor FormPanel. A Panel's toolbars are not part of the standard Container->Component hierarchy, and so are not scanned to collect form items. However, the values will be submitted because form submission parameters are collected from the DOM tree.
Available since: 2.3.0
A DomHelper element specification object may be specified for any Panel Element.
By default, the Default element in the table below will be used for the html markup to
create a child element with the commensurate Default class name (baseCls will be
replaced by baseCls):
Panel Default Default Custom Additional Additional Element element class element class style ======== ========================== ========= ============== =========== header div baseCls+'-header' headerCfg headerCssClass headerStyle bwrap div baseCls+'-bwrap' bwrapCfg bwrapCssClass bwrapStyle + tbar div baseCls+'-tbar' tbarCfg tbarCssClass tbarStyle + body div baseCls+'-body' bodyCfg bodyCssClass bodyStyle + bbar div baseCls+'-bbar' bbarCfg bbarCssClass bbarStyle + footer div baseCls+'-footer' footerCfg footerCssClass footerStyle
Configuring a Custom element may be used, for example, to force the body Element to use a different form of markup than is created by default. An example of this might be to create a child Panel containing a custom content, such as a header, or forcing centering of all Panel content by having the body be a <center> element:
new Ext.Panel({
title: 'Message Title',
renderTo: Ext.getBody(),
width: 200, height: 130,
bodyCfg: {
tag: 'center',
cls: 'x-panel-body', // Default class not applied if Custom element specified
html: 'Message'
},
footerCfg: {
tag: 'h2',
cls: 'x-panel-footer', // same as the Default class
html: 'footer html'
},
footerCssClass: 'custom-footer', // additional css class, see addClass
footerStyle: 'background-color:red' // see bodyStyle
});
The example above also explicitly creates a footer with custom markup and
styling applied.
Available since: 2.3.0
Additional css class selector to be applied to the body element in the format expected by Ext.Element.addClass (defaults to null). See bodyCfg.
Available since: Ext JS 3.4.0
True to display the borders of the panel's body element, false to hide them (defaults to true). By default, the border is a 2px wide inset border, but this can be further altered by setting bodyBorder to false.
Available since: 2.3.0
The maximum value in pixels which this BoxComponent will set its height to.
Warning: This will override any size management applied by layout managers.
Available since: Ext JS 3.4.0
The maximum value in pixels which this BoxComponent will set its width to.
Warning: This will override any size management applied by layout managers.
Available since: Ext JS 3.4.0
The minimum value in pixels which this BoxComponent will set its height to.
Warning: This will override any size management applied by layout managers.
Available since: Ext JS 3.4.0
The minimum value in pixels which this BoxComponent will set its width to.
Warning: This will override any size management applied by layout managers.
Available since: Ext JS 3.4.0
An array of events that, when fired, should be bubbled to any parent container. See Ext.util.Observable.enableBubble. Defaults to [].
Defaults to: []
Available since: Ext JS 3.4.0
Overrides: Ext.Container.bubbleEvents
The CSS class used to to apply to the special clearing div rendered directly after each form field wrapper to provide field clearing (defaults to 'x-form-clear-left').
Note: this config is only used when this Component is rendered by a Container
which has been configured to use the FormLayout layout manager (e.g. Ext.form.FormPanel or specifying layout:'form') and either a fieldLabel is specified or isFormField=true is specified.
See Ext.layout.FormLayout.fieldTpl also.
Available since: 2.3.0
Panels themselves do not directly support being closed, but some Panel subclasses do (like
Ext.Window) or a Panel Class within an Ext.TabPanel. Specify true
to enable closing in such situations. Defaults to false.
Available since: Ext JS 3.4.0
An optional extra CSS class that will be added to this component's Element (defaults to ''). This can be useful for adding customized styles to the component or any of its children using standard CSS rules.
Available since: 1.1.0
The Ext.grid.ColumnModel to use when rendering the grid (required).
The Ext.grid.ColumnModel to use when rendering the grid (required).
Available since: 2.3.0
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).
Defaults to: true
Available since: 2.3.0
true to render the panel collapsed, false to render it expanded (defaults to
false).
Defaults to: false
Available since: 2.3.0
A CSS class to add to the panel's element after it has been collapsed (defaults to
'x-panel-collapsed').
Defaults to: 'x-panel-collapsed'
Available since: 2.3.0
True to make the panel collapsible and have the expand/collapse toggle button automatically rendered into the header tool button area, false to keep the panel statically sized with no button (defaults to false).
Available since: 2.3.0
true to add css for column separation lines. Default is false.
Defaults to: false
Available since: Ext JS 3.4.0
An array of columns to auto create a Ext.grid.ColumnModel. The ColumnModel may be explicitly created via the colModel configuration property.
Available since: 2.3.0
An optional extra CSS class that will be added to this component's container. This can be useful for adding customized styles to the container or any of its children using standard CSS rules. See Ext.layout.ContainerLayout.extraCls also.
Note: ctCls defaults to '' except for the following class which assigns a value by default:
- Box Layout : 'x-box-layout-ct'
ctCls: 'x-box-layout-ct custom-class'
Available since: 2.3.0
The DD group this GridPanel belongs to. Defaults to 'GridDD' if not specified.
Available since: Ext JS 3.4.0
Configures the text in the drag proxy. Defaults to:
ddText : '{0} selected row{1}'
{0} is replaced with the number of selected rows.
Defaults to: '{0} selected row{1}'
Available since: Ext JS 3.4.0
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.
Defaults to: true
Available since: 2.3.0
true to disable selections in the grid. Defaults to false.
Ignored if a SelectionModel is specified.
Available since: 2.3.0
Render this panel disabled (default is false). An important note when using the disabled
config on panels is that IE will often fail to initialize the disabled mask element correectly if
the panel's layout has not yet completed by the time the Panel is disabled during the render process.
If you experience this issue, you may need to instead use the afterlayout event to initialize
the disabled state:
new Ext.Panel({
...
listeners: {
'afterlayout': {
fn: function(p){
p.disable();
},
single: true // important, as many layouts can occur
}
}
});
Available since: 2.3.0
Overrides: Ext.Component.disabled
Defaults to false. If using enableDragDrop with a CellSelectionModel,
set this to true to have the view's dragZone's getDragData
method reference the selected cell using [rowIndex, cellIndex]
Available since: Ext JS 3.4.0
true to enable dragging of this Panel (defaults to false).
For custom drag/drop implementations, an Ext.Panel.DD config could also be passed
in this config instead of true. Ext.Panel.DD is an internal, undocumented class which
moves a proxy Element around in place of the Panel's element, but provides no other behaviour
during dragging or on drop. It is a subclass of Ext.dd.DragSource, so behaviour may be
added by implementing the interface methods of Ext.dd.DragDrop e.g.:
new Ext.Panel({
title: 'Drag me',
x: 100,
y: 100,
renderTo: Ext.getBody(),
floating: true,
frame: true,
width: 400,
height: 200,
draggable: {
// Config option of Ext.Panel.DD class.
// It's a floating Panel, so do not show a placeholder proxy in the original position.
insertProxy: false,
// Called for each mousemove event while dragging the DD object.
onDrag : function(e){
// Record the x,y position of the drag proxy so that we can
// position the Panel at end of drag.
var pel = this.proxy.getEl();
this.x = pel.getLeft(true);
this.y = pel.getTop(true);
// Keep the Shadow aligned if there is one.
var s = this.panel.getEl().shadow;
if (s) {
s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
}
},
// Called on the mouseup event.
endDrag : function(e){
this.panel.setPosition(this.x, this.y);
}
}
}).show();
Available since: 2.3.0
Defaults to true to enable hiding of columns with the header menu.
Defaults to: true
Available since: 2.3.0
Defaults to true to enable drag and drop reorder of columns. false to turn off column reordering via drag drop.
Defaults to: true
Available since: 2.3.0
false to turn off column resizing for the whole grid. Defaults to true.
Available since: 2.3.0
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.
Defaults to: false
Available since: 2.3.0
Defaults to true to enable the drop down button for menu in the headers.
Defaults to: true
Available since: 2.3.0
A Toolbar object, a Toolbar config, or an array of Buttons/Button configs, describing a Toolbar to be rendered into this Panel's footer element.
After render, the fbar property will be an Toolbar instance.
If buttons are specified, they will supersede the fbar configuration property.
The Panel's buttonAlign configuration affects the layout of these items, for example:
var w = new Ext.Window({
height: 250,
width: 500,
bbar: new Ext.Toolbar({
items: [{
text: 'bbar Left'
},'->',{
text: 'bbar Right'
}]
}),
buttonAlign: 'left', // anything but 'center' or 'right' and you can use '-', and '->'
// to control the alignment of fbar items
fbar: [{
text: 'fbar Left'
},'->',{
text: 'fbar Right'
}]
}).show();
Note: Although a Toolbar may contain Field components, these will not be updated by a load of an ancestor FormPanel. A Panel's toolbars are not part of the standard Container->Component hierarchy, and so are not scanned to collect form items. However, the values will be submitted because form submission parameters are collected from the DOM tree.
Available since: Ext JS 3.4.0
The label text to display next to this Component (defaults to '').
Note: this config is only used when this Component is rendered by a Container which
has been configured to use the FormLayout layout manager (e.g. Ext.form.FormPanel or specifying layout:'form').
Also see hideLabel and Ext.layout.FormLayout.fieldTpl.
Example use:
new Ext.FormPanel({
height: 100,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
fieldLabel: 'Name'
}]
});
Available since: 2.3.0
Note: this config is only used when this Component is rendered
by a Container which has been configured to use a BoxLayout.
Each child Component with a flex property will be flexed either vertically (by a VBoxLayout)
or horizontally (by an HBoxLayout) according to the item's relative flex value
compared to the sum of all Components with flex value specified. Any child items that have
either a flex = 0 or flex = undefined will not be 'flexed' (the initial size will not be changed).
Available since: Ext JS 3.4.0
This property is used to configure the underlying Ext.Layer. Acceptable values for this configuration property are:
false: Default.Display the panel inline where it is rendered.true:Float the panel (absolute position it with automatic shimming and shadow).Setting floating to true will create an Ext.Layer for this panel and display the panel at negative offsets so that it is hidden.Since the panel will be absolute positioned, the position must be set explicitly after render (e.g.,myPanel.setPosition(100,100);).Note: when floating a panel you should always assign a fixed width, otherwise it will be auto width and will expand to fill to the right edge of the viewport.object:The specified object will be used as the configuration object for the Ext.Layer that will be created.
Available since: 2.3.0
If true the container will force a layout initially even if hidden or collapsed. This option is useful for forcing forms to render in collapsed or hidden containers. (defaults to false).
Defaults to: false
Available since: Ext JS 3.4.0
false by default to render with plain 1px square borders. true to render with
9 elements, complete with custom rounded corners (also see Ext.Element.boxWrap).
The template generated for each condition is depicted below:
// frame = false
<div id="developer-specified-id-goes-here" class="x-panel">
<div class="x-panel-header"><span class="x-panel-header-text">Title: (frame:false)</span></div>
<div class="x-panel-bwrap">
<div class="x-panel-body"><p>html value goes here</p></div>
</div>
</div>
// frame = true (create 9 elements)
<div id="developer-specified-id-goes-here" class="x-panel">
<div class="x-panel-tl"><div class="x-panel-tr"><div class="x-panel-tc">
<div class="x-panel-header"><span class="x-panel-header-text">Title: (frame:true)</span></div>
</div></div></div>
<div class="x-panel-bwrap">
<div class="x-panel-ml"><div class="x-panel-mr"><div class="x-panel-mc">
<div class="x-panel-body"><p>html value goes here</p></div>
</div></div></div>
<div class="x-panel-bl"><div class="x-panel-br"><div class="x-panel-bc"/>
</div></div></div>
</div>
Available since: 2.3.0
The height of this component in pixels (defaults to auto). Note to express this dimension as a percentage or offset see Ext.Component.anchor.
Available since: 2.3.0
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).
Available since: 2.3.0
True to hide the grid's header. Defaults to false.
Available since: 2.3.0
true to completely hide the label element (label and separator). Defaults to false. By default, even if you do not specify a fieldLabel the space will still be reserved so that the field will line up with other fields that do have labels. Setting this to true will cause the field to not reserve that space.
Note: see the note for clearCls.
Example use:
new Ext.FormPanel({
height: 100,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield'
hideLabel: true
}]
});
Available since: 2.3.0
How this component should be hidden. Supported values are 'visibility' (css visibility), 'offsets' (negative offset position) and 'display' (css display).
Note: the default of 'display' is generally preferred
since items are automatically laid out when they are first shown (no sizing is done while hidden).
Defaults to: 'display'
Available since: 1.1.0
True to hide and show the component's container when hide/show is called on the component, false to hide and show the component itself (defaults to false). For example, this can be used as a shortcut for a hide button on a window by setting hide:true on the button when adding it to its parent container.
Defaults to: false
Available since: 2.3.0
The CSS class selector that specifies a background image to be used as the header icon (defaults to '').
An example of specifying a custom icon class would be something like:
// specify the property in the config for the class:
...
iconCls: 'my-icon'
// css class that specifies background image to be used as the icon image:
.my-icon { background-image: url(../images/my-icon.gif) 0 6px no-repeat !important; }
Available since: 2.3.0
The unique id of this component (defaults to an auto-assigned id). You should assign an id if you need to be able to access the component later and you do not have an object reference available (e.g., using Ext.getCmp).
Note that this id will also be used as the element id for the containing HTML element that is rendered to the page for this component. This allows you to write id-based CSS rules to style the specific instance of this component uniquely, and also to select sub-elements using this component's id as the parent.
Note: to avoid complications imposed by a unique id also see
itemId and ref.
Note: to access the container of an item see ownerCt.
Available since: 1.1.0
Note: this config is only used when this Component is rendered by a Container which has been configured to use the FormLayout layout manager (e.g. Ext.form.FormPanel or specifying layout:'form').
An additional CSS class to apply to the div wrapping the form item element of this field. If supplied, itemCls at the field level will override the default itemCls supplied at the container level. The value specified for itemCls will be added to the default class ('x-form-item').
Since it is applied to the item wrapper (see Ext.layout.FormLayout.fieldTpl), it allows you to write standard CSS rules that can apply to the field, the label (if specified), or any other element within the markup for the field.
Note: see the note for fieldLabel.
Example use:
// Apply a style to the field's label:
<style>
.required .x-form-item-label {font-weight:bold;color:red;}
</style>
new Ext.FormPanel({
height: 100,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
itemCls: 'required' //this label will be styled
},{
xtype: 'textfield',
fieldLabel: 'Favorite Color'
}]
});
Available since: 2.3.0
An itemId can be used as an alternative way to get a reference to a component
when no object reference is available. Instead of using an id with
Ext.getCmp, use itemId with
Ext.Container.getComponent which will retrieve
itemId's or id's. Since itemId's are an index to the
container's internal MixedCollection, the itemId is scoped locally to the container --
avoiding potential conflicts with Ext.ComponentMgr which requires a unique
id.
var c = new Ext.Panel({ //
height: 300,
renderTo: document.body,
layout: 'auto',
items: [
{
itemId: 'p1',
title: 'Panel 1',
height: 150
},
{
itemId: 'p2',
title: 'Panel 2',
height: 150
}
]
})
p1 = c.getComponent('p1'); // not the same as Ext.getCmp()
p2 = p1.ownerCt.getComponent('p2'); // reference via a sibling
Note: to access the container of an item see ownerCt.
Available since: Ext JS 3.4.0
A Ext.KeyMap config object (in the format expected by Ext.KeyMap.addBinding
used to assign custom key handling to this panel (defaults to null).
Available since: 2.3.0
The separator to display after the text of each fieldLabel. This property may be configured at various levels. The order of precedence is:
- field / component level
- container level
- layout level (defaults to colon ':')
Note: see the note for clearCls.
Also see hideLabel and Ext.layout.FormLayout.fieldTpl.
Example use:
new Ext.FormPanel({
height: 100,
renderTo: Ext.getBody(),
layoutConfig: {
labelSeparator: '~' // layout config has lowest priority (defaults to ':')
},
labelSeparator: '>>', // config at container level
items: [{
xtype: 'textfield',
fieldLabel: 'Field 1',
labelSeparator: '...' // field/component level config supersedes others
},{
xtype: 'textfield',
fieldLabel: 'Field 2' // labelSeparator will be '='
}]
});
Available since: 2.3.0
A CSS style specification string to apply directly to this field's label. Defaults to the container's labelStyle value if set (e.g., Ext.layout.FormLayout.labelStyle , or '').
Note: see the note for clearCls.
Also see hideLabel and
Ext.layout.FormLayout.fieldTpl.
Example use:
new Ext.FormPanel({
height: 100,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
labelStyle: 'font-weight:bold;'
}]
});
Available since: 2.3.0
(optional)
A config object containing one or more event handlers to be added to this object during initialization. This should be a valid listeners config object as specified in the addListener example for attaching multiple handlers at once.
DOM events from ExtJs Components
While some ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
is usually only done when extra value can be added. For example the DataView's
click event passing the node clicked on. To access DOM
events directly from a Component's HTMLElement, listeners must be added to the Element after the Component
has been rendered. A plugin can simplify this step:
// Plugin is configured with a listeners config object.
// The Component is appended to the argument list of all handler functions.
Ext.DomObserver = Ext.extend(Object, {
constructor: function(config) {
this.listeners = config.listeners ? config.listeners : config;
},
// Component passes itself into plugin's init method
init: function(c) {
var p, l = this.listeners;
for (p in l) {
if (Ext.isFunction(l[p])) {
l[p] = this.createHandler(l[p], c);
} else {
l[p].fn = this.createHandler(l[p].fn, c);
}
}
// Add the listeners to the Element immediately following the render call
c.render = c.render.createSequence(function() {
var e = c.getEl();
if (e) {
e.on(l);
}
});
},
createHandler: function(fn, c) {
return function(e) {
fn.call(this, e, c);
};
}
});
var combo = new Ext.form.ComboBox({
// Collapse combo when its element is clicked on
plugins: [ new Ext.DomObserver({
click: function(evt, comp) {
comp.collapse();
}
})],
store: myStore,
typeAhead: true,
mode: 'local',
triggerAction: 'all'
});
Available since: 1.1.0
An Ext.LoadMask config or true to mask the grid while
loading. Defaults to false.
Defaults to: false
Available since: 2.3.0
Note: this config is only used when this BoxComponent is rendered by a Container which has been configured to use the BorderLayout or one of the two BoxLayout subclasses.
An object containing margins to apply to this BoxComponent in the format:
{
top: (top margin),
right: (right margin),
bottom: (bottom margin),
left: (left margin)
}
May also be a string containing space-separated, numeric margin values. The order of the sides associated with each value matches the way CSS processes margin values:
- If there is only one value, it applies to all sides.
- If there are two values, the top and bottom borders are set to the first value and the right and left are set to the second.
- If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third.
- If there are four values, they apply to the top, right, bottom, and left, respectively.
Defaults to:
{top:0, right:0, bottom:0, left:0}
Available since: Ext JS 3.4.0
true to mask the panel when it is disabled, false to not mask it (defaults
to true). Either way, the panel will always tell its contained elements to disable themselves
when it is disabled, but masking the panel can provide an additional visual cue that the panel is
disabled.
Defaults to: true
Available since: 2.3.0
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.
Available since: 2.3.0
Minimum width in pixels of all buttons in this panel (defaults to 75)
Defaults to: 75
Available since: 2.3.0
The minimum width a column can be resized to. Defaults to 25.
Defaults to: 25
Available since: 2.3.0
An optional extra CSS class that will be added to this component's Element when the mouse moves over the Element, and removed when the mouse moves out. (defaults to ''). This can be useful for adding customized 'active' or 'hover' styles to the component or any of its children using standard CSS rules.
Available since: 2.3.0
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.
Available since: Ext JS 3.4.0
The page level x coordinate for this component if contained within a positioning container.
The page level x coordinate for this component if contained within a positioning container.
Available since: 2.3.0
The page level y coordinate for this component if contained within a positioning container.
The page level y coordinate for this component if contained within a positioning container.
Available since: 2.3.0
An object or array of objects that will provide custom functionality for this component. The only requirement for a valid plugin is that it contain an init method that accepts a reference of type Ext.Component. When a component is created, if any plugins are available, the component will call the init method on each plugin, passing a reference to itself. Each plugin can then call methods or respond to events on the component as needed to provide its functionality.
Available since: 2.3.0
The registered ptype to create. This config option is not used when passing
a config object into a constructor. This config option is used only when
lazy instantiation is being used, and a Plugin is being
specified not as a fully instantiated Component, but as a Component config
object. The ptype will be looked up at render time up to determine what
type of Plugin to create.
If you create your own Plugins, you may register them using
Ext.ComponentMgr.registerPlugin in order to be able to
take advantage of lazy instantiation and rendering.
Available since: Ext JS 3.4.0
A path specification, relative to the Component's ownerCt
specifying into which ancestor Container to place a named reference to this Component.
The ancestor axis can be traversed by using '/' characters in the path. For example, to put a reference to a Toolbar Button into the Panel which owns the Toolbar:
var myGrid = new Ext.grid.EditorGridPanel({
title: 'My EditorGridPanel',
store: myStore,
colModel: myColModel,
tbar: [{
text: 'Save',
handler: saveChanges,
disabled: true,
ref: '../saveButton'
}],
listeners: {
afteredit: function() {
// The button reference is in the GridPanel
myGrid.saveButton.enable();
}
}
});
In the code above, if the ref had been 'saveButton'
the reference would have been placed into the Toolbar. Each '/' in the ref
moves up one level from the Component's ownerCt.
Also see the added and removed events.
Available since: Ext JS 3.4.0
Note: this config is only used when this BoxComponent is rendered by a Container which has been configured to use the BorderLayout layout manager (e.g. specifying layout:'border').
See Ext.layout.BorderLayout also.
Available since: Ext JS 3.4.0
Specify the id of the element, a DOM element or an existing Element that this component will be rendered into.
- Notes : Do not use this option if the Component is to be a child item of a Container. It is the responsibility of the Container's layout manager to render and manage its child items.When using this config, a call to render() is not required.
See render also.
Available since: 2.3.0
The event to listen to for resizing in layouts. Defaults to 'bodyresize'.
Defaults to: 'bodyresize'
Available since: Ext JS 3.4.0
Overrides: Ext.Container.resizeEvent
Any subclass of Ext.grid.AbstractSelectionModel that will provide the selection model for the grid (defaults to Ext.grid.RowSelectionModel if not specified).
Available since: 2.3.0
true (or a valid Ext.Shadow Ext.Shadow.mode value) to display a shadow behind the
panel, false to display no shadow (defaults to 'sides'). Note that this option
only applies when floating = true.
Available since: 2.3.0
The number of pixels to offset the shadow if displayed (defaults to 4). Note that this
option only applies when floating = true.
Available since: 2.3.0
false to disable the iframe shim in browsers which need one (defaults to true).
Note that this option only applies when floating = true.
Available since: 2.3.0
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.
Defaults to: ['columnmove', 'columnresize', 'sortchange', 'groupchange']
Available since: 2.3.0
Overrides: Ext.Component.stateEvents
The unique id for this component to use for state management purposes (defaults to the component id if one was set, otherwise null if the component is using a generated id).
See stateful for an explanation of saving and
restoring Component state.
Available since: 2.3.0
A flag which causes the Component to attempt to restore the state of
internal properties from a saved state on startup. The component must have
either a stateId or id assigned
for state to be managed. Auto-generated ids are not guaranteed to be stable
across page loads and cannot be relied upon to save and restore the same
state for a component.
For state saving to work, the state manager's provider must have been set to an implementation of Ext.state.Provider which overrides the set and get methods to save and recall name/value pairs. A built-in implementation, Ext.state.CookieProvider is available.
To set the state provider for the current page:
Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
expires: new Date(new Date().getTime()+(1000*60*60*24*7)), //7 days from now
}));
A stateful Component attempts to save state when one of the events
listed in the stateEvents configuration fires.
To save state, a stateful Component first serializes its state by
calling getState. By default, this function does
nothing. The developer must provide an implementation which returns an
object hash which represents the Component's restorable state.
The value yielded by getState is passed to Ext.state.Manager.set
which uses the configured Ext.state.Provider to save the object
keyed by the Component's stateId, or, if that is not
specified, its id.
During construction, a stateful Component attempts to restore
its state by calling Ext.state.Manager.get passing the
stateId, or, if that is not specified, the
id.
The resulting object is passed to applyState.
The default implementation of applyState simply copies
properties into the object, but a developer may override this to support
more behaviour.
You can perform extra processing on state save and restore by attaching handlers to the beforestaterestore, staterestore, beforestatesave and statesave events.
Available since: 2.3.0
The Ext.data.Store the grid should use as its data source (required).
The Ext.data.Store the grid should use as its data source (required).
Available since: 2.3.0
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.
Defaults to: false
Available since: 2.3.0
A custom style specification to be applied to this component's Element. Should be a valid argument to Ext.Element.applyStyles.
new Ext.Panel({
title: 'Some Title',
renderTo: Ext.getBody(),
width: 400, height: 300,
layout: 'form',
items: [{
xtype: 'textarea',
style: {
width: '95%',
marginBottom: '10px'
}
},
new Ext.Button({
text: 'Send',
minWidth: '100',
style: {
marginBottom: '10px'
}
})
]
});
Available since: 1.1.0
Note: this config is only used when this BoxComponent is a child item of a TabPanel.
A string to be used as innerHTML (html tags are accepted) to show in a tooltip when mousing over the associated tab selector element. Ext.QuickTips.init() must be called in order for the tips to render.
Available since: Ext JS 3.4.0
The top toolbar of the panel. This can be a Ext.Toolbar object, a toolbar config, or an array of buttons/button configs to be added to the toolbar. Note that this is not available as a property after render. To access the top toolbar after render, use getTopToolbar.
Note: Although a Toolbar may contain Field components, these will not be updated by a load of an ancestor FormPanel. A Panel's toolbars are not part of the standard Container->Component hierarchy, and so are not scanned to collect form items. However, the values will be submitted because form submission parameters are collected from the DOM tree.
Available since: 2.3.0
The title text to be used as innerHTML (html tags are accepted) to display in the panel
header (defaults to ''). When a title is specified the
header element will automatically be created and displayed unless
header is explicitly set to false. If you do not want to specify a
title at config time, but you may want one later, you must either specify a non-empty
title (a blank space ' ' will do) or header:true so that the container
element will get created.
Available since: 2.3.0
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)). If this panel is a child item of a border layout also see the
BorderLayout.Region
floatable config option.
Available since: 2.3.0
A Template used to create tools in the header Element. Defaults to:
new Ext.Template('<div class="x-tool x-tool-{id}"> </div>')
This may may be overridden to provide a custom DOM structure for tools based upon a more complex XTemplate. The template's data is a single tool configuration object (Not the entire Array) as specified in tools. In the following example an <a> tag is used to provide a visual indication when hovering over the tool:
var win = new Ext.Window({
tools: [{
id: 'download',
href: '/MyPdfDoc.pdf'
}],
toolTemplate: new Ext.XTemplate(
'<tpl if="id==\'download\'">',
'<a class="x-tool x-tool-pdf" href="{href}"></a>',
'</tpl>',
'<tpl if="id!=\'download\'">',
'<div class="x-tool x-tool-{id}"> </div>',
'</tpl>'
),
width:500,
height:300,
closeAction:'hide'
});
Note that the CSS class 'x-tool-pdf' should have an associated style rule which provides an appropriate background image, something like:
a.x-tool-pdf {background-image: url(../shared/extjs/images/pdf.gif)!important;}
Available since: 2.3.0
An array of tool button configs to be added to the header tool area. When rendered, each tool is
stored as an Element referenced by a public property called tools.<tool-type>
Each tool config may contain the following properties:
- id : StringRequired. The type of tool to create. By default, this assigns a CSS class of the form
x-tool-<tool-type>to the resulting tool Element. Ext provides CSS rules, and an icon sprite containing images for the tool types listed below. The developer may implement custom tools by supplying alternate CSS rules and background images:closeminimizemaximizerestoregearpinunpinrightleftupdownrefreshminusplushelpsearchsaveprint - handler : FunctionRequired. The function to call when clicked. Arguments passed are:
- event : Ext.EventObjectThe click event.
- toolEl : Ext.ElementThe tool Element.
- panel : Ext.PanelThe host Panel
- tc : ObjectThe tool configuration object
- event : Ext.EventObject
- stopEvent : BooleanDefaults to true. Specify as false to allow click event to propagate.
- scope : ObjectThe scope in which to call the handler.
- qtip : String/ObjectA tip string, or a config argument to Ext.QuickTip.register
- hidden : BooleanTrue to initially render hidden.
- on : ObjectA listener config object specifiying event listeners in the format of an argument to addListener
Note that, apart from the toggle tool which is provided when a panel is collapsible, these tools only provide the visual button. Any required functionality must be provided by adding handlers that implement the necessary behavior.
Example usage:
tools:[{
id:'refresh',
qtip: 'Refresh form Data',
// hidden:true,
handler: function(event, toolEl, panel){
// refresh logic
}
},
{
id:'help',
qtip: 'Get Help',
handler: function(event, toolEl, panel){
// whatever
}
}]
For the custom id of 'help' define two relevant css classes with a link to
a 15x15 image:
.x-tool-help {background-image: url(images/help.png);}
.x-tool-help-over {background-image: url(images/help_over.png);}
// if using an image sprite:
.x-tool-help {background-image: url(images/help.png) no-repeat 0 0;}
.x-tool-help-over {background-position:-15px 0;}
Available since: 2.3.0
An data and
tplWriteMode configurations.
Available since: Ext JS 3.4.0
The Ext.(X)Template method to use when
updating the content area of the Component. Defaults to 'overwrite'
(see Ext.XTemplate.overwrite).
Defaults to: 'overwrite'
Available since: Ext JS 3.4.0
True to highlight rows when the mouse is over. Default is true for GridPanel, but false for EditorGridPanel.
Defaults to: true
Available since: 2.3.0
The Ext.grid.GridView used by the grid. This can be set before a call to render().
Available since: 2.3.0
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.
Available since: 2.3.0
The width of this component in pixels (defaults to auto). Note to express this dimension as a percentage or offset see Ext.Component.anchor.
Available since: 2.3.0
The local x (left) coordinate for this component if contained within a positioning container.
The local x (left) coordinate for this component if contained within a positioning container.
Available since: 2.3.0
The registered xtype to create. This config option is not used when passing
a config object into a constructor. This config option is used only when
lazy instantiation is being used, and a child item of a Container is being
specified not as a fully instantiated Component, but as a Component config
object. The xtype will be looked up at render time up to determine what
type of child Component to create.
The predefined xtypes are listed here.
If you subclass Components to create your own Components, you may register them using Ext.ComponentMgr.registerType in order to be able to take advantage of lazy instantiation and rendering.
Available since: 2.3.0
Properties
The Panel's body Element which may be used to contain HTML content. The content may be specified in the html config, or it may be loaded using the autoLoad config, or through the Panel's Updater. Read-only.
If this is used to load visible HTML elements in either way, then the Panel may not be used as a Layout for hosting nested Panels.
If this Panel is intended to be used as the host of a Layout (See layout
then the body Element must not be loaded or changed - it is under the control
of the Panel's Layout.
Note: see the Note for el also.
Available since: 2.3.0
private, set in afterRender to signify that the component has been rendered
Defaults to: false
Available since: 2.3.0
private
Defaults to: {duration: 0.25}
Available since: 2.3.0
True if this panel is collapsed. Read-only.
Available since: Ext JS 3.4.0
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.
Available since: 2.3.0
private, notify box this class will handle heights
Defaults to: true
Available since: 2.3.0
Overrides: Ext.BoxComponent.deferHeight
The Ext.Element which encapsulates this Component. Read-only.
This will usually be a <DIV> element created by the class's onRender method, but
that may be overridden using the autoEl config.
Note: this element will not be available until this Component has been rendered.
To add listeners for DOM events to this Component (as opposed to listeners for this Component's own Observable events), see the listeners config for a suggestion, or use a render listener directly:
new Ext.Panel({
title: 'The Clickable Panel',
listeners: {
render: function(p) {
// Append the Panel to the click handler's argument list.
p.getEl().on('click', handlePanelClick.createDelegate(null, [p], true));
},
single: true // Remove the listener after first invocation
}
});
See also getEl
Available since: Ext JS 3.4.0
private
Defaults to: {duration: 0.25}
Available since: 2.3.0
This Component's initial configuration specification. Read-only.
Available since: 2.3.0
The ancestor Container into which the ref reference was inserted if this Component
is a child of a Container, and has been configured with a ref.
Available since: Ext JS 3.4.0
private
True if this component has been rendered. Read-only.
Defaults to: false
Available since: 2.3.0
Overrides: Ext.Component.rendered
protected - these could be used to customize the behavior of the window, but changing them would not be useful without further mofifications and could lead to unexpected or undesirable results.
Defaults to: 'header'
Available since: 2.3.0
Methods
Available since: 2.3.0
Parameters
- config : Object
The config object
Returns
Overrides: Ext.Panel.constructor
Adds a button to this panel. Note that this method must be called prior to rendering. The preferred approach is to add buttons via the buttons config.
Available since: 2.3.0
Parameters
- config : String/Object
A valid Ext.Button config. A string will become the text for a default button config, an object will be treated as a button config object.
- handler : Function
The function to be called on button Ext.Button.click
- scope : Object
The scope (
thisreference) in which the button handler function is executed. Defaults to the Button.
Returns
- Ext.Button
The button that was added
Adds a CSS class to the component's underlying element.
Available since: 2.3.0
Parameters
- cls : string
The CSS class name to add
Returns
- Ext.Component
this
Adds the specified events to the list of events which this Observable may fire.
Available since: 1.1.0
Parameters
- o : Object|String
Either an object with event names as properties with a value of
trueor the first event name string if multiple event names are being passed as separate parameters. - Optional : string
. Event name if multiple event names are being passed as separate parameters. Usage:
this.addEvents('storeloaded', 'storecleared');
Appends an event handler to this object.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to listen for.
- handler : Function
The method the event invokes.
- scope : Object (optional)
The scope (
thisreference) in which the handler function is executed. If omitted, defaults to the object which fired the event. - options : Object (optional)
An object containing handler configuration. properties. This may contain any of the following properties:
- scope : ObjectThe scope (
thisreference) in which the handler function is executed. If omitted, defaults to the object which fired the event. - delay : NumberThe number of milliseconds to delay the invocation of the handler after the event fires.
- single : BooleanTrue to add a handler to handle just the next firing of the event, and then remove itself.
- buffer : NumberCauses the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.
- target : ObservableOnly call the handler if the event was fired on the target Observable, not if the event was bubbled up from a child Observable.
Combining Options
Using the options argument, it is possible to combine different types of listeners:
A delayed, one-time listener.myDataView.on('click', this.onClick, this, { single: true, delay: 100 });Attaching multiple handlers in 1 call
The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.myGridPanel.on({ 'click' : { fn: this.onClick, scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver, scope: this }, 'mouseout' : { fn: this.onMouseOut, scope: this } });Or a shorthand syntax:
myGridPanel.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut, scope: this }); - scope : Object
private
Available since: 2.3.0
Parameters
- x : Object
- y : Object
Bubbles up the component/container heirarchy, calling the specified function with each component. The scope (this) of function call will be the scope provided or the current component. The arguments to the function will be the args provided or the current component. If the function returns false at any point, the bubble is stopped.
Available since: Ext JS 3.4.0
Parameters
- fn : Function
The function to call
- scope : Object (optional)
The scope of the function (defaults to current node)
- args : Array (optional)
The args to call the function with (default to passing the current component)
Returns
- Ext.Component
this
We can only lay out if there is a view area in which to layout. display:none on the layout target, or any of its parent elements will mean it has no view area.
Available since: Ext JS 3.4.0
Clone the current component using the original config values passed into this instance by default.
Available since: 2.3.0
Parameters
- overrides : Object
A new config containing any properties to override in the cloned version. An id property can be passed on this object, otherwise one will be generated to avoid duplicates.
Returns
- Ext.Component
clone The cloned copy of this component
Collapses the panel body so that it becomes hidden. Fires the beforecollapse event which will cancel the collapse action if it returns false.
Available since: 2.3.0
Parameters
- animate : Boolean
True to animate the transition, else false (defaults to the value of the animCollapse panel config)
Returns
- Ext.Panel
this
private
Available since: 2.3.0
Parameters
- config : Object
- defaultType : Object
private - wraps up an animation param with internal callbacks
Available since: 2.3.0
Parameters
- a : Object
- cb : Object
- scope : Object
private
Available since: 2.3.0
Parameters
- name : Object
- pnode : Object
private
Available since: 2.3.0
Parameters
- cls : Object
- useShim : Object
- appendTo : Object
private
Available since: 2.3.0
Parameters
- t : Object
- tc : Object
- overCls : Object
- panel : Object
private
Available since: Ext JS 3.4.0
Parameters
- tb : Object
- options : Object
Destroys this component by purging any event listeners, removing the component's element from the DOM, removing the component from its Ext.Container (if applicable) and unregistering it from Ext.ComponentMgr. Destruction is generally handled automatically by the framework and this method should usually not need to be called directly.
Available since: 1.1.0
private
Available since: Ext JS 3.4.0
Parameters
- c : Object
- autoDestroy : Object
Enables events fired by this Observable to bubble up an owner hierarchy by calling
this.getBubbleTarget() if present. There is no implementation in the Observable base class.
This is commonly used by Ext.Components to bubble events to owner Containers. See Ext.Component.getBubbleTarget. The default implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to access the required target more quickly.
Example:
Ext.override(Ext.form.Field, {
// Add functionality to Field's initComponent to enable the change event to bubble
initComponent : Ext.form.Field.prototype.initComponent.createSequence(function() {
this.enableBubble('change');
}),
// We know that we want Field's events to bubble directly to the FormPanel.
getBubbleTarget : function() {
if (!this.formPanel) {
this.formPanel = this.findParentByType('form');
}
return this.formPanel;
}
});
var myForm = new Ext.formPanel({
title: 'User Details',
items: [{
...
}],
listeners: {
change: function() {
// Title goes red if form has been modified.
myForm.header.setStyle('color', 'red');
}
}
});
Available since: Ext JS 3.4.0
Parameters
Expands the panel body so that it becomes visible. Fires the beforeexpand event which will cancel the expand action if it returns false.
Available since: 2.3.0
Parameters
- animate : Boolean
True to animate the transition, else false (defaults to the value of the animCollapse panel config)
Returns
- Ext.Panel
this
Find a container above this component at any level by a custom function. If the passed function returns true, the container will be returned.
Available since: 2.3.0
Parameters
- fn : Function
The custom function to call with the arguments (container, this component).
Returns
- Ext.Container
The first Container for which the custom function returns true
Find a container above this component at any level by xtype or class
Available since: 2.3.0
Parameters
- xtype : String/Ext.Component/Class
The xtype to check for this Component. Note that the the component can either be an instance or a component class:
- shallow : Boolean (optional)
False to check whether this Component is descended from the xtype (this is the default), or true to check whether this Component is directly of the specified xtype.
Returns
- Ext.Container
The first Container which matches the given xtype or class
Fires the specified event with the passed parameters (minus the event name).
An event may be set to bubble up an Observable parent hierarchy (See Ext.Component.getBubbleTarget) by calling enableBubble.
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to fire.
- args : Object...
Variable number of parameters are passed to handlers.
Returns
- Boolean
returns false if any of the handlers return false otherwise it returns true.
Try to focus this component.
Available since: 1.1.0
Parameters
- selectText : Boolean (optional)
If applicable, true to also select the text in this component
- delay : Boolean/Number (optional)
Delay the focus this number of milliseconds (true for 10 milliseconds)
Returns
- Ext.Component
this
Get a component contained by this container (alias for items.get(key))
This method has been deprecated
Should be removed in 4.0, since getComponent does the same thing.
Available since: Ext JS 3.4.0
Parameters
Returns
Returns the toolbar from the bottom (bbar) section of the panel.
Available since: 2.3.0
Returns
- Ext.Toolbar
The toolbar
Gets the current box measurements of the component's underlying element.
Available since: 1.1.0
Parameters
- local : Boolean (optional)
If true the element's left and top are returned instead of page XY (defaults to false)
Returns
- Object
box An object in the format {x, y, width, height}
Provides the link for Observable's fireEvent method to bubble up the ownership hierarchy.
Available since: Ext JS 3.4.0
Returns
- Ext.Container
the Container which owns this Component.
private - used as the key lookup function for the items collection
Available since: 2.3.0
Parameters
- comp : Object
Called to get grid's drag proxy text, by default returns this.ddText.
Available since: 2.3.0
Returns
- String
The text
Returns the Ext.Element which encapsulates this Component.
This will usually be a <DIV> element created by the class's onRender method, but that may be overridden using the autoEl config.
Note: this element will not be available until this Component has been rendered.
To add listeners for DOM events to this Component (as opposed to listeners for this Component's own Observable events), see the listeners config for a suggestion, or use a render listener directly:
new Ext.Panel({
title: 'The Clickable Panel',
listeners: {
render: function(p) {
// Append the Panel to the click handler's argument list.
p.getEl().on('click', handlePanelClick.createDelegate(null, [p], true));
},
single: true // Remove the listener after first invocation
}
});
Available since: 1.1.0
Returns
- Ext.Element
The Element which encapsulates this Component.
Returns the height in pixels of the framing elements of this panel (including any top and bottom bars and header and footer elements, but not including the body height). To retrieve the body height see getInnerHeight.
Available since: 2.3.0
Returns
- Number
The frame height
Returns the width in pixels of the framing elements of this panel (not including the body width). To retrieve the body width see getInnerWidth.
Available since: 2.3.0
Returns
- Number
The frame width
Returns the grid's underlying element.
Available since: 2.3.0
Returns
- Element
The element
Gets the current height of the component's underlying element.
Available since: Ext JS 3.4.0
Returns
Returns the id of this component or automatically generates and
returns an id if an id is not defined yet:
'ext-comp-' + (++Ext.Component.AUTO_ID)
Available since: 1.1.0
Returns
- String
id
Returns the height in pixels of the body element (not including the height of any framing elements). For the frame height see getFrameHeight.
Available since: 2.3.0
Returns
- Number
The body height
Returns the width in pixels of the body element (not including the width of any framing elements). For the frame width see getFrameWidth.
Available since: 2.3.0
Returns
- Number
The body width
private
Returns the Element to be used to contain the child Components of this Container.
An implementation is provided which returns the Container's Element, but if there is a more complex structure to a Container, this may be overridden to return the element into which the layout renders child Components.
Available since: 2.3.0
Returns
- Ext.Element
The Element to render child Components into.
Overrides: Ext.Container.getLayoutTarget
Gets the current size of the component's underlying element, including space taken by its margins.
Available since: Ext JS 3.4.0
Returns
- Object
An object containing the element's size {width: (element width + left/right margins), height: (element height + top/bottom margins)}
Gets the current XY position of the component's underlying element.
Available since: 1.1.0
Parameters
- local : Boolean (optional)
If true the element's left and top are returned instead of page XY (defaults to false)
Returns
- Array
The XY position of the element (e.g., [100, 200])
Returns the outermost Element of this Component which defines the Components overall size.
Usually this will return the same Element as getEl,
but in some cases, a Component may have some more wrapping Elements around its main
active Element.
An example is a ComboBox. It is encased in a wrapping Element which
contains both the <input> Element (which is what would be returned
by its getEl method, and the trigger button Element.
This Element is returned as the resizeEl.
Available since: 2.3.0
Returns
- Ext.Element
The Element which is to be resized by size managing layouts.
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.
Available since: 2.3.0
Returns
- SelectionModel
Gets the current size of the component's underlying element.
Available since: 1.1.0
Returns
- Object
An object containing the element's size {width: (element width), height: (element height)}
Returns the toolbar from the top (tbar) section of the panel.
Available since: 2.3.0
Returns
- Ext.Toolbar
The toolbar
Gets the current width of the component's underlying element.
Available since: Ext JS 3.4.0
Returns
Gets the xtype for this component as registered with Ext.ComponentMgr. For a list of all available xtypes, see the Ext.Component header. Example usage:
var t = new Ext.form.TextField();
alert(t.getXType()); // alerts 'textfield'
Available since: 2.3.0
Returns
- String
The xtype
Returns this Component's xtype hierarchy as a slash-delimited string. For a list of all available xtypes, see the Ext.Component header.
If using your own subclasses, be aware that a Component must register its own xtype to participate in determination of inherited xtypes.
Example usage:
var t = new Ext.form.TextField();
alert(t.getXTypes()); // alerts 'component/box/field/textfield'
Available since: 2.3.0
Returns
- String
The xtype hierarchy string
Checks to see if this object has any listeners for a specified event
Available since: 1.1.0
Parameters
- eventName : String
The name of the event to check for
Returns
- Boolean
True if the event is being listened for, else false
Hide this component. Listen to the 'beforehide' event and return
false to cancel hiding the component. Fires the 'hide'
event after hiding the component. Note this method is called internally if
the component is configured to be hidden.
Available since: 1.1.0
Returns
- Ext.Component
this
Method to establish a reference to a component.
Available since: Ext JS 3.4.0
Returns true if this component is visible.
Available since: 1.1.0
Returns
- Boolean
True if this component is visible, false otherwise.
Tests whether or not this Component is of a specific xtype. This can test whether this Component is descended from the xtype (default) or whether it is directly of the xtype specified (shallow = true).
If using your own subclasses, be aware that a Component must register its own xtype to participate in determination of inherited xtypes.
For a list of all available xtypes, see the Ext.Component header.
Example usage:
var t = new Ext.form.TextField();
var isText = t.isXType('textfield'); // true
var isBoxSubclass = t.isXType('box'); // true, descended from BoxComponent
var isBoxInstance = t.isXType('box', true); // false, not a direct BoxComponent instance
Available since: 2.3.0
Parameters
- xtype : String/Ext.Component/Class
The xtype to check for this Component. Note that the the component can either be an instance or a component class:
var c = new Ext.Component(); console.log(c.isXType(c)); console.log(c.isXType(Ext.Component)); - shallow : Boolean (optional)
False to check whether this Component is descended from the xtype (this is the default), or true to check whether this Component is directly of the specified xtype.
Returns
- Boolean
True if this component descends from the specified xtype, false otherwise.
Adds listeners to any Observable object (or Elements) which are automatically removed when this Component is destroyed. Usage:
myGridPanel.mon(myGridPanel.getSelectionModel(), 'selectionchange', handleSelectionChange, null, {buffer: 50});
or:
myGridPanel.mon(myGridPanel.getSelectionModel(), {
selectionchange: handleSelectionChange,
buffer: 50
});
Available since: Ext JS 3.4.0
Parameters
- item : Observable|Element
The item to which to add a listener/listeners.
- ename : Object|String
The event name, or an object containing event name properties.
- fn : Function
Optional. If the
enameparameter was an event name, this is the handler function. - scope : Object
Optional. If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed. - opt : Object
Optional. If the
enameparameter was an event name, this is the addListener options.
Removes listeners that were added by the mon method.
Available since: Ext JS 3.4.0
Parameters
- item : Observable|Element
The item from which to remove a listener/listeners.
- ename : Object|String
The event name, or an object containing event name properties.
- fn : Function
Optional. If the
enameparameter was an event name, this is the handler function. - scope : Object
Optional. If the
enameparameter was an event name, this is the scope (thisreference) in which the handler function is executed.
Returns the next component in the owning container
Available since: Ext JS 3.4.0
Returns
- Object
Appends an event handler to this object (shorthand for addListener.)
Available since: 1.1.0
Parameters
- eventName : String
The type of event to listen for
- handler : Function
The method the event invokes
- scope : Object (optional)
The scope (
thisreference) in which the handler function is executed. If omitted, defaults to the object which fired the event. - options : Object (optional)
An object containing handler configuration.
private
Method to manage awareness of when components are added to their respective Container, firing an added event. References are established at add time rather than at render time.
Available since: Ext JS 3.4.0
Parameters
- container : Ext.Container
Container which holds the component
- pos : number
Position at which the component was added
Overrides: Ext.Component.onAdded
private
Available since: Ext JS 3.4.0
Parameters
- w : Object
- h : Object
private
Available since: 2.3.0
Parameters
- doAnim : Object
- animArg : Object
private
Available since: 2.3.0
Parameters
- e : Object
- t : Object
private
Available since: 2.3.0
Parameters
- doAnim : Object
- animArg : Object
Available since: Ext JS 3.4.0
Parameters
- shallow : Object
- force : Object
Overrides: Ext.Container.onLayout
Method to manage awareness of when components are removed from their respective Container, firing an removed event. References are properly cleaned up after removing a component from its owning container.
Available since: Ext JS 3.4.0
private
Available since: 2.3.0
Parameters
- ct : Object
- position : Object
Overrides: Ext.Panel.onRender
private
Available since: 2.3.0
Parameters
- adjWidth : Object
- adjHeight : Object
- rawWidth : Object
- rawHeight : Object
Overrides: Ext.BoxComponent.onResize
Returns the previous component in the owning container
Available since: Ext JS 3.4.0
Returns
- Object
private
Available since: 2.3.0
Parameters
- name : Object
- e : Object
Removes all listeners for this object
Available since: 1.1.0
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.
Available since: 2.3.0
Parameters
- store : Ext.data.Store
The new Ext.data.Store object
- colModel : Ext.grid.ColumnModel
The new Ext.grid.ColumnModel object
Relays selected events from the specified Observable as if the events were fired by this.
Available since: 2.3.0
Parameters
- o : Object
The Observable whose events this object is to relay.
- events : Array
Array of event names to relay.
Removes all components from this container.
Available since: 2.3.0
Parameters
- autoDestroy : Boolean (optional)
True to automatically invoke the removed Component's Ext.Component.destroy function. Defaults to the value of this Container's autoDestroy config.
Returns
- Array
Array of the destroyed components
Removes a CSS class from the component's underlying element.
Available since: 2.3.0
Parameters
- cls : string
The CSS class name to remove
Returns
- Ext.Component
this
Removes an event handler.
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- handler : Function
The handler to remove. This must be a reference to the function passed into the addListener call.
- scope : Object (optional)
The scope originally specified for the handler.
Render this Component into the passed HTML element.
If you are using a Container object to house this Component, then do not use the render method.
A Container's child Components are rendered by that Container's layout manager when the Container is first rendered.
Certain layout managers allow dynamic addition of child components. Those that do include Ext.layout.CardLayout, Ext.layout.AnchorLayout, Ext.layout.FormLayout, Ext.layout.TableLayout.
If the Container is already rendered when a new child Component is added, you may need to call the Container's doLayout to refresh the view which causes any unrendered child Components to be rendered. This is required so that you can add multiple child components if needed while only refreshing the layout once.
When creating complex UIs, it is important to remember that sizing and positioning of child items is the responsibility of the Container's layout manager. If you expect child items to be sized in response to user interactions, you must configure the Container with a layout manager which creates and manages the type of layout you have in mind.
Omitting the Container's layout config means that a basic layout manager is used which does nothing but render child components sequentially into the Container. No sizing or positioning will be performed in this situation.
Available since: 1.1.0
Parameters
- container : Element/HTMLElement/String (optional)
The element this Component should be rendered into. If it is being created from existing markup, this should be omitted.
- position : String/Number (optional)
The element ID or DOM node index within the container before which this component will be inserted (defaults to appending to the end of the container)
Returns
- Ext.Component
this
Resume firing events. (see suspendEvents) If events were suspended using the queueSuspended parameter, then all events fired during event suspension will be sent to any listeners now.
Available since: 2.3.0
Sets the overflow on the content element of the component.
Available since: Ext JS 3.4.0
Parameters
- scroll : Boolean
True to allow the Component to auto scroll.
Returns
- Ext.BoxComponent
this
Sets the height of the component. This method fires the resize event.
Available since: 2.3.0
Parameters
- height : Mixed
The new height to set. This may be one of:
- A Number specifying the new height in the Element's defaultUnits (by default, pixels).
- A String used to set the CSS height style.
- undefined to leave the height unchanged.
Returns
- Ext.BoxComponent
this
Sets the CSS class that provides the icon image for this panel. This method will replace any existing icon class if one has already been set and fire the iconchange event after completion.
Available since: 2.3.0
Parameters
- cls : String
The new CSS class name
Sets the page XY position of the component. To set the left and top instead, use setPosition. This method fires the move event.
Available since: 1.1.0
Parameters
Returns
- Ext.BoxComponent
this
Sets the left and top of the component. To set the page XY position instead, use setPagePosition. This method fires the move event.
Available since: 1.1.0
Parameters
Returns
- Ext.BoxComponent
this
Sets the width and height of this BoxComponent. This method fires the resize event. This method can accept
either width and height as separate arguments, or you can pass a size object like {width:10, height:20}.
Available since: 1.1.0
Parameters
- width : Mixed
The new width to set. This may be one of:
- A Number specifying the new width in the Element's Ext.Element.defaultUnits (by default, pixels).
- A String used to set the CSS width style.
- A size object in the format
{width: widthValue, height: heightValue}. undefinedto leave the width unchanged.
- height : Mixed
The new height to set (not required if a size object is passed as the first arg). This may be one of:
- A Number specifying the new height in the Element's Ext.Element.defaultUnits (by default, pixels).
- A String used to set the CSS height style. Animation may not be used.
undefinedto leave the height unchanged.
Returns
- Ext.BoxComponent
this
Sets the title text for the panel and optionally the icon class.
In order to be able to set the title, a header element must have been created
for the Panel. This is triggered either by configuring the Panel with a non-blank title,
or configuring it with header: true.
Available since: 2.3.0
Parameters
- title : String
The title text to set
- iconCls : String (optional)
iconCls A user-defined CSS class that provides the icon image for this panel
Returns
- Ext.Panel
this
Convenience function to hide or show this component by boolean.
Available since: 1.1.0
Parameters
- visible : Boolean
True to show, false to hide
Returns
- Ext.Component
this
Sets the width of the component. This method fires the resize event.
Available since: 2.3.0
Parameters
- width : Mixed
The new width to set. This may be one of:
- A Number specifying the new width in the Element's defaultUnits (by default, pixels).
- A String used to set the CSS width style.
Returns
- Ext.BoxComponent
this
Show this component. Listen to the 'beforeshow' event and return false to cancel showing the component. Fires the 'show' event after showing the component.
Available since: 1.1.0
Returns
- Ext.Component
this
private for compatibility, overridden by editor grid
Available since: 2.3.0
Suspend the firing of all events. (see resumeEvents)
Available since: 2.3.0
Parameters
- queueSuspended : Boolean
Pass as true to queue up suspended events to be fired after the resumeEvents call instead of discarding all suspended events;
Force the component's size to recalculate based on the underlying element's current height and width.
Available since: 1.1.0
Returns
- Ext.BoxComponent
this
Shortcut for performing an expand or collapse based on the current state of the panel.
Available since: 2.3.0
Parameters
- animate : Boolean
True to animate the transition, else false (defaults to the value of the animCollapse panel config)
Returns
- Ext.Panel
this
Removes an event handler (shorthand for removeListener.)
Available since: 1.1.0
Parameters
- eventName : String
The type of event the handler was associated with.
- handler : Function
The handler to remove. This must be a reference to the function passed into the addListener call.
- scope : Object (optional)
The scope originally specified for the handler.
Update the content area of a component.
Available since: Ext JS 3.4.0
Parameters
- htmlOrData : Mixed
If this component has been configured with a template via the tpl config then it will use this argument as data to populate the template. If this component was not configured with a template, the components content area will be updated via Ext.Element update
- loadScripts : Boolean
(optional) Only legitimate when using the html configuration. Defaults to false
- callback : Function
(optional) Only legitimate when using the html configuration. Callback to execute when scripts have finished loading
Sets the current box measurements of the component's underlying element.
Available since: 1.1.0
Parameters
- box : Object
An object in the format {x, y, width, height}
Returns
- Ext.BoxComponent
this
private
Available since: 2.3.0
Parameters
- row : Object
- col : Object
- step : Object
- fn : Object
- scope : Object
Events
Fires after the Panel has been visually activated. Note that Panels do not directly support being activated, but some Panel subclasses do (like Ext.Window). Panels which are child Components of a TabPanel fire the activate and deactivate events under the control of the TabPanel.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel that has been activated.
Fires when a component is added to an Ext.Container
Available since: Ext JS 3.4.0
Parameters
- this : Ext.Component
- ownerCt : Ext.Container
Container which holds the component
- index : number
Position at which the component was added
Fires after the component rendering is finished.
The afterrender event is fired after this Component has been rendered, been postprocesed by any afterRender method defined for the Component, and, if stateful, after state has been restored.
Available since: Ext JS 3.4.0
Parameters
- this : Ext.Component
Fires before the Panel is closed. Note that Panels do not directly support being closed, but some Panel subclasses do (like Ext.Window) or a Panel within a Ext.TabPanel. This event only applies to such subclasses. A handler can return false to cancel the close.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel being closed.
Fires before the Panel is collapsed. A handler can return false to cancel the collapse.
Available since: 2.3.0
Parameters
- p : Ext.Panel
the Panel being collapsed.
- animate : Boolean
True if the collapse is animated, else false.
Fires before the component is destroyed. Return false from an event handler to stop the destroy.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires before the Panel is expanded. A handler can return false to cancel the expand.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel being expanded.
- animate : Boolean
True if the expand is animated, else false.
Fires before the component is hidden by calling the hide method. Return false from an event handler to stop the hide.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires before the component is rendered. Return false from an event handler to stop the render.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires before the component is shown by calling the show method. Return false from an event handler to stop the show.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires before the state of the component is restored. Return false from an event handler to stop the restore.
Available since: 2.3.0
Parameters
- this : Ext.Component
- state : Object
The hash of state values returned from the StateProvider. If this event is not vetoed, then the state object is passed to applyState. By default, that simply copies property values into this Component. The method maybe overriden to provide custom state restoration.
Fires before the state of the component is saved to the configured state provider. Return false to stop the save.
Available since: 2.3.0
Parameters
- this : Ext.Component
- state : Object
The hash of state values. This is determined by calling getState() on the Component. This method must be provided by the developer to return whetever representation of state is required, by default, Ext.Component has a null implementation.
Fires when a cell is clicked. The data for the cell is drawn from the Record for this row. To access the data in the listener function use the following technique:
function(grid, rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex); // Get the Record
var fieldName = grid.getColumnModel().getDataIndex(columnIndex); // Get field name
var data = record.get(fieldName);
}
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- columnIndex : Number
- e : Ext.EventObject
Fires when a cell is double clicked
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- columnIndex : Number
- e : Ext.EventObject
Fires before a cell is clicked
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- columnIndex : Number
- e : Ext.EventObject
Fires after the Panel is closed. Note that Panels do not directly support being closed, but some Panel subclasses do (like Ext.Window) or a Panel within a Ext.TabPanel.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel that has been closed.
Fires after the Panel has been collapsed.
Available since: 2.3.0
Parameters
- p : Ext.Panel
the Panel that has been collapsed.
Fires when the container is clicked. The container consists of any part of the grid body that is not covered by a row.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- e : Ext.EventObject
Fires when the container is double clicked. The container consists of any part of the grid body that is not covered by a row.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- e : Ext.EventObject
Fires before the container is clicked. The container consists of any part of the grid body that is not covered by a row.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- e : Ext.EventObject
Fires after the Panel has been visually deactivated. Note that Panels do not directly support being deactivated, but some Panel subclasses do (like Ext.Window). Panels which are child Components of a TabPanel fire the activate and deactivate events under the control of the TabPanel.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel that has been deactivated.
Fires after the Panel has been expanded.
Available since: 2.3.0
Parameters
- p : Ext.Panel
The Panel that has been expanded.
Fires when the grid's grouping changes (only applies for grids with a GroupingView)
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- groupField : String
A string with the grouping field, null if the store is not grouped.
Fires when group header is clicked. Only applies for grids with a GroupingView.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- groupField : String
- groupValue : String
- e : Ext.EventObject
Fires when group header is double clicked. Only applies for grids with a GroupingView.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- groupField : String
- groupValue : String
- e : Ext.EventObject
Fires before a group header is clicked. Only applies for grids with a GroupingView.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- groupField : String
- groupValue : String
- e : Ext.EventObject
Fires when a header is clicked
Available since: 2.3.0
Parameters
- this : Grid
- columnIndex : Number
- e : Ext.EventObject
Fires when a header cell is double clicked
Available since: 2.3.0
Parameters
- this : Grid
- columnIndex : Number
- e : Ext.EventObject
Fires before a header is clicked
Available since: 2.3.0
Parameters
- this : Grid
- columnIndex : Number
- e : Ext.EventObject
Fires after the component is hidden. Fires after the component is hidden when calling the hide method.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires after the component is moved.
Available since: 1.1.0
Parameters
- this : Ext.Component
- x : Number
The new x position
- y : Number
The new y position
Fires when the grid is reconfigured with a new store and/or column model.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- store : Ext.data.Store
The new store
- colModel : Ext.grid.ColumnModel
The new column model
Fires when a component is removed from an Ext.Container
Available since: Ext JS 3.4.0
Parameters
- this : Ext.Component
- ownerCt : Ext.Container
Container which holds the component
Fires after the component is resized.
Available since: 1.1.0
Parameters
- this : Ext.Component
- adjWidth : Number
The box-adjusted width that was set
- adjHeight : Number
The box-adjusted height that was set
- rawWidth : Number
The width that was originally specified
- rawHeight : Number
The height that was originally specified
Fires when the row body is clicked. Only applies for grids with enableRowBody configured.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires when the row body is double clicked. Only applies for grids with enableRowBody configured.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires before the row body is clicked. Only applies for grids with enableRowBody configured.
Available since: Ext JS 3.4.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires when a row is clicked
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires when a row is double clicked
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires before a row is clicked
Available since: 2.3.0
Parameters
- this : Grid
- rowIndex : Number
- e : Ext.EventObject
Fires after the component is shown when calling the show method.
Available since: 1.1.0
Parameters
- this : Ext.Component
Fires when the grid's store sort changes
Available since: 2.3.0
Parameters
- this : Grid
- sortInfo : Object
An object with the keys field and direction
Fires after the state of the component is restored.
Available since: 2.3.0
Parameters
- this : Ext.Component
- state : Object
The hash of state values returned from the StateProvider. This is passed to applyState. By default, that simply copies property values into this Component. The method maybe overriden to provide custom state restoration.
Fires after the state of the component is saved to the configured state provider.
Available since: 2.3.0
Parameters
- this : Ext.Component
- state : Object
The hash of state values. This is determined by calling getState() on the Component. This method must be provided by the developer to return whetever representation of state is required, by default, Ext.Component has a null implementation.
Fires when the grid view is available (use this for selecting a default row).
Available since: Ext JS 3.4.0
Parameters
- this : Grid