4、讲一下gridPanel这个控件在创建之后都有哪些事件可以触发,以及我们如何来设置这样的触发事件。
察看以下gridPanel的源码,我们发现有如下的这么多的事件可以触发。
-
-
-
-
-
-
- "click",
-
-
-
-
-
- "dblclick",
-
-
-
-
-
- "contextmenu",
-
-
-
-
-
- "mousedown",
-
-
-
-
-
- "mouseup",
-
-
-
-
-
- "mouseover",
-
-
-
-
-
- "mouseout",
-
-
-
-
-
- "keypress",
-
-
-
-
-
- "keydown",
-
-
-
-
-
-
-
-
-
-
- "cellmousedown",
-
-
-
-
-
-
-
- "rowmousedown",
-
-
-
-
-
-
-
- "headermousedown",
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "cellclick",
-
-
-
-
-
-
-
-
- "celldblclick",
-
-
-
-
-
-
-
- "rowclick",
-
-
-
-
-
-
-
- "rowdblclick",
-
-
-
-
-
-
-
- "headerclick",
-
-
-
-
-
-
-
- "headerdblclick",
-
-
-
-
-
-
-
- "rowcontextmenu",
-
-
-
-
-
-
-
-
- "cellcontextmenu",
-
-
-
-
-
-
-
- "headercontextmenu",
-
-
-
-
-
-
- "bodyscroll",
-
-
-
-
-
-
- "columnresize",
-
-
-
-
-
-
- "columnmove",
-
-
-
-
-
-
- "sortchange"
// raw events /** * @event click * The raw click event for the entire grid. ------简单的事件描述,相信大家都看得懂,就不解释了。 * @param {Ext.EventObject} e ---------------这个是框架会自动传入的参数,下面的一样。 */ "click", //------------- 这个是事件名称,下面的一样 /** * @event dblclick * The raw dblclick event for the entire grid. * @param {Ext.EventObject} e */ "dblclick", /** * @event contextmenu * The raw contextmenu event for the entire grid. * @param {Ext.EventObject} e */ "contextmenu", /** * @event mousedown * The raw mousedown event for the entire grid. * @param {Ext.EventObject} e */ "mousedown", /** * @event mouseup * The raw mouseup event for the entire grid. * @param {Ext.EventObject} e */ "mouseup", /** * @event mouseover * The raw mouseover event for the entire grid. * @param {Ext.EventObject} e */ "mouseover", /** * @event mouseout * The raw mouseout event for the entire grid. * @param {Ext.EventObject} e */ "mouseout", /** * @event keypress * The raw keypress event for the entire grid. * @param {Ext.EventObject} e */ "keypress", /** * @event keydown * The raw keydown event for the entire grid. * @param {Ext.EventObject} e */ "keydown", // custom events /** * @event cellmousedown * Fires before a cell is clicked * @param {Grid} this * @param {Number} rowIndex * @param {Number} columnIndex * @param {Ext.EventObject} e */ "cellmousedown", /** * @event rowmousedown * Fires before a row is clicked * @param {Grid} this * @param {Number} rowIndex * @param {Ext.EventObject} e */ "rowmousedown", /** * @event headermousedown * Fires before a header is clicked * @param {Grid} this * @param {Number} columnIndex * @param {Ext.EventObject} e */ "headermousedown", /** * @event cellclick * Fires when a cell is clicked. * The data for the cell is drawn from the {@link Ext.data.Record Record} * for this row. To access the data in the listener function use the * following technique: * <pre> <code> 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); } </code> </pre> * @param {Grid} this * @param {Number} rowIndex * @param {Number} columnIndex * @param {Ext.EventObject} e */ "cellclick", /** * @event celldblclick * Fires when a cell is double clicked * @param {Grid} this * @param {Number} rowIndex * @param {Number} columnIndex * @param {Ext.EventObject} e */ "celldblclick", /** * @event rowclick * Fires when a row is clicked * @param {Grid} this * @param {Number} rowIndex * @param {Ext.EventObject} e */ "rowclick", /** * @event rowdblclick * Fires when a row is double clicked * @param {Grid} this * @param {Number} rowIndex * @param {Ext.EventObject} e */ "rowdblclick", /** * @event headerclick * Fires when a header is clicked * @param {Grid} this * @param {Number} columnIndex * @param {Ext.EventObject} e */ "headerclick", /** * @event headerdblclick * Fires when a header cell is double clicked * @param {Grid} this * @param {Number} columnIndex * @param {Ext.EventObject} e */ "headerdblclick", /** * @event rowcontextmenu * Fires when a row is right clicked * @param {Grid} this * @param {Number} rowIndex * @param {Ext.EventObject} e */ "rowcontextmenu", /** * @event cellcontextmenu * Fires when a cell is right clicked * @param {Grid} this * @param {Number} rowIndex * @param {Number} cellIndex * @param {Ext.EventObject} e */ "cellcontextmenu", /** * @event headercontextmenu * Fires when a header is right clicked * @param {Grid} this * @param {Number} columnIndex * @param {Ext.EventObject} e */ "headercontextmenu", /** * @event bodyscroll * Fires when the body element is scrolled * @param {Number} scrollLeft * @param {Number} scrollTop */ "bodyscroll", /** * @event columnresize * Fires when the user resizes a column * @param {Number} columnIndex * @param {Number} newSize */ "columnresize", /** * @event columnmove * Fires when the user moves a column * @param {Number} oldIndex * @param {Number} newIndex */ "columnmove", /** * @event sortchange * Fires when the grid's store sort changes * @param {Grid} this * @param {Object} sortInfo An object with the keys field and direction */ "sortchange"
然后是我们怎么样来设置这些事件。
-
- grid.on("rowdblclick" , function(grid){
- var row = grid.getSelectionModel().getSelected();
- alert(row.get("title"))
- });
/* 设置grid的双击事件 */ grid.on("rowdblclick" , function(grid){ var row = grid.getSelectionModel().getSelected(); alert(row.get("title")) });