- HTML code
itsmTicketWp.cmlist = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), { header : '任务', dataIndex : 'task', width : 200, editor : new Ext.form.TextField({ allowBlank : false })}, { header : '描述', dataIndex : 'taskDesc', width : 200, editor : new Ext.form.TextField({})}, { header : '位置', dataIndex : 'attribute', width : 200, editor : new Ext.form.TextField({})}, { header : '巡检值', dataIndex : 'resultDesc', width : 200, editor : new Ext.form.TextField({})}, { header : '结论', dataIndex : 'endReview', width : 200, editor : { xtype : 'sysSelect', options : [ [ '0', '不正常' ], [ '1', '正常' ] ] }, renderer : function(v, m, r) { var x = r.get('endReview'); return (x == '0' ? '不正常' : '正常'); }}, { header : '说明', dataIndex : 'resultExplain', width : 200, editor : new Ext.form.TextField({})} ]);itsmTicketWp.storelist = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : appName + itsmTicketWp.action + '?act=getWorkPollingJson' }), reader : new Ext.data.JsonReader({ root : 'datalist' }, itsmTicketWp.ItsmWpollingItemTemp), pruneModifiedRecords : true});itsmTicketWp.editor = new Ext.ux.grid.RowEditor({ saveText : '保存', cancelText : '取消', commitChangesText : '请先保存或取消', errorText : '提示'});// 巡检项行编辑保存和取消事件itsmTicketWp.editor.on({ afteredit : function(roweditor, changes, record, rowIndex) {alert(11); Ext.Ajax.request({ url : appName + itsmTicketWp.action + '?act=saveOrUpdateWorkPolling', params : { itsmWorkPolling : Ext.encode(record.data) }, success : function() { itsmTicketWp.gridList.store.commitChanges(); //itsmTicketWp.gridList.store.reload(); Ext.getCmp(itsmTicketWp.idHead + 'itemAdd').enable(); } }); }, canceledit : function(roweditor, changes, record, rowIndex) { var r = itsmTicketWp.gridList.getSelectionModel().getSelected(); if (r.get('id') == null || r.get('id') == "") itsmTicketWp.gridList.store.remove(r); else itsmTicketWp.gridList.store.rejectChanges(); Ext.getCmp(itsmTicketWp.idHead + 'itemAdd').enable(); }});// 巡检项GriditsmTicketWp.gridList = new Ext.grid.EditorGridPanel({ region : 'center', loadMask : true, autowidth : true, height : 300, viewConfig : { forceFit : true }, store : itsmTicketWp.storelist, // storecheck, cm : itsmTicketWp.cmlist, sm : new Ext.grid.RowSelectionModel({ singleSelect : false }), plugins : [ itsmTicketWp.editor ], tbar : [ '->', { id : itsmTicketWp.idHead + 'itemAdd', text : '增加', handler : onItemAdd, iconCls : 'page_add', disabled : false }, '-', { id : itsmTicketWp.idHead + 'itemDelete', text : '删除', handler : onItemDelete, iconCls : 'page_delete', disabled : true } ]});
itsmTicketWp.editor的 afteredit 事件有时能触发 ,有时又不能触发 ,找了好久也没找到是什么原因,网上的用法 好像也是这样的用的,不知道在家有没有遇过这样的情况
------解决方案--------------------------------------------------------
不清楚 是不是浏览器不同导致的
------解决方案--------------------------------------------------------
没有触发的时候有什么错误信息没有?
------解决方案--------------------------------------------------------
用火狐firebug调试一下,ie会把某些JS错误直接忽略掉的
------解决方案--------------------------------------------------------
这个监听afteredit 按你的逻辑只会做更新操作,需要加入一个判断值用来判断是否是新增.不然你后台的逻辑写的有点麻烦.当你点新增按钮的时候,如果你后台的操作是saveOrUpdate就会在数据库新加一条记录或者覆盖以前的记录.这个可是你是说的有时有效 ,有时无效的结果.如果我猜的没错的话,你就要改改这个地方了.