2013-06-11 7 views
0

У меня есть небольшая проблема, и в это время я решил проконсультироваться в sql каждый раз, когда обновляю строку с Ext.grid.plugin.RowEditing, я вставляю часть своего кода, где у меня есть моя проблема.EXT js edit row

var gridTablaConsulta = Ext.create('Ext.grid.GridPanel', { 
    title:'Consulta Tabla lotes', 
    store: storeTabla, 
    columns: [ 
     Ext.create('Ext.grid.RowNumberer'), 
     {text: "NRBE", width: 60, sortable: true, dataIndex: 'NRBE'}, 
     {text: "APLIC", width: 60, sortable: true, dataIndex: 'APLIC'}, 
     {text: "FORM", width: 60, sortable: true, dataIndex: 'FORM'}, 
     {text: "VERFOR", width: 60, sortable: true, dataIndex: 'VERFOR'}, 
     {text: "FECLOT", width: 60, sortable: true, dataIndex: 'FECLOT'}, 
     {text: "HORLOT", width: 60, sortable: true, dataIndex: 'HORLOT'}, 
     {text: "TIPPAPLO", width: 60, sortable: true, dataIndex: 'TIPPAPLO'}, 
     {text: "TAMPAP", width: 60, sortable: true, dataIndex: 'TAMPAP'}, 
     {text: "FECINIIM", width: 60, sortable: true, dataIndex: 'FECINIIM'}, 
     {text: "FECINIOB", width: 60, sortable: true, dataIndex: 'FECINIOB'}, 
     {text: "ESTLOT", width: 60, sortable: true, dataIndex: 'ESTLOT'}, 
     {text: "TOTPAGGE", width: 60, sortable: true, dataIndex: 'TOTPAGGE'}, 
     {text: "TOTPAGIM", width: 60, sortable: true, dataIndex: 'TOTPAGIM'}, 
     {text: "DESLOT", width: 60, sortable: true, dataIndex: 'DESLOT'}, 
     {text: "TIPDIF", width: 60, sortable: true, dataIndex: 'TIPDIF', editor: {xtype:'textfield', allowBlank:false}}, 
     {text: "DIADIF", width: 60, sortable: true, dataIndex: 'DIADIF', editor: {xtype:'textfield', allowBlank:false} }, 
     {text: "FECALT", width: 60, sortable: true, dataIndex: 'FECALT'}, 
     {text: "FECMOD", width: 60, sortable: true, dataIndex: 'FECMOD'}, 
     {text: "TERMOD", width: 60, sortable: true, dataIndex: 'TERMOD'}, 
     {text: "HORMOD", width: 60, sortable: true, dataIndex: 'HORMOD'} 
    ], 
    selType: 'rowmodel', 
    plugins: [ 
     Ext.create('Ext.grid.plugin.RowEditing', { 
      clicksToEdit: 2 
     }) 
    ], 

    listeners: { 
     edit: function(e){ 
      Ext.Ajax.request({ 
       url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
       method: 'POST', 

       params: { 
        Funcionalidad: 'Modificar', 
        DPNrbe: Ext.getCmp('DPNrbe').getValue(), 
        DPAplic: Ext.getCmp('DPAplic').getValue(), 
        DPForm:Ext.getCmp('DPForm').getValue(), 
        DPVersFor: Ext.getCmp('DPVerFor').getValue(), 
        DPFecLot: Ext.getCmp('DPFecLot').getValue(), 
        DPHorLot: Ext.getCmp('DPHorLot').getValue(), 
        DPTippApl: Ext.getCmp('DPTippApl').getValue(), 
        DPTamPap: Ext.getCmp('DPTamPap').getValue(), 
        DPFecinIm: Ext.getCmp('DPFecinIm').getValue(), 
        DPFeciNio: Ext.getCmp('DPFeciNio').getValue(), 
        DPEstLot: Ext.getCmp('DPEstLot').getValue(), 
        DPTotPagge: Ext.getCmp('DPTotPagge').getValue(), 
        DPTotPagim: Ext.getCmp('DPTotPagim').getValue(), 
        DPDesLot: Ext.getCmp('DPDesLot').getValue(), 
        DPTipDif: Ext.getCmp('DPTipDif').getValue(), 
        DPDiaDif: Ext.getCmp('DPDiaDif').getValue(), 
        Entorno: Ext.getCmp('Entorno').getValue() 
       }, 
       success: function(){ 

         var text = response.responseText; 
         // process server response here 
         respuestaModificacion(text); 

        }, 
        failure: function(){ 
        alert("Desde failure"); 
        }, 
        exception: function(){ 
        alert("Desde exception"); 
       } 
      }); 
     } 
    } 


}); 

У меня есть проблема в той части, где я должен сохранить изменения, которые я сделал в ROX когда я нажимаю обновление. Я думаю, что этот DPNrbe: Ext.getCmp ('DPNrbe'). GetValue() неверен, но что я должен сделать здесь, чтобы исправить sql consult.

Мне нужно сохранить все значения строки даже без лагерей изменения, потому что я должен сделать следующий совет в sql (обновление с значениями изменений).

Спасибо за все.

ответ

0

Действительно, у вас нет полей редактора для каждого из ваших столбцов, поэтому вы не можете получить доступ к значению ячейки таким образом. Но вы видите в документе edit, что он передает аргументу context слушателю, в котором вы можете получить доступ к редактируемой записи магазина.

Например:

 edit: function(e, context){ 

      // see edit event doc 
      var record = context.record; 

      // get the row's data (will be updated from the last edit) 
      var recordData = record.getData(); 

      console.log(recordData); // see what's in there 

      // add custom param 
      recordData.Functionalidad = 'Modificar'; 

      Ext.Ajax.request({ 
       url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
       method: 'POST', 

       // merge row data with other params 
       params: recordData, 

       // callbacks code omitted 
       success: function() { /* ... */ }, 
       failure: function() { /* ... */ }, 
       exception: function() { /* ... */ } 
      }); 
     } 

Кроме того, просто совет, возможно, вам следует рассмотреть возможность использования jsonData вместо params в запросе, так как JSON может спасти вас некоторые раздражает строка бросает на стороне сервера.

+0

Я вообще не понимаю, достаточно кода, который вы вставили? С другой стороны, я использовал json в сервлете. – Deckard27

+0

Да, этого должно быть достаточно. Я отредактировал свой примерный код, чтобы сделать его более простым и явным. Возможно, вам следует прочитать [руководство по сетке] (http://docs.sencha.com/extjs/4.2.1/#!/guide/grid), что также объясняет магазины и модели. – rixo

+0

Спасибо, я попробую, с этим кодом я обгоню все лагеря? даже без изменений? – Deckard27