日期:2014-05-16  浏览次数:20530 次

紧急求助!!ExtJS grid triggerfield的问题
现在我有一个grid,里面一列的editor是triggerfield,点击triggerfield的按钮的时候,会弹出一个窗口显示数据让用户选择,然后把选中的数据写到grid对应的栏位里去。


现在问题是,我的grid 的plugin是cellediting,cellediting的‘edit'事件在点击triggerfield的按钮的时候就触发,但是这个时候用户还没有输入值(我希望的是选择的值填入到栏位以后再触发'edit’事件,但是现在正好相反,窗口弹出的同时‘edit'的事件就触发了).

请大家教一下我该怎么实现这个功能.或者给我一个类似的在grid中使用triggerfield的例子

------解决方案--------------------
你可以自己根据情况来validateEdit 来组织edit是否触发

   onEditComplete : function(ed, value, startValue) {
        var me = this,
            grid = me.grid,
            activeColumn = me.getActiveColumn(),
            sm = grid.getSelectionModel(),
            record;

        if (activeColumn) {
            record = me.context.record;
            me.setActiveEditor(null);
            me.setActiveColumn(null);
            me.setActiveRecord(null);    
            if (!me.validateEdit()) {
                return;
            }
            if (!record.isEqual(value, startValue)) {
                record.set(activeColumn.dataIndex, value);
            }
            if (sm.setCurrentPosition) {
                sm.setCurrentPosition(sm.getCurrentPosition());
            }
            grid.getView().getEl(activeColumn).focus();
            me.context.value = value;
            me.fireEvent('edit', me, me.context);
        }
    },