?? grid.js
字號:
/*
* Ext JS Library 1.1 RC 1
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/
/**
* @class Ext.grid.Grid
* @extends Ext.util.Observable
* This class represents the primary interface of a component based grid control.
* <br><br>Usage:<pre><code>
var grid = new Ext.grid.Grid("my-container-id", {
ds: myDataStore,
cm: myColModel,
selModel: mySelectionModel,
autoSizeColumns: true,
monitorWindowResize: false,
trackMouseOver: true
});
// set any options
grid.render();
* </code></pre>
* <b>Common Problems:</b><br/>
* - Grid does not resize properly when going smaller: Setting overflow hidden on the container
* element will correct this<br/>
* - If you get el.style[camel]= NaNpx or -2px or something related, be certain you have given your container element
* dimensions. The grid adapts to your container's size, if your container has no size defined then the results
* are unpredictable.<br/>
* - Do not render the grid into an element with display:none. Try using visibility:hidden. Otherwise there is no way for the
* grid to calculate dimensions/offsets.<br/>
* @constructor
* @param {String/HTMLElement/Ext.Element} container The element into which this grid will be rendered -
* The container MUST have some type of size defined for the grid to fill. The container will be
* automatically set to position relative if it isn't already.
* @param {Object} config A config object that sets properties on this grid.
*/
Ext.grid.Grid = function(container, config){
// initialize the container
this.container = Ext.get(container);
this.container.update("");
this.container.setStyle("overflow", "hidden");
this.container.addClass('x-grid-container');
this.id = this.container.id;
Ext.apply(this, config);
// check and correct shorthanded configs
if(this.ds){
this.dataSource = this.ds;
delete this.ds;
}
if(this.cm){
this.colModel = this.cm;
delete this.cm;
}
if(this.sm){
this.selModel = this.sm;
delete this.sm;
}
if(this.width){
this.container.setWidth(this.width);
}
if(this.height){
this.container.setHeight(this.height);
}
/** @private */
this.addEvents({
// raw events
/**
* @event click
* The raw click event for the entire grid.
* @param {Ext.EventObject} e
*/
"click" : true,
/**
* @event dblclick
* The raw dblclick event for the entire grid.
* @param {Ext.EventObject} e
*/
"dblclick" : true,
/**
* @event contextmenu
* The raw contextmenu event for the entire grid.
* @param {Ext.EventObject} e
*/
"contextmenu" : true,
/**
* @event mousedown
* The raw mousedown event for the entire grid.
* @param {Ext.EventObject} e
*/
"mousedown" : true,
/**
* @event mouseup
* The raw mouseup event for the entire grid.
* @param {Ext.EventObject} e
*/
"mouseup" : true,
/**
* @event mouseover
* The raw mouseover event for the entire grid.
* @param {Ext.EventObject} e
*/
"mouseover" : true,
/**
* @event mouseout
* The raw mouseout event for the entire grid.
* @param {Ext.EventObject} e
*/
"mouseout" : true,
/**
* @event keypress
* The raw keypress event for the entire grid.
* @param {Ext.EventObject} e
*/
"keypress" : true,
/**
* @event keydown
* The raw keydown event for the entire grid.
* @param {Ext.EventObject} e
*/
"keydown" : true,
// custom events
/**
* @event cellclick
* Fires when a cell is clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Number} columnIndex
* @param {Ext.EventObject} e
*/
"cellclick" : true,
/**
* @event celldblclick
* Fires when a cell is double clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Number} columnIndex
* @param {Ext.EventObject} e
*/
"celldblclick" : true,
/**
* @event rowclick
* Fires when a row is clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Ext.EventObject} e
*/
"rowclick" : true,
/**
* @event rowdblclick
* Fires when a row is double clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Ext.EventObject} e
*/
"rowdblclick" : true,
/**
* @event headerclick
* Fires when a header is clicked
* @param {Grid} this
* @param {Number} columnIndex
* @param {Ext.EventObject} e
*/
"headerclick" : true,
/**
* @event headerdblclick
* Fires when a header cell is double clicked
* @param {Grid} this
* @param {Number} columnIndex
* @param {Ext.EventObject} e
*/
"headerdblclick" : true,
/**
* @event rowcontextmenu
* Fires when a row is right clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Ext.EventObject} e
*/
"rowcontextmenu" : true,
/**
* @event cellcontextmenu
* Fires when a cell is right clicked
* @param {Grid} this
* @param {Number} rowIndex
* @param {Number} cellIndex
* @param {Ext.EventObject} e
*/
"cellcontextmenu" : true,
/**
* @event headercontextmenu
* Fires when a header is right clicked
* @param {Grid} this
* @param {Number} columnIndex
* @param {Ext.EventObject} e
*/
"headercontextmenu" : true,
/**
* @event bodyscroll
* Fires when the body element is scrolled
* @param {Number} scrollLeft
* @param {Number} scrollTop
*/
"bodyscroll" : true,
/**
* @event columnresize
* Fires when the user resizes a column
* @param {Number} columnIndex
* @param {Number} newSize
*/
"columnresize" : true,
/**
* @event columnmove
* Fires when the user moves a column
* @param {Number} oldIndex
* @param {Number} newIndex
*/
"columnmove" : true,
/**
* @event startdrag
* Fires when row(s) start being dragged
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {event} e The raw browser event
*/
"startdrag" : true,
/**
* @event enddrag
* Fires when a drag operation is complete
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {event} e The raw browser event
*/
"enddrag" : true,
/**
* @event dragdrop
* Fires when dragged row(s) are dropped on a valid DD target
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {String} targetId The target drag drop object
* @param {event} e The raw browser event
*/
"dragdrop" : true,
/**
* @event dragover
* Fires while row(s) are being dragged. "targetId" is the id of the Yahoo.util.DD object the selected rows are being dragged over.
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {String} targetId The target drag drop object
* @param {event} e The raw browser event
*/
"dragover" : true,
/**
* @event dragenter
* Fires when the dragged row(s) first cross another DD target while being dragged
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {String} targetId The target drag drop object
* @param {event} e The raw browser event
*/
"dragenter" : true,
/**
* @event dragout
* Fires when the dragged row(s) leave another DD target while being dragged
* @param {Grid} this
* @param {Ext.GridDD} dd The drag drop object
* @param {String} targetId The target drag drop object
* @param {event} e The raw browser event
*/
"dragout" : true,
/**
* @event render
* Fires when the grid is rendered
* @param {Grid} grid
*/
render : true
});
Ext.grid.Grid.superclass.constructor.call(this);
};
Ext.extend(Ext.grid.Grid, Ext.util.Observable, {
/**
* @cfg {Number} minColumnWidth The minimum width a column can be resized to. Default is 25.
*/
minColumnWidth : 25,
/**
* @cfg {Boolean} autoSizeColumns True to automatically resize the columns to fit their content
* <b>on initial render.</b> It is more efficient to explicitly size the columns
* through the ColumnModel's {@link Ext.grid.ColumnModel#width} config option. Default is false.
*/
autoSizeColumns : false,
/**
* @cfg {Boolean} autoSizeHeaders True to measure headers with column data when auto sizing columns. Default is true.
*/
autoSizeHeaders : true,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -