Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / docs / output / Ext.grid.GroupingView.html
1 <div class="body-wrap" xmlns:ext="http://www.extjs.com"><div class="top-tools"><a class="inner-link" href="#Ext.grid.GroupingView-props"><img src="resources/images/default/s.gif" class="item-icon icon-prop">Properties</a>&#13;<a class="inner-link" href="#Ext.grid.GroupingView-methods"><img src="resources/images/default/s.gif" class="item-icon icon-method">Methods</a>&#13;<a class="inner-link" href="#Ext.grid.GroupingView-events"><img src="resources/images/default/s.gif" class="item-icon icon-event">Events</a>&#13;<a class="inner-link" href="#Ext.grid.GroupingView-configs"><img src="resources/images/default/s.gif" class="item-icon icon-config">Config Options</a>&#13;<a class="bookmark" href="../docs/?class=Ext.grid.GroupingView"><img src="resources/images/default/s.gif" class="item-icon icon-fav">Direct Link</a>&#13;</div><div class="inheritance res-block"><pre class="res-block-inner"><a href="output/Ext.util.Observable.html" ext:member="" ext:cls="Ext.util.Observable">Observable</a>&#13;&nbsp;&nbsp;<img src="resources/elbow-end.gif"><a href="output/Ext.grid.GridView.html" ext:member="" ext:cls="Ext.grid.GridView">GridView</a>&#13;&nbsp;&nbsp;&nbsp;&nbsp;<img src="resources/elbow-end.gif">GroupingView</pre></div><h1>Class <a href="source/GroupingView.html#cls-Ext.grid.GroupingView">Ext.grid.GroupingView</a></h1><table cellspacing="0"><tr><td class="label">Package:</td><td class="hd-info">Ext.grid</td></tr><tr><td class="label">Defined In:</td><td class="hd-info">GroupingView.js</td></tr><tr><td class="label">Class:</td><td class="hd-info"><a href="source/GroupingView.html#cls-Ext.grid.GroupingView">GroupingView</a></td></tr><tr><td class="label">Extends:</td><td class="hd-info"><a href="output/Ext.grid.GridView.html" ext:cls="Ext.grid.GridView" ext:member="">GridView</a></td></tr><tr><td class="hd-info"></td></tr></table><div class="description">Adds the ability for single level grouping to the grid. A <a href="output/Ext.data.GroupingStore.html" ext:cls="Ext.data.GroupingStore">GroupingStore</a>\r
2 must be used to enable grouping.  Some grouping characteristics may also be configured at the\r
3 <a href="output/Ext.grid.Column.html" ext:cls="Ext.grid.Column">Column level</a><div class="mdetail-params"><ul>\r
4 <li><code><a href="output/Ext.grid.Column.html#Ext.grid.Column-emptyGroupText" ext:member="emptyGroupText" ext:cls="Ext.grid.Column">emptyGroupText</a></li>\r
5 <li><code><a href="output/Ext.grid.Column.html#Ext.grid.Column-groupable" ext:member="groupable" ext:cls="Ext.grid.Column">groupable</a></li>\r
6 <li><code><a href="output/Ext.grid.Column.html#Ext.grid.Column-groupName" ext:member="groupName" ext:cls="Ext.grid.Column">groupName</a></li>\r
7 <li><code><a href="output/Ext.grid.Column.html#Ext.grid.Column-groupRender" ext:member="groupRender" ext:cls="Ext.grid.Column">groupRender</a></li>\r
8 </ul></div>\r
9 <p>Sample usage:</p>\r
10 <pre><code>\r
11 <b>var</b> grid = <b>new</b> Ext.grid.GridPanel({\r
12     <i>// A groupingStore is required <b>for</b> a GroupingView\r</i>
13     store: <b>new</b> <a href="output/Ext.data.GroupingStore.html" ext:cls="Ext.data.GroupingStore">Ext.data.GroupingStore</a>({\r
14         autoDestroy: true,\r
15         reader: reader,\r
16         data: xg.dummyData,\r
17         sortInfo: {field: <em>'company'</em>, direction: <em>'ASC'</em>},\r
18         <a href="output/Ext.data.GroupingStore.html#Ext.data.GroupingStore-groupOnSort" ext:member="groupOnSort" ext:cls="Ext.data.GroupingStore">groupOnSort</a>: true,\r
19         <a href="output/Ext.data.GroupingStore.html#Ext.data.GroupingStore-remoteGroup" ext:member="remoteGroup" ext:cls="Ext.data.GroupingStore">remoteGroup</a>: true,\r
20         <a href="output/Ext.data.GroupingStore.html#Ext.data.GroupingStore-groupField" ext:member="groupField" ext:cls="Ext.data.GroupingStore">groupField</a>: <em>'industry'</em>\r
21     }),\r
22     colModel: <b>new</b> <a href="output/Ext.grid.ColumnModel.html" ext:cls="Ext.grid.ColumnModel">Ext.grid.ColumnModel</a>({\r
23         columns:[\r
24             {id:<em>'company'</em>,header: <em>'Company'</em>, width: 60, dataIndex: <em>'company'</em>},\r
25             <i>// <a href="output/Ext.grid.Column.html#Ext.grid.Column-groupable" ext:member="groupable" ext:cls="Ext.grid.Column">groupable</a>, <a href="output/Ext.grid.Column.html#Ext.grid.Column-groupName" ext:member="groupName" ext:cls="Ext.grid.Column">groupName</a>, <a href="output/Ext.grid.Column.html#Ext.grid.Column-groupRender" ext:member="groupRender" ext:cls="Ext.grid.Column">groupRender</a> are also configurable at column level\r</i>
26             {header: <em>'Price'</em>, renderer: Ext.util.Format.usMoney, dataIndex: <em>'price'</em>, <a href="output/Ext.grid.Column.html#Ext.grid.Column-groupable" ext:member="groupable" ext:cls="Ext.grid.Column">groupable</a>: false},\r
27             {header: <em>'Change'</em>, dataIndex: <em>'change'</em>, renderer: Ext.util.Format.usMoney},\r
28             {header: <em>'Industry'</em>, dataIndex: <em>'industry'</em>},\r
29             {header: <em>'Last Updated'</em>, renderer: Ext.util.Format.dateRenderer(<em>'m/d/Y'</em>), dataIndex: <em>'lastChange'</em>}\r
30         ],\r
31         defaults: {\r
32             sortable: true,\r
33             menuDisabled: false,\r
34             width: 20\r
35         }\r
36     }),\r
37 \r
38     view: <b>new</b> Ext.grid.GroupingView({\r
39         <a href="output/Ext.grid.GridView.html#Ext.grid.GridView-forceFit" ext:member="forceFit" ext:cls="Ext.grid.GridView">forceFit</a>: true,\r
40         <i>// custom grouping text template to display the number of items per group\r</i>
41         <a href="output/Ext.grid.GroupingView.html#Ext.grid.GroupingView-groupTextTpl" ext:member="groupTextTpl" ext:cls="Ext.grid.GroupingView">groupTextTpl</a>: <em>'{text} ({[values.rs.length]} {[values.rs.length > 1 ? <em>"Items"</em> : <em>"Item"</em>]})'</em>\r
42     }),\r
43 \r
44     frame:true,\r
45     width: 700,\r
46     height: 450,\r
47     collapsible: true,\r
48     animCollapse: false,\r
49     title: <em>'Grouping Example'</em>,\r
50     iconCls: <em>'icon-grid'</em>,\r
51     renderTo: document.body\r
52 });</code></pre></div><div class="hr"></div><a id="Ext.grid.GroupingView-configs"></a><h2>Config Options</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Config Options</th><th class="msource-header">Defined By</th></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-autoFill"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-autoFill">autoFill</a></b> : Boolean<div class="mdesc"><div class="short">Defaults to false.  Specify true to have the column widths re-proportioned\r
53 when the grid is initially rendered.  The ...</div><div class="long">Defaults to <tt>false</tt>.  Specify <tt>true</tt> to have the column widths re-proportioned
54 when the grid is <b>initially rendered</b>.  The 
55 <a href="output/Ext.grid.Column.html#Ext.grid.Column-width" ext:member="width" ext:cls="Ext.grid.Column">initially configured width</a></tt> of each column will be adjusted
56 to fit the grid width and prevent horizontal scrolling. If columns are later resized (manually
57 or programmatically), the other columns in the grid will <b>not</b> be resized to fit the grid width.
58 See <tt><a href="output/Ext.grid.GridView.html#Ext.grid.GridView-forceFit" ext:member="forceFit" ext:cls="Ext.grid.GridView">forceFit</a></tt> also.</div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#autoFill" ext:member="#autoFill" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-cellSelector"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-cellSelector">cellSelector</a></b> : String<div class="mdesc">The selector used to find cells internally (defaults to <tt>'td.x-grid3-cell'</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#cellSelector" ext:member="#cellSelector" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-cellSelectorDepth"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-cellSelectorDepth">cellSelectorDepth</a></b> : Number<div class="mdesc">The number of levels to search for cells in event delegation (defaults to <tt>4</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#cellSelectorDepth" ext:member="#cellSelectorDepth" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-columnsText"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-columnsText">columnsText</a></b> : String<div class="mdesc">The text displayed in the 'Columns' menu item (defaults to <tt>'Columns'</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#columnsText" ext:member="#columnsText" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-deferEmptyText"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-deferEmptyText">deferEmptyText</a></b> : Boolean<div class="mdesc">True to defer <tt><a href="output/Ext.grid.GridView.html#Ext.grid.GridView-emptyText" ext:member="emptyText" ext:cls="Ext.grid.GridView">emptyText</a></tt> being applied until the store's
59 first load (defaults to <tt>true</tt>).</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#deferEmptyText" ext:member="#deferEmptyText" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-emptyGroupText"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-emptyGroupText">emptyGroupText</a></b> : String<div class="mdesc"><div class="short">The text to display when there is an empty group value (defaults to '(None)').&#13;\r
60 May also be specified per column, see...</div><div class="long">The text to display when there is an empty group value (defaults to <tt>'(None)'</tt>).\r
61 May also be specified per column, see <a href="output/Ext.grid.Column.html" ext:cls="Ext.grid.Column">Ext.grid.Column</a>.<a href="output/Ext.grid.Column.html#Ext.grid.Column-emptyGroupText" ext:member="emptyGroupText" ext:cls="Ext.grid.Column">emptyGroupText</a>.</div></div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-emptyText"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-emptyText">emptyText</a></b> : String<div class="mdesc"><div class="short">Default text (html tags are accepted) to display in the grid body when no rows\r
62 are available (defaults to ''). This v...</div><div class="long">Default text (html tags are accepted) to display in the grid body when no rows
63 are available (defaults to ''). This value will be used to update the <tt><a href="output/Ext.grid.GridView.html#Ext.grid.GridView-mainBody" ext:member="mainBody" ext:cls="Ext.grid.GridView">mainBody</a></tt>:
64     <pre><code>this.mainBody.update(<em>'&lt;div class=<em>"x-grid-empty"</em>>'</em> + this.emptyText + <em>'&lt;/div>'</em>);</code></pre></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#emptyText" ext:member="#emptyText" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-enableGrouping"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-enableGrouping">enableGrouping</a></b> : Boolean<div class="mdesc"><tt>false</tt> to disable grouping functionality (defaults to <tt>true</tt>)</div></td><td class="msource">GroupingView</td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-enableGroupingMenu"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-enableGroupingMenu">enableGroupingMenu</a></b> : Boolean<div class="mdesc"><tt>true</tt> to enable the grouping control in the column menu (defaults to <tt>true</tt>)</div></td><td class="msource">GroupingView</td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-enableNoGroups"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-enableNoGroups">enableNoGroups</a></b> : Boolean<div class="mdesc"><tt>true</tt> to allow the user to turn off grouping (defaults to <tt>true</tt>)</div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-enableRowBody"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-enableRowBody">enableRowBody</a></b> : Boolean<div class="mdesc"><div class="short">True to add a second TR element per row that can be used to provide a row body\r
65 that spans beneath the data row.  Use ...</div><div class="long">True to add a second TR element per row that can be used to provide a row body
66 that spans beneath the data row.  Use the <a href="output/Ext.grid.GridView.html#Ext.grid.GridView-getRowClass" ext:member="getRowClass" ext:cls="Ext.grid.GridView">getRowClass</a> method's rowParams config to customize the row body.</div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#enableRowBody" ext:member="#enableRowBody" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-forceFit"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-forceFit">forceFit</a></b> : Boolean<div class="mdesc"><div class="short">Defaults to false.  Specify true to have the column widths re-proportioned\r
67 at all times.  The initially configured wi...</div><div class="long">Defaults to <tt>false</tt>.  Specify <tt>true</tt> to have the column widths re-proportioned
68 at <b>all times</b>.  The <a href="output/Ext.grid.Column.html#Ext.grid.Column-width" ext:member="width" ext:cls="Ext.grid.Column">initially configured width</a></tt> of each
69 column will be adjusted to fit the grid width and prevent horizontal scrolling. If columns are
70 later resized (manually or programmatically), the other columns in the grid <b>will</b> be resized
71 to fit the grid width. See <tt><a href="output/Ext.grid.GridView.html#Ext.grid.GridView-autoFill" ext:member="autoFill" ext:cls="Ext.grid.GridView">autoFill</a></tt> also.</div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#forceFit" ext:member="#forceFit" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-groupByText"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-groupByText">groupByText</a></b> : String<div class="mdesc">Text displayed in the grid header menu for grouping by a column\r
72 (defaults to 'Group By This Field').</div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-groupMode"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-groupMode">groupMode</a></b> : String<div class="mdesc"><div class="short">Indicates how to construct the group identifier. 'value' constructs the id using&#13;\r
73 raw value, 'display' constructs the...</div><div class="long">Indicates how to construct the group identifier. <tt>'value'</tt> constructs the id using\r
74 raw value, <tt>'display'</tt> constructs the id using the rendered value. Defaults to <tt>'value'</tt>.</div></div></td><td class="msource">GroupingView</td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-groupRenderer"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-groupRenderer">groupRenderer</a></b> : Function<div class="mdesc">This property must be configured in the <a href="output/Ext.grid.Column.html" ext:cls="Ext.grid.Column">Ext.grid.Column</a> for\r
75 each column.</div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-groupTextTpl"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-groupTextTpl">groupTextTpl</a></b> : String<div class="mdesc"><div class="short">The template used to render the group header (defaults to '{text}').&#13;\r
76 This is used to format an object which contains...</div><div class="long">The template used to render the group header (defaults to <tt>'{text}'</tt>).\r
77 This is used to format an object which contains the following properties:\r
78 <div class="mdetail-params"><ul>\r
79 <li><b>group</b> : String<p class="sub-desc">The <i>rendered</i> value of the group field.\r
80 By default this is the unchanged value of the group field. If a <tt><b><a href="output/Ext.grid.Column.html#Ext.grid.Column-groupRenderer" ext:member="groupRenderer" ext:cls="Ext.grid.Column">groupRenderer</a></b></tt>\r
81 is specified, it is the result of a call to that function.</p></li>\r
82 <li><b>gvalue</b> : Object<p class="sub-desc">The <i>raw</i> value of the group field.</p></li>\r
83 <li><b>text</b> : String<p class="sub-desc">The configured header (as described in <tt><a href="output/Ext.grid.GroupingView.html#Ext.grid.GroupingView-showGroupName" ext:member="showGroupName" ext:cls="Ext.grid.GroupingView">showGroupName</a>)</tt>\r
84 if <tt><a href="output/Ext.grid.GroupingView.html#Ext.grid.GroupingView-showGroupName" ext:member="showGroupName" ext:cls="Ext.grid.GroupingView">showGroupName</a></tt> is <tt>true</tt>) plus the <i>rendered</i> group field value.</p></li>\r
85 <li><b>groupId</b> : String<p class="sub-desc">A unique, generated ID which is applied to the\r
86 View Element which contains the group.</p></li>\r
87 <li><b>startRow</b> : Number<p class="sub-desc">The row index of the Record which caused group change.</p></li>\r
88 <li><b>rs</b> : Array<p class="sub-desc">Contains a single element: The Record providing the data\r
89 for the row which caused group change.</p></li>\r
90 <li><b>cls</b> : String<p class="sub-desc">The generated class name string to apply to the group header Element.</p></li>\r
91 <li><b>style</b> : String<p class="sub-desc">The inline style rules to apply to the group header Element.</p></li>\r
92 </ul></div></p>\r
93 See <a href="output/Ext.XTemplate.html" ext:cls="Ext.XTemplate">Ext.XTemplate</a> for information on how to format data using a template. Possible usage:<pre><code><b>var</b> grid = <b>new</b> Ext.grid.GridPanel({\r
94     ...\r
95     view: <b>new</b> Ext.grid.GroupingView({\r
96         groupTextTpl: <em>'{text} ({[values.rs.length]} {[values.rs.length > 1 ? <em>"Items"</em> : <em>"Item"</em>]})'</em>\r
97     }),\r
98 });</code></pre></div></div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-headersDisabled"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-headersDisabled">headersDisabled</a></b> : Boolean<div class="mdesc"><div class="short">True to disable the grid column headers (defaults to false). \r
99 Use the ColumnModel menuDisabled\r
100 config to disable the ...</div><div class="long">True to disable the grid column headers (defaults to <tt>false</tt>). 
101 Use the <a href="output/Ext.grid.ColumnModel.html" ext:cls="Ext.grid.ColumnModel">ColumnModel</a> <tt><a href="output/Ext.grid.ColumnModel.html#Ext.grid.ColumnModel-menuDisabled" ext:member="menuDisabled" ext:cls="Ext.grid.ColumnModel">menuDisabled</a></tt>
102 config to disable the <i>menu</i> for individual columns.  While this config is true the
103 following will be disabled:<div class="mdetail-params"><ul>
104 <li>clicking on header to sort</li>
105 <li>the trigger to reveal the menu.</li>
106 </ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#headersDisabled" ext:member="#headersDisabled" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-hideGroupedColumn"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-hideGroupedColumn">hideGroupedColumn</a></b> : Boolean<div class="mdesc"><tt>true</tt> to hide the column that is currently grouped (defaults to <tt>false</tt>)</div></td><td class="msource">GroupingView</td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-ignoreAdd"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-ignoreAdd">ignoreAdd</a></b> : Boolean<div class="mdesc"><tt>true</tt> to skip refreshing the view when new rows are added (defaults to <tt>false</tt>)</div></td><td class="msource">GroupingView</td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-listeners"></a><b><a href="source/Observable.html#cfg-Ext.util.Observable-listeners">listeners</a></b> : Object<div class="mdesc"><div class="short">A config object containing one or more event handlers to be added to this\r
107 object during initialization.  This should ...</div><div class="long"><p>A config object containing one or more event handlers to be added to this
108 object during initialization.  This should be a valid listeners config object as specified in the
109 <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> example for attaching multiple handlers at once.</p>
110 <br><p><b><u>DOM events from ExtJs <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a></u></b></p>
111 <br><p>While <i>some</i> ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
112 is usually only done when extra value can be added. For example the <a href="output/Ext.DataView.html" ext:cls="Ext.DataView">DataView</a>'s
113 <b><code><a href="output/Ext.DataView.html#Ext.DataView-click" ext:member="click" ext:cls="Ext.DataView">click</a></code></b> event passing the node clicked on. To access DOM
114 events directly from a Component's HTMLElement, listeners must be added to the <i><a href="output/Ext.Component.html#Ext.Component-getEl" ext:member="getEl" ext:cls="Ext.Component">Element</a></i> after the Component
115 has been rendered. A plugin can simplify this step:<pre><code><i>// Plugin is configured <b>with</b> a listeners config object.</i>
116 <i>// The Component is appended to the argument list of all handler functions.</i>
117 Ext.DomObserver = Ext.extend(Object, {
118     constructor: <b>function</b>(config) {
119         this.listeners = config.listeners ? config.listeners : config;
120     },
121
122     <i>// Component passes itself into plugin&#39;s init method</i>
123     init: <b>function</b>(c) {
124         <b>var</b> p, l = this.listeners;
125         <b>for</b> (p <b>in</b> l) {
126             <b>if</b> (Ext.isFunction(l[p])) {
127                 l[p] = this.createHandler(l[p], c);
128             } <b>else</b> {
129                 l[p].fn = this.createHandler(l[p].fn, c);
130             }
131         }
132
133         <i>// Add the listeners to the Element immediately following the render call</i>
134         c.render = c.render.<a href="output/Function.html#Function-createSequence" ext:member="createSequence" ext:cls="Function">createSequence</a>(<b>function</b>() {
135             <b>var</b> e = c.getEl();
136             <b>if</b> (e) {
137                 e.on(l);
138             }
139         });
140     },
141
142     createHandler: <b>function</b>(fn, c) {
143         <b>return</b> <b>function</b>(e) {
144             fn.call(this, e, c);
145         };
146     }
147 });
148
149 <b>var</b> combo = <b>new</b> Ext.form.ComboBox({
150
151     <i>// Collapse combo when its element is clicked on</i>
152     plugins: [ <b>new</b> Ext.DomObserver({
153         click: <b>function</b>(evt, comp) {
154             comp.collapse();
155         }
156     })],
157     store: myStore,
158     typeAhead: true,
159     mode: <em>'local'</em>,
160     triggerAction: <em>'all'</em>
161 });</code></pre></p></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#listeners" ext:member="#listeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-rowSelector"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-rowSelector">rowSelector</a></b> : String<div class="mdesc">The selector used to find rows internally (defaults to <tt>'div.x-grid3-row'</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#rowSelector" ext:member="#rowSelector" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-rowSelectorDepth"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-rowSelectorDepth">rowSelectorDepth</a></b> : Number<div class="mdesc">The number of levels to search for rows in event delegation (defaults to <tt>10</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#rowSelectorDepth" ext:member="#rowSelectorDepth" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-scrollOffset"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-scrollOffset">scrollOffset</a></b> : Number<div class="mdesc"><div class="short">The amount of space to reserve for the vertical scrollbar\r
162 (defaults to undefined). If an explicit value isn't specifi...</div><div class="long">The amount of space to reserve for the vertical scrollbar
163 (defaults to <tt>undefined</tt>). If an explicit value isn't specified, this will be automatically
164 calculated.</div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#scrollOffset" ext:member="#scrollOffset" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-selectedRowClass"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-selectedRowClass">selectedRowClass</a></b> : String<div class="mdesc"><div class="short">The CSS class applied to a selected row (defaults to 'x-grid3-row-selected'). An\r
165 example overriding the default styli...</div><div class="long">The CSS class applied to a selected row (defaults to <tt>'x-grid3-row-selected'</tt>). An
166 example overriding the default styling:
167     <pre><code>.x-grid3-row-selected {background-color: yellow;}</code></pre>
168 Note that this only controls the row, and will not do anything for the text inside it.  To style inner
169 facets (like text) use something like:
170     <pre><code>.x-grid3-row-selected .x-grid3-cell-inner {
171         color: #FFCC00;
172     }</code></pre></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#selectedRowClass" ext:member="#selectedRowClass" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-showGroupName"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-showGroupName">showGroupName</a></b> : Boolean<div class="mdesc"><div class="short">If true will display a prefix plus a ': ' before the group field value&#13;\r
173 in the group header line.  The prefix will co...</div><div class="long">If <tt>true</tt> will display a prefix plus a ': ' before the group field value\r
174 in the group header line.  The prefix will consist of the <tt><b><a href="output/Ext.grid.Column.html#Ext.grid.Column-groupName" ext:member="groupName" ext:cls="Ext.grid.Column">groupName</a></b></tt>\r
175 (or the configured <tt><b><a href="output/Ext.grid.Column.html#Ext.grid.Column-header" ext:member="header" ext:cls="Ext.grid.Column">header</a></b></tt> if not provided) configured in the\r
176 <a href="output/Ext.grid.Column.html" ext:cls="Ext.grid.Column">Ext.grid.Column</a> for each set of grouped rows (defaults to <tt>true</tt>).</div></div></td><td class="msource">GroupingView</td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-showGroupsText"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-showGroupsText">showGroupsText</a></b> : String<div class="mdesc">Text displayed in the grid header for enabling/disabling grouping\r
177 (defaults to 'Show in Groups').</div></td><td class="msource">GroupingView</td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-sortAscText"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-sortAscText">sortAscText</a></b> : String<div class="mdesc">The text displayed in the 'Sort Ascending' menu item (defaults to <tt>'Sort Ascending'</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#sortAscText" ext:member="#sortAscText" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-sortClasses"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-sortClasses">sortClasses</a></b> : Array<div class="mdesc">The CSS classes applied to a header when it is sorted. (defaults to <tt>['sort-asc', 'sort-desc']</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#sortClasses" ext:member="#sortClasses" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-sortDescText"></a><b><a href="source/GridView.html#cfg-Ext.grid.GridView-sortDescText">sortDescText</a></b> : String<div class="mdesc">The text displayed in the 'Sort Descending' menu item (defaults to <tt>'Sort Descending'</tt>)</div></td><td class="msource"><a href="output/Ext.grid.GridView.html#sortDescText" ext:member="#sortDescText" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-startCollapsed"></a><b><a href="source/GroupingView.html#cfg-Ext.grid.GroupingView-startCollapsed">startCollapsed</a></b> : Boolean<div class="mdesc"><tt>true</tt> to start all groups collapsed (defaults to <tt>false</tt>)</div></td><td class="msource">GroupingView</td></tr></tbody></table><a id="Ext.grid.GroupingView-props"></a><h2>Public Properties</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Property</th><th class="msource-header">Defined By</th></tr><tr class="property-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-dragZone"></a><b><a href="source/GridView.html#prop-Ext.grid.GridView-dragZone">dragZone</a></b> : Ext.grid.GridDragZone<div class="mdesc"><div class="short">A customized implementation of a DragZone which provides default implementations\r
178 of the template methods of DragZone ...</div><div class="long"><p>A customized implementation of a <a href="output/Ext.dd.DragZone.html" ext:cls="Ext.dd.DragZone">DragZone</a> which provides default implementations
179 of the template methods of DragZone to enable dragging of the selected rows of a GridPanel.
180 See <a href="output/Ext.grid.GridDragZone.html" ext:cls="Ext.grid.GridDragZone">Ext.grid.GridDragZone</a> for details.</p>
181 <p>This will <b>only</b> be present:<div class="mdetail-params"><ul>
182 <li><i>if</i> the owning GridPanel was configured with <a href="output/Ext.grid.GridPanel.html#Ext.grid.GridPanel-enableDragDrop" ext:member="enableDragDrop" ext:cls="Ext.grid.GridPanel">enableDragDrop</a>: <tt>true</tt>.</li>
183 <li><i>after</i> the owning GridPanel has been rendered.</li>
184 </ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#dragZone" ext:member="#dragZone" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="property-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-mainBody"></a><b><a href="source/GridView.html#prop-Ext.grid.GridView-mainBody">mainBody</a></b> : Ext.Element<div class="mdesc"><div class="short">Read-only. The GridView's body Element which encapsulates all rows in the Grid.\r
185 This Element is only available after ...</div><div class="long"><i>Read-only</i>. The GridView's body Element which encapsulates all rows in the Grid.
186 This <a href="output/Ext.Element.html" ext:cls="Ext.Element">Element</a> is only available after the GridPanel has been rendered.</div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#mainBody" ext:member="#mainBody" ext:cls="Ext.grid.GridView">GridView</a></td></tr></tbody></table><a id="Ext.grid.GroupingView-methods"></a><h2>Public Methods</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Method</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-GroupingView"></a><b><a href="source/GroupingView.html#cls-Ext.grid.GroupingView">GroupingView</a></b>(&nbsp;<code>Object&nbsp;config</code>&nbsp;)\r
187     <div class="mdesc"><div class="short"></div><div class="long"><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>config</code> : Object<div class="sub-desc"></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addEvents">addEvents</a></b>(&nbsp;<code>Object|String&nbsp;o</code>,&nbsp;<code>string&nbsp;Optional.</code>&nbsp;)\r
188     :\r
189                                         void<div class="mdesc"><div class="short">Adds the specified events to the list of events which this Observable may fire.</div><div class="long">Adds the specified events to the list of events which this Observable may fire.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object|String<div class="sub-desc">Either an object with event names as properties with a value of <code>true</code>
190 or the first event name string if multiple event names are being passed as separate parameters.</div></li><li><code>Optional.</code> : string<div class="sub-desc">Event name if multiple event names are being passed as separate parameters.
191 Usage:<pre><code>this.addEvents(<em>'storeloaded'</em>, <em>'storecleared'</em>);</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addEvents" ext:member="#addEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addListener">addListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)\r
192     :\r
193                                         void<div class="mdesc"><div class="short">Appends an event handler to this object.</div><div class="long">Appends an event handler to this object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to listen for.</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
194 <b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.
195 properties. This may contain any of the following properties:<ul>
196 <li><b>scope</b> : Object<div class="sub-desc">The scope (<code><b>this</b></code> reference) in which the handler function is executed.
197 <b>If omitted, defaults to the object which fired the event.</b></div></li>
198 <li><b>delay</b> : Number<div class="sub-desc">The number of milliseconds to delay the invocation of the handler after the event fires.</div></li>
199 <li><b>single</b> : Boolean<div class="sub-desc">True to add a handler to handle just the next firing of the event, and then remove itself.</div></li>
200 <li><b>buffer</b> : Number<div class="sub-desc">Causes the handler to be scheduled to run in an <a href="output/Ext.util.DelayedTask.html" ext:cls="Ext.util.DelayedTask">Ext.util.DelayedTask</a> delayed
201 by the specified number of milliseconds. If the event fires again within that time, the original
202 handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
203 <li><b>target</b> : Observable<div class="sub-desc">Only call the handler if the event was fired on the target Observable, <i>not</i>
204 if the event was bubbled up from a child Observable.</div></li>
205 </ul><br>
206 <p>
207 <b>Combining Options</b><br>
208 Using the options argument, it is possible to combine different types of listeners:<br>
209 <br>
210 A delayed, one-time listener.
211 <pre><code>myDataView.on(<em>'click'</em>, this.onClick, this, {
212 single: true,
213 delay: 100
214 });</code></pre>
215 <p>
216 <b>Attaching multiple handlers in 1 call</b><br>
217 The method also allows for a single argument to be passed which is a config object containing properties
218 which specify multiple handlers.
219 <p>
220 <pre><code>myGridPanel.on({
221 <em>'click'</em> : {
222     fn: this.onClick,
223     scope: this,
224     delay: 100
225 },
226 <em>'mouseover'</em> : {
227     fn: this.onMouseOver,
228     scope: this
229 },
230 <em>'mouseout'</em> : {
231     fn: this.onMouseOut,
232     scope: this
233 }
234 });</code></pre>
235 <p>
236 Or a shorthand syntax:<br>
237 <pre><code>myGridPanel.on({
238 <em>'click'</em> : this.onClick,
239 <em>'mouseover'</em> : this.onMouseOver,
240 <em>'mouseout'</em> : this.onMouseOut,
241  scope: this
242 });</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addListener" ext:member="#addListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-collapseAllGroups"></a><b><a href="source/GroupingView.html#method-Ext.grid.GroupingView-collapseAllGroups">collapseAllGroups</a></b>()\r
243     :\r
244                                         void<div class="mdesc"><div class="short">Collapses all grouped rows.</div><div class="long">Collapses all grouped rows.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-enableBubble"></a><b><a href="source/Observable-more.html#method-Ext.util.Observable-enableBubble">enableBubble</a></b>(&nbsp;<code>Object&nbsp;events</code>&nbsp;)\r
245     :\r
246                                         void<div class="mdesc"><div class="short">Enables events fired by this Observable to bubble up an owner hierarchy by calling&#13;\r
247 this.getBubbleTarget() if present...</div><div class="long"><p>Enables events fired by this Observable to bubble up an owner hierarchy by calling\r
248 <code>this.getBubbleTarget()</code> if present. There is no implementation in the Observable base class.</p>\r
249 <p>This is commonly used by Ext.Components to bubble events to owner Containers. See <a href="output/Ext.Component.getBubbleTarget.html" ext:cls="Ext.Component.getBubbleTarget">Ext.Component.getBubbleTarget</a>. The default\r
250 implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to\r
251 access the required target more quickly.</p>\r
252 <p>Example:</p><pre><code>Ext.override(Ext.form.Field, {\r
253 <i>//  Add functionality to Field<em>'s initComponent to enable the change event to bubble\r</i>
254     initComponent: Ext.form.Field.prototype.initComponent.createSequence(<b>function</b>() {\r
255         this.enableBubble('</em>change<em>');\r
256     }),\r
257 \r
258 <i>//  We know that we want Field'</em>s events to bubble directly to the FormPanel.\r</i>
259     getBubbleTarget: <b>function</b>() {\r
260         <b>if</b> (!this.formPanel) {\r
261             this.formPanel = this.findParentByType(<em>'form'</em>);\r
262         }\r
263         <b>return</b> this.formPanel;\r
264     }\r
265 });\r
266 \r
267 <b>var</b> myForm = <b>new</b> Ext.formPanel({\r
268     title: <em>'User Details'</em>,\r
269     items: [{\r
270         ...\r
271     }],\r
272     listeners: {\r
273         change: <b>function</b>() {\r
274 <i>//          Title goes red <b>if</b> form has been modified.\r</i>
275             myForm.header.setStyle(<em>"color"</em>, <em>"red"</em>);\r
276         }\r
277     }\r
278 });</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>events</code> : Object<div class="sub-desc">The event name to bubble, or an Array of event names.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#enableBubble" ext:member="#enableBubble" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-expandAllGroups"></a><b><a href="source/GroupingView.html#method-Ext.grid.GroupingView-expandAllGroups">expandAllGroups</a></b>()\r
279     :\r
280                                         void<div class="mdesc"><div class="short">Expands all grouped rows.</div><div class="long">Expands all grouped rows.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-findCellIndex"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-findCellIndex">findCellIndex</a></b>(&nbsp;<code>HTMLElement&nbsp;el</code>&nbsp;)\r
281     :\r
282                                         Number<div class="mdesc"><div class="short">Return the index of the grid column which contains the passed HTMLElement.\r
283 See also findRowIndex</div><div class="long"><p>Return the index of the grid column which contains the passed HTMLElement.</p>
284 See also <a href="output/Ext.grid.GridView.html#Ext.grid.GridView-findRowIndex" ext:member="findRowIndex" ext:cls="Ext.grid.GridView">findRowIndex</a><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>el</code> : HTMLElement<div class="sub-desc">The target element</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The column index, or &lt;b&gt;false&lt;/b&gt; if the target element is not within a row of this GridView.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#findCellIndex" ext:member="#findCellIndex" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-findRow"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-findRow">findRow</a></b>(&nbsp;<code>HTMLElement&nbsp;el</code>&nbsp;)\r
285     :\r
286                                         HTMLElement<div class="mdesc"><div class="short">Return the HtmlElement representing the grid row which contains the passed element.</div><div class="long">Return the HtmlElement representing the grid row which contains the passed element.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>el</code> : HTMLElement<div class="sub-desc">The target HTMLElement</div></li></ul><strong>Returns:</strong><ul><li><code>HTMLElement</code><div class="sub-desc">The row element, or null if the target element is not within a row of this GridView.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#findRow" ext:member="#findRow" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-findRowIndex"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-findRowIndex">findRowIndex</a></b>(&nbsp;<code>HTMLElement&nbsp;el</code>&nbsp;)\r
287     :\r
288                                         Number<div class="mdesc"><div class="short">Return the index of the grid row which contains the passed HTMLElement.\r
289 See also findCellIndex</div><div class="long"><p>Return the index of the grid row which contains the passed HTMLElement.</p>
290 See also <a href="output/Ext.grid.GridView.html#Ext.grid.GridView-findCellIndex" ext:member="findCellIndex" ext:cls="Ext.grid.GridView">findCellIndex</a><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>el</code> : HTMLElement<div class="sub-desc">The target HTMLElement</div></li></ul><strong>Returns:</strong><ul><li><code>Number</code><div class="sub-desc">The row index, or &lt;b&gt;false&lt;/b&gt; if the target element is not within a row of this GridView.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#findRowIndex" ext:member="#findRowIndex" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-fireEvent"></a><b><a href="source/Observable.html#method-Ext.util.Observable-fireEvent">fireEvent</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Object...&nbsp;args</code>&nbsp;)\r
291     :\r
292                                         Boolean<div class="mdesc"><div class="short">Fires the specified event with the passed parameters (minus the event name).\r
293 An event may be set to bubble up an Obse...</div><div class="long"><p>Fires the specified event with the passed parameters (minus the event name).</p>
294 <p>An event may be set to bubble up an Observable parent hierarchy (See <a href="output/Ext.Component.html#Ext.Component-getBubbleTarget" ext:member="getBubbleTarget" ext:cls="Ext.Component">Ext.Component.getBubbleTarget</a>)
295 by calling <a href="output/Ext.util.Observable.html#Ext.util.Observable-enableBubble" ext:member="enableBubble" ext:cls="Ext.util.Observable">enableBubble</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to fire.</div></li><li><code>args</code> : Object...<div class="sub-desc">Variable number of parameters are passed to handlers.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">returns false if any of the handlers return false otherwise it returns true.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#fireEvent" ext:member="#fireEvent" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-focusCell"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-focusCell">focusCell</a></b>(&nbsp;<code>Number&nbsp;row</code>,&nbsp;<code>Number&nbsp;col</code>&nbsp;)\r
296     :\r
297                                         void<div class="mdesc"><div class="short">Focuses the specified cell.</div><div class="long">Focuses the specified cell.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>row</code> : Number<div class="sub-desc">The row index</div></li><li><code>col</code> : Number<div class="sub-desc">The column index</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#focusCell" ext:member="#focusCell" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-focusRow"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-focusRow">focusRow</a></b>(&nbsp;<code>Number&nbsp;row</code>&nbsp;)\r
298     :\r
299                                         void<div class="mdesc"><div class="short">Focuses the specified row.</div><div class="long">Focuses the specified row.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>row</code> : Number<div class="sub-desc">The row index</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#focusRow" ext:member="#focusRow" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-getCell"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-getCell">getCell</a></b>(&nbsp;<code>Number&nbsp;row</code>,&nbsp;<code>Number&nbsp;col</code>&nbsp;)\r
300     :\r
301                                         HtmlElement<div class="mdesc"><div class="short">Returns the grid's &amp;lt;td&gt; HtmlElement at the specified coordinates.</div><div class="long">Returns the grid's <tt>&lt;td></tt> HtmlElement at the specified coordinates.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>row</code> : Number<div class="sub-desc">The row index in which to find the cell.</div></li><li><code>col</code> : Number<div class="sub-desc">The column index of the cell.</div></li></ul><strong>Returns:</strong><ul><li><code>HtmlElement</code><div class="sub-desc">The td at the specified coordinates.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#getCell" ext:member="#getCell" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-getGroupId"></a><b><a href="source/GroupingView.html#method-Ext.grid.GroupingView-getGroupId">getGroupId</a></b>(&nbsp;<code>String&nbsp;value</code>&nbsp;)\r
302     :\r
303                                         String<div class="mdesc"><div class="short">Dynamically tries to determine the groupId of a specific value</div><div class="long">Dynamically tries to determine the groupId of a specific value<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>value</code> : String<div class="sub-desc"></div></li></ul><strong>Returns:</strong><ul><li><code>String</code><div class="sub-desc">The group id</div></li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-getHeaderCell"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-getHeaderCell">getHeaderCell</a></b>(&nbsp;<code>Number&nbsp;index</code>&nbsp;)\r
304     :\r
305                                         HtmlElement<div class="mdesc"><div class="short">Return the &amp;lt;td&gt; HtmlElement which represents the Grid's header cell for the specified column index.</div><div class="long">Return the <tt>&lt;td></tt> HtmlElement which represents the Grid's header cell for the specified column index.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The column index</div></li></ul><strong>Returns:</strong><ul><li><code>HtmlElement</code><div class="sub-desc">The td element.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#getHeaderCell" ext:member="#getHeaderCell" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-getRow"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-getRow">getRow</a></b>(&nbsp;<code>Number&nbsp;index</code>&nbsp;)\r
306     :\r
307                                         HtmlElement<div class="mdesc"><div class="short">Return the &amp;lt;div&gt; HtmlElement which represents a Grid row for the specified index.</div><div class="long">Return the <tt>&lt;div></tt> HtmlElement which represents a Grid row for the specified index.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>index</code> : Number<div class="sub-desc">The row index</div></li></ul><strong>Returns:</strong><ul><li><code>HtmlElement</code><div class="sub-desc">The div element.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#getRow" ext:member="#getRow" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-getRowClass"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-getRowClass">getRowClass</a></b>(&nbsp;<code>Record&nbsp;record</code>,&nbsp;<code>Number&nbsp;index</code>,&nbsp;<code>Object&nbsp;rowParams</code>,&nbsp;<code>Store&nbsp;store</code>&nbsp;)\r
308     :\r
309                                         String<div class="mdesc"><div class="short">Override this function to apply custom CSS classes to rows during rendering.  You can also supply custom\r
310 parameters t...</div><div class="long">Override this function to apply custom CSS classes to rows during rendering.  You can also supply custom
311 parameters to the row template for the current row to customize how it is rendered using the <b>rowParams</b>
312 parameter.  This function should return the CSS class name (or empty string '' for none) that will be added
313 to the row's wrapping div.  To apply multiple class names, simply return them space-delimited within the string
314 (e.g., 'my-class another-class'). Example usage:
315     <pre><code>viewConfig: {
316     forceFit: true,
317     showPreview: true, <i>// custom property</i>
318     enableRowBody: true, <i>// required to create a second, full-width row to show expanded Record data</i>
319     getRowClass: <b>function</b>(record, rowIndex, rp, ds){ <i>// rp = rowParams</i>
320         <b>if</b>(this.showPreview){
321             rp.body = <em>'&lt;p>'</em>+record.data.excerpt+<em>'&lt;/p>'</em>;
322             <b>return</b> <em>'x-grid3-row-expanded'</em>;
323         }
324         <b>return</b> <em>'x-grid3-row-collapsed'</em>;
325     }
326 },</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>record</code> : Record<div class="sub-desc">The <a href="output/Ext.data.Record.html" ext:cls="Ext.data.Record">Ext.data.Record</a> corresponding to the current row.</div></li><li><code>index</code> : Number<div class="sub-desc">The row index.</div></li><li><code>rowParams</code> : Object<div class="sub-desc">A config object that is passed to the row template during rendering that allows
327 customization of various aspects of a grid row.
328 <p>If <a href="output/Ext.grid.GridView.html#Ext.grid.GridView-enableRowBody" ext:member="enableRowBody" ext:cls="Ext.grid.GridView">enableRowBody</a> is configured <b><tt></tt>true</b>, then the following properties may be set
329 by this function, and will be used to render a full-width expansion row below each grid row:</p>
330 <ul>
331 <li><code>body</code> : String <div class="sub-desc">An HTML fragment to be used as the expansion row's body content (defaults to '').</div></li>
332 <li><code>bodyStyle</code> : String <div class="sub-desc">A CSS style specification that will be applied to the expansion row's &lt;tr> element. (defaults to '').</div></li>
333 </ul>
334 The following property will be passed in, and may be appended to:
335 <ul>
336 <li><code>tstyle</code> : String <div class="sub-desc">A CSS style specification that willl be applied to the &lt;table> element which encapsulates
337 both the standard grid row, and any expansion row.</div></li>
338 </ul></div></li><li><code>store</code> : Store<div class="sub-desc">The <a href="output/Ext.data.Store.html" ext:cls="Ext.data.Store">Ext.data.Store</a> this grid is bound to</div></li></ul><strong>Returns:</strong><ul><li><code>String</code><div class="sub-desc">a CSS class name to add to the row.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#getRowClass" ext:member="#getRowClass" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-hasListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-hasListener">hasListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>&nbsp;)\r
339     :\r
340                                         Boolean<div class="mdesc"><div class="short">Checks to see if this object has any listeners for a specified event</div><div class="long">Checks to see if this object has any listeners for a specified event<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to check for</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the event is being listened for, else false</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#hasListener" ext:member="#hasListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-on"></a><b><a href="source/Observable.html#method-Ext.util.Observable-on">on</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)\r
341     :\r
342                                         void<div class="mdesc"><div class="short">Appends an event handler to this object (shorthand for addListener.)</div><div class="long">Appends an event handler to this object (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event to listen for</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
343 <b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#on" ext:member="#on" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-purgeListeners"></a><b><a href="source/Observable.html#method-Ext.util.Observable-purgeListeners">purgeListeners</a></b>()\r
344     :\r
345                                         void<div class="mdesc"><div class="short">Removes all listeners for this object</div><div class="long">Removes all listeners for this object<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#purgeListeners" ext:member="#purgeListeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-refresh"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-refresh">refresh</a></b>(&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;headersToo</code>]</span>&nbsp;)\r
346     :\r
347                                         void<div class="mdesc"><div class="short">Refreshs the grid UI</div><div class="long">Refreshs the grid UI<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>headersToo</code> : Boolean<div class="sub-desc">(optional) True to also refresh the headers</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#refresh" ext:member="#refresh" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-relayEvents"></a><b><a href="source/Observable-more.html#method-Ext.util.Observable-relayEvents">relayEvents</a></b>(&nbsp;<code>Object&nbsp;o</code>,&nbsp;<code>Array&nbsp;events</code>&nbsp;)\r
348     :\r
349                                         void<div class="mdesc"><div class="short">Relays selected events from the specified Observable as if the events were fired by this.</div><div class="long">Relays selected events from the specified Observable as if the events were fired by <tt><b>this</b></tt>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The Observable whose events this object is to relay.</div></li><li><code>events</code> : Array<div class="sub-desc">Array of event names to relay.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#relayEvents" ext:member="#relayEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-removeListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-removeListener">removeListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
350     :\r
351                                         void<div class="mdesc"><div class="short">Removes an event handler.</div><div class="long">Removes an event handler.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#removeListener" ext:member="#removeListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-resumeEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-resumeEvents">resumeEvents</a></b>()\r
352     :\r
353                                         void<div class="mdesc"><div class="short">Resume firing events. (see suspendEvents)\r
354 If events were suspended using the queueSuspended parameter, then all\r
355 event...</div><div class="long">Resume firing events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-suspendEvents" ext:member="suspendEvents" ext:cls="Ext.util.Observable">suspendEvents</a>)
356 If events were suspended using the <tt><b>queueSuspended</b></tt> parameter, then all
357 events fired during event suspension will be sent to any listeners now.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#resumeEvents" ext:member="#resumeEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-scrollToTop"></a><b><a href="source/GridView.html#method-Ext.grid.GridView-scrollToTop">scrollToTop</a></b>()\r
358     :\r
359                                         void<div class="mdesc"><div class="short">Scrolls the grid to the top</div><div class="long">Scrolls the grid to the top<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#scrollToTop" ext:member="#scrollToTop" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-suspendEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-suspendEvents">suspendEvents</a></b>(&nbsp;<code>Boolean&nbsp;queueSuspended</code>&nbsp;)\r
360     :\r
361                                         void<div class="mdesc"><div class="short">Suspend the firing of all events. (see resumeEvents)</div><div class="long">Suspend the firing of all events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a>)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>queueSuspended</code> : Boolean<div class="sub-desc">Pass as true to queue up suspended events to be fired
362 after the <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a> call instead of discarding all suspended events;</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#suspendEvents" ext:member="#suspendEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-toggleAllGroups"></a><b><a href="source/GroupingView.html#method-Ext.grid.GroupingView-toggleAllGroups">toggleAllGroups</a></b>(&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;expanded</code>]</span>&nbsp;)\r
363     :\r
364                                         void<div class="mdesc"><div class="short">Toggles all groups if no value is passed, otherwise sets the expanded state of all groups to the value passed.</div><div class="long">Toggles all groups if no value is passed, otherwise sets the expanded state of all groups to the value passed.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>expanded</code> : Boolean<div class="sub-desc">(optional)</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GroupingView-toggleGroup"></a><b><a href="source/GroupingView.html#method-Ext.grid.GroupingView-toggleGroup">toggleGroup</a></b>(&nbsp;<code>String&nbsp;groupId</code>,&nbsp;<span title="Optional" class="optional">[<code>Boolean&nbsp;expanded</code>]</span>&nbsp;)\r
365     :\r
366                                         void<div class="mdesc"><div class="short">Toggles the specified group if no value is passed, otherwise sets the expanded state of the group to the value passed...</div><div class="long">Toggles the specified group if no value is passed, otherwise sets the expanded state of the group to the value passed.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>groupId</code> : String<div class="sub-desc">The groupId assigned to the group (see getGroupId)</div></li><li><code>expanded</code> : Boolean<div class="sub-desc">(optional)</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">GroupingView</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-un"></a><b><a href="source/Observable.html#method-Ext.util.Observable-un">un</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)\r
367     :\r
368                                         void<div class="mdesc"><div class="short">Removes an event handler (shorthand for removeListener.)</div><div class="long">Removes an event handler (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-removeListener" ext:member="removeListener" ext:cls="Ext.util.Observable">removeListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#un" ext:member="#un" ext:cls="Ext.util.Observable">Observable</a></td></tr></tbody></table><a id="Ext.grid.GroupingView-events"></a><h2>Public Events</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Event</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-beforerefresh"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-beforerefresh">beforerefresh</a></b> :\r
369                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>&nbsp;)\r
370     <div class="mdesc"><div class="short">Internal UI Event. Fired before the view is refreshed.</div><div class="long">Internal UI Event. Fired before the view is refreshed.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#beforerefresh" ext:member="#beforerefresh" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-beforerowremoved"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-beforerowremoved">beforerowremoved</a></b> :\r
371                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>,&nbsp;<code>Number&nbsp;rowIndex</code>,&nbsp;<code>Ext.data.Record&nbsp;record</code>&nbsp;)\r
372     <div class="mdesc"><div class="short">Internal UI Event. Fired before a row is removed.</div><div class="long">Internal UI Event. Fired before a row is removed.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li><li><code>rowIndex</code> : Number<div class="sub-desc">The index of the row to be removed.</div></li><li><code>record</code> : Ext.data.Record<div class="sub-desc">The Record to be removed</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#beforerowremoved" ext:member="#beforerowremoved" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-beforerowsinserted"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-beforerowsinserted">beforerowsinserted</a></b> :\r
373                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>,&nbsp;<code>Number&nbsp;firstRow</code>,&nbsp;<code>Number&nbsp;lastRow</code>&nbsp;)\r
374     <div class="mdesc"><div class="short">Internal UI Event. Fired before rows are inserted.</div><div class="long">Internal UI Event. Fired before rows are inserted.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li><li><code>firstRow</code> : Number<div class="sub-desc">The index of the first row to be inserted.</div></li><li><code>lastRow</code> : Number<div class="sub-desc">The index of the last row to be inserted.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#beforerowsinserted" ext:member="#beforerowsinserted" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-refresh"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-refresh">refresh</a></b> :\r
375                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>&nbsp;)\r
376     <div class="mdesc"><div class="short">Internal UI Event. Fired after the GridView's body has been refreshed.</div><div class="long">Internal UI Event. Fired after the GridView's body has been refreshed.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#refresh" ext:member="#refresh" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-rowremoved"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-rowremoved">rowremoved</a></b> :\r
377                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>,&nbsp;<code>Number&nbsp;rowIndex</code>,&nbsp;<code>Ext.data.Record&nbsp;record</code>&nbsp;)\r
378     <div class="mdesc"><div class="short">Internal UI Event. Fired after a row is removed.</div><div class="long">Internal UI Event. Fired after a row is removed.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li><li><code>rowIndex</code> : Number<div class="sub-desc">The index of the row that was removed.</div></li><li><code>record</code> : Ext.data.Record<div class="sub-desc">The Record that was removed</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#rowremoved" ext:member="#rowremoved" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-rowsinserted"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-rowsinserted">rowsinserted</a></b> :\r
379                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>,&nbsp;<code>Number&nbsp;firstRow</code>,&nbsp;<code>Number&nbsp;lastRow</code>&nbsp;)\r
380     <div class="mdesc"><div class="short">Internal UI Event. Fired after rows are inserted.</div><div class="long">Internal UI Event. Fired after rows are inserted.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li><li><code>firstRow</code> : Number<div class="sub-desc">The index of the first inserted.</div></li><li><code>lastRow</code> : Number<div class="sub-desc">The index of the last row inserted.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#rowsinserted" ext:member="#rowsinserted" ext:cls="Ext.grid.GridView">GridView</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.grid.GridView-rowupdated"></a><b><a href="source/GridView.html#event-Ext.grid.GridView-rowupdated">rowupdated</a></b> :\r
381                                       (&nbsp;<code>Ext.grid.GridView&nbsp;view</code>,&nbsp;<code>Number&nbsp;firstRow</code>,&nbsp;<code>Ext.data.record&nbsp;record</code>&nbsp;)\r
382     <div class="mdesc"><div class="short">Internal UI Event. Fired after a row has been updated.</div><div class="long">Internal UI Event. Fired after a row has been updated.<div class="mdetail-params"><strong style="font-weight: normal;">Listeners will be called with the following arguments:</strong><ul><li><code>view</code> : Ext.grid.GridView<div class="sub-desc"></div></li><li><code>firstRow</code> : Number<div class="sub-desc">The index of the row updated.</div></li><li><code>record</code> : Ext.data.record<div class="sub-desc">The Record backing the row updated.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.grid.GridView.html#rowupdated" ext:member="#rowupdated" ext:cls="Ext.grid.GridView">GridView</a></td></tr></tbody></table></div>