首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

小女子请教一个 Ext.ux.grid.RowEditor的有关问题

2012-07-30 
小女子请问一个 Ext.ux.grid.RowEditor的问题HTML codeitsmTicketWp.cmlist new Ext.grid.ColumnModel([

小女子请问一个 Ext.ux.grid.RowEditor的问题

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就会在数据库新加一条记录或者覆盖以前的记录.这个可是你是说的有时有效 ,有时无效的结果.如果我猜的没错的话,你就要改改这个地方了.


如果是其他原因引起的,我就不太知道了.
另外监听canceledit时,如果你新增而且直接保存,会发生什么情况呢?
[解决办法]
好像有個屬性值 可以判斷是update 還是add 還是delete 的

热点排行