核心提示:Extjs4可编辑表格1.第一种样式 这种样式用到的插件是CellEditing.var cellEditing = Ext.create(Ext.grid.plugin.CellEditing, {...
Extjs4可编辑表格
1.第一种样式

这种样式用到的插件是CellEditing.
var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
默认双击单元格进行编辑, 可以使用clickToEdit此属性更改点击数进行编辑.
在grid中定义插件
plugins: [cellEditing],
此页面的完整代码
Ext.onReady(function(){ Ext.define('yxrz', { extend: 'Ext.data.Model', fields:['content','point', 'type'] }); //表格行进行编辑 var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); var YxrzAddStore=Ext.create('Ext.data.Store',{ storeId:'YxrzAddStore', model: 'yxrz', data:[], autoLoad: true }); var YxrzAddGrid=Ext.create('Ext.grid.Panel',{ id:'YxrzAddGrid', columnLines:true, height:200, store: Ext.data.StoreManager.lookup('YxrzAddStore'), /*plugins: [rowEditing],*/ plugins: [cellEditing], tbar:[{ xtype : "button", text : "添加", iconCls : "Add", handler : function() { var r = Ext.create('yxrz', { content: '', point: '', type: '', active: true }); YxrzAddStore.insert(YxrzAddGrid.getStore().getCount(), r); YxrzAddGrid.getView().focusRow(YxrzAddGrid.getStore().getCount()-1); // rowEditing.startEdit(0, 0); } },{ xtype:"button", text:'删除', iconCls:'Delete', handler:function(){ var sm = YxrzAddGrid.getSelectionModel(); // rowEditing.cancelEdit(); YxrzAddStore.remove(sm.getSelection()); if (YxrzAddStore.getCount() > 0) { sm.select(0); } } }], columns : [{ text : '内容', flex:1, dataIndex : 'content', editor: { } }, { text : ' 测点 ', width:90, dataIndex : 'point', editor: { } }, { text : '
输入类型
', width : 90, align : 'center', titleAlign : "center", dataIndex : 'type', editor: { xtype:'combobox' } }] }) Ext.create('Ext.Button',{ text: '点击弹窗', renderTo: Ext.getBody(), handler: function() { Ext.getCmp("addYxrzWin").show(); } }); //弹出 Ext.create('widget.window',{ title : '新建运行日志', closable:false, id:'addYxrzWin', width : 500, height : 350, bodyPadding :10, bodyStyle : "background:#ffffff", modal : true, resizable:false, bbar:['->',{ xtype:'button', text:'保存', iconCls:'Disk', handler:function(){ submitForm(); } },{ xtype:'button', text:'取消', iconCls:'Cancel', handler:function(){ Ext.getCmp("addYxrzWin").close(); }}], items:[{ xtype : "form", id : "addYxrzForm", border:0, items:[{ xtype: 'container', anchor: '100%', layout: 'hbox', items:[{ xtype: 'container', flex: 1, layout: 'anchor', items: [{ xtype:'combobox', fieldLabel: '日 志', labelWidth: 60, allowBlank: false, name: 'journal', anchor:'95%' }, { xtype:'datefield', fieldLabel: '开始时间', labelWidth: 60, name: 'bdate', format:'Y-m-d', anchor:'95%' }] },{ xtype: 'container', flex: 1, layout: 'anchor', items: [{ xtype:'textfield', fieldLabel: '记事类型', labelWidth: 60, allowBlank: false, name: 'logType', anchor:'100%' },{ xtype:'datefield', fieldLabel: '结束日期', labelWidth: 60, allowBlank: false, format:'Y-m-d', name: 'edate', anchor:'100%' }] }] },YxrzAddGrid] }] }) }); function submitForm(){ Ext.getCmp("addYxrzForm").getForm().submit({ url : '../edit/createNew1.action', //提交地址 waitMsg : '数据在处理中,请稍后......', //提交时的提示信息 waitTitle : '提示', params : { //携带的参数 "store":YxrzAddStore }, method : 'POST', success : function(form, options) {//成功后要做的事情 console.log(options); Ext.Msg.alert("success","表单提交成功!"); Ext.getCmp("createWin").close(); }, failure : function(form, options) { }//失败要做的事情 }) }
2.还有一种实现表格编辑的方法 ,样式如下

使用的是RowEditing插件
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing',{ pluginId:'rowEditing', saveBtnText: '保存', cancelBtnText: "取消", autoCancel: false, clicksToEdit:2 });
在grid中定义插件同上.
完整代码就不贴了,基本同上。