¿Cómo agrego un botón 'Guardar' a un Panel de cuadrícula del editor en Ext JS?

Necesito agregar un botón 'Guardar' a mi panel de cuadrícula Editor. Todo lo que he probado no funciona. Gracias por tu ayuda. Aquí está mi código.

var iLineItemGrid = new Ext.grid.EditorGridPanel({
    id: 'iLineItemStore',
    store: iLineItemStore,
    cm: iLineItemCM,
    cls: 'iLineItemGrid',
    width: 'auto',
    height: 'auto',
    frame: true,
    //title:'Edit Plants?',
    //plugins:checkColumn,
    clicksToEdit:1,
    viewConfig: {
        //forceFit: true
        autoFit:true
    },        
    tbar:  [{
        text: 'Add',
        tooltip:'Add the line item',
        handler : function(){
            var r = new iLineItemRec({
                i_line_item_name: '',
                i_line_item_amt: ''
            });
            iLineItemGrid.stopEditing();
            iLineItemStore.insert(0, r);
            iLineItemGrid.startEditing(0, 0);
        },
        //Should this be scope:this or scope:iLineItemGrid?
        scope:iLineItemGrid
    }, {
        text: 'Delete',
        tooltip:'Remove the selected line item',
        handler: function(){
            iLineItemGrid.stopEditing();
            var r = iLineItemGrid.getSelectionModel().getSelectedCell();
            iLineItemStore.removeAt(r[1]);
        },
        //Should this be scope:this or scope:iLineItemGrid?
        scope:iLineItemGrid
    }],
    //MIKE SAVE BUTTON
    buttons: [{
        text: 'Save',
        tooltip: 'Click to save all changes to the database',
        handler: function() {
            iLineItemStore.each(function(record) {
                Ext.Ajax.request({
                    url: 'UpdateInvoiceDataAction.do',
                    //ADD AN ALERT TEXT HERE TO TEST IT
                    success: function() {
                        iLineItemGrid = false;
                        Ext.MessageBox.hide();
                        Ext.MessageBox.alert('Success', 'This record has been saved');
                    },
                    failure: function() {
                        iLineItemGrid.isLoaded = false;
                        cmh.display(action.result);
                    },
                    callback: function(records, options, success) {
                        //SOMEWHERE IN HERE POPULATE THE 'AMOUNT DUE' textfield
                        //How do I set this value?
                        Ext.getCmp('iAmountDue').setValue(Toa.Application.invId)
                    },
                    params: record.data
                });
            }
            )
        },
        //Should this be scope:this or scope:iLineItemGrid?
        scope:iLineItemGrid
    }]            
});

preguntado el 31 de julio de 12 a las 13:07

¿Qué es exactamente lo que no funciona? ¿El botón no se agrega a su panel o el botón que agregó simplemente no funciona como se esperaba? Agregue más detalles sobre su comportamiento esperado para que podamos ayudarlo mejor. -

Hola Daniel, El botón no funciona como debería. Estaba pensando que debería hacer que el botón Guardar fuera de la tbar en su lugar. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.