/// <reference path="../ext3/Extjs_Intellisense.js" /> BICodeLengthGrid = function() { Ext.QuickTips.init(); handler = this; // 定义数据格式 实体类 var Employee = Ext.data.Record.create([ { name: 'name', type: 'string' }, { name: 'email', type: 'string' }, { name: 'start', type: 'date', dateFormat: 'Y-j-n' }, { name: 'salary', type: 'float' }, { name: 'active', type: 'bool'}]); //定义更新 var editor = new Ext.ux.grid.RowEditor({ saveText: '更新', cancelText: '取消', clicksToEdit: 2, //点击鼠标几次触发更新 errorSummary: false }); editor.on({ scope: this, //作用域 validateedit: function(roweditor, changes, record, rowIndex) { Ext.Msg.alert("提示", "roweditor:" + roweditor + "__changes:" + changes + "record:" + record + "rowIndex:" + rowIndex + ""); }, afteredit: function(roweditor, changes, record, rowIndex) { //changes 更改的记录集 //record 记录集 //rowIndex 修改的行数 以0开始 Ext.Msg.alert("提示", "roweditor:" + roweditor + "__changes:" + changes + "record:" + record + "rowIndex:" + rowIndex + ""); }, canceledit: function(roweditor, changes, record, rowIndex) { Ext.Msg.alert("提示", "roweditor:" + roweditor + "__changes:" + changes + "record:" + record + "rowIndex:" + rowIndex + ""); } }); //定义自己的Grid列 Columns = [new Ext.grid.RowNumberer(), // 定义行编号 {id: 'name', header: 'First Name', dataIndex: 'name', width: 100, sortable: true, editor: { xtype: 'textfield', allowBlank: false} }, { header: 'Email', dataIndex: 'email', width: 150, sortable: true, editor: { xtype: 'textfield', allowBlank: false, vtype: 'email'} }, { xtype: 'datecolumn', header: 'Start Date', dataIndex: 'start', format: 'Y-m-d', width: 150, sortable: true, groupRenderer: Ext.util.Format.dateRenderer('M y'), editor: { xtype: 'datefield', allowBlank: false, minValue: '2006-01-01', minText: 'Can/'t have a start date before the company existed!', maxValue: (new Date()).format('Y-m-d')} }, { xtype: 'numbercolumn', header: 'Salary', dataIndex: 'salary', format: '$0,0.00', width: 100, sortable: true, editor: { xtype: 'numberfield', allowBlank: false, minValue: 1, maxValue: 150000} }, { xtype: 'booleancolumn', header: 'Active', dataIndex: 'active', align: 'center', width: 50, trueText: 'Yes', falseText: 'No', editor: { xtype: 'checkbox'}}]; //定义按钮 Tbars = [{ text: '添加新数据', handler: function() { var e = new Employee({ name: ' ', email: 'test@163.com', start: (new Date()).clearTime(), salary: 1, active: true }); editor.stopEditing(); store.insert(0, e); handler.getView().refresh(); handler.getSelectionModel().selectRow(0); editor.startEditing(0); } }, { text: '删除现有数据' }]; /* * 模拟数据 组织JSON */ var genData = function() { var data = []; var s = new Date(2007, 0, 1); for (var ii = 1; ii < 50; ii++) { data.push({ start: s.clearTime(true).add(Date.DAY, 11), name: "UserName" + ii, email: "UserName" + ii + "@163.com", active: true, salary: ii * 5 }); } return data; }; //定义数据源 var store = new Ext.data.GroupingStore({ reader: new Ext.data.JsonReader({ fields: Employee }), //实体类 data: genData(), //数据 sortInfo: { field: 'start', direction: 'DESC'}//根据某列排序 }); BICodeLengthGrid.superclass.constructor.call(this, { tbar: Tbars, columns: Columns, store: store, frame: true, plugins: [editor], view: new Ext.grid.GroupingView({ markDirty: false }) }); }; Ext.extend(BICodeLengthGrid, Ext.grid.GridPanel); Tab_BICodeLength = function() { Tab_BICodeLength.superclass.constructor.call(this, { title: '编码总长度表', id: 'Tab_BICodeLength', layout: 'fit', closable: true, items: [new BICodeLengthGrid()] }); } Ext.extend(Tab_BICodeLength, Ext.Panel);