0

少し質問があります。Web アプリケーションがあります。グリッドにレジスタのリストを表示するときに、1 つのフィールドを変更でき、変更されたフィールドは bbdd に保存される必要があります。

私のコードは次です

 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");
                 }
            });
        }
    }


});

全てに感謝。

サーブレットにコードを貼り付けました:

 private void tratarPeticionesEntrantes(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    if(request.getParameter("Funcionalidad")==null || request.getParameter("Funcionaldiad")==""){
        RequestDispatcher rd=request.getRequestDispatcher("/jsp/PantallasGestion/tablaLotes.jsp");

        rd.forward(request,response);
    }else{
        System.out.println("prueba entrada");
        JSONObject json=tratarPeticion(request);
        System.out.println(json.toJSONString());
        PrintWriter escritorRespuesta=response.getWriter();
        escritorRespuesta.println(json.toJSONString());
        //escritorRespuesta.println();
        escritorRespuesta.flush();
        escritorRespuesta.close();
    }
}




//JSON

private JSONObject tratarPeticion(HttpServletRequest request){
    JSONObject respuesta=null;
    String parametroFuncionalidad=request.getParameter("Funcionalidad");
    System.out.println(request.getParameter("Funcionalidad"));

    if(parametroFuncionalidad!=null && parametroFuncionalidad!=""){
        if(parametroFuncionalidad.equalsIgnoreCase("CONSULTA")){
            respuesta=tratarPeticionConsulta(request);

        }else if(parametroFuncionalidad.equalsIgnoreCase("MODIFICAR")){
            respuesta=tratarPeticionModificacion(request);      
        }else if(parametroFuncionalidad.equalsIgnoreCase("INSERTAR")){
            respuesta=tratarPeticionAlta(request);
            System.out.println("aqui entra");
        }else if(parametroFuncionalidad.equalsIgnoreCase("ELIMINAR")){
            respuesta=tratarPeticionBaja(request);  
        }

    }
    return respuesta;       
}



private JSONArray tipoPapelesToArray(ArrayList<TablaLotes> papeles){
    JSONArray list = new JSONArray();
    for(int i=0;i<papeles.size();i++){
        JSONObject elemento1=new JSONObject();
        elemento1.put("NRBE",papeles.get(i).getEntidad());
        elemento1.put("APLIC",papeles.get(i).getAplicacion());
        elemento1.put("FORM",papeles.get(i).getFormulario());
        elemento1.put("VERFOR",papeles.get(i).getVersion());
        elemento1.put("FECLOT",papeles.get(i).getFecha_lote());
        elemento1.put("HORLOT",papeles.get(i).getHora_lote());
        elemento1.put("TIPPAPLO",papeles.get(i).getTipoPapel());
        elemento1.put("TAMPAP",papeles.get(i).getTamanoPapel());
        elemento1.put("FECINIIM",papeles.get(i).getFecha_inicio());
        elemento1.put("FECINIOB",papeles.get(i).getFecha_obligada());
        elemento1.put("ESTLOT",papeles.get(i).getEstado());
        elemento1.put("TOTPAGGE",papeles.get(i).getTotalPaginasGen());
        elemento1.put("TOTPAGIM",papeles.get(i).getTotalPaginasImpr());
        elemento1.put("DESLOT",papeles.get(i).getDescLote());
        elemento1.put("TIPDIF",papeles.get(i).getTipoDiferimiento());
        elemento1.put("DIADIF",papeles.get(i).getDiasDiferi());
        elemento1.put("FECALT",papeles.get(i).getFechaAlta());
        elemento1.put("FECMOD",papeles.get(i).getFechaModificacion());
        elemento1.put("TERMOD",papeles.get(i).getUsuarioModificacion());
        elemento1.put("HORMOD",papeles.get(i).getHoraModificacion());
        list.add(elemento1);
    }
    return list;
}


 private String[] obtenerCamposParaModificacion(HttpServletRequest request){
    ArrayList<String> elementosAux=new ArrayList<String>();
    if(request.getParameter("DPNrbe")!=null && request.getParameter("DPNrbe").trim()!="")
    {
        elementosAux.add("NRBE~"+request.getParameter("DPNrbe"));

    }

    if(request.getParameter("DPAplic")!=null && request.getParameter("DPAplic").trim()!="")
    {
        elementosAux.add("APLIC~"+request.getParameter("DPAplic"));

    }

    if(request.getParameter("DPForm")!=null && request.getParameter("DPForm").trim()!="")
    {
        elementosAux.add("FORM~"+request.getParameter("DPForm"));

    }


    if(request.getParameter("DPVerFor")!=null && request.getParameter("DPVerFor").trim()!="")
    {
        elementosAux.add("VERFOR~"+request.getParameter("DPVerFor"));

    }



    if(request.getParameter("DPFecLot")!=null && request.getParameter("DPFecLot").trim()!="")
    {
        elementosAux.add("FECLOT~"+request.getParameter("DPFecLot"));

    }



    if(request.getParameter("DPHorLot")!=null && request.getParameter("DPHorLot").trim()!="")
    {
        elementosAux.add("HORLOT~"+request.getParameter("DPHorLot"));

    }


    if(request.getParameter("DPTippApl")!=null && request.getParameter("DPTippApl").trim()!="")
    {
        elementosAux.add("TIPPAPLO~"+request.getParameter("DPTippApl"));

    }


    if(request.getParameter("DPTamPap")!=null && request.getParameter("DPTamPap").trim()!="")
    {
        elementosAux.add("TAMPAP~"+request.getParameter("DPTamPap"));

    }



    if(request.getParameter("DPFecinIm")!=null && request.getParameter("DPFecinIm").trim()!="")
    {
        elementosAux.add("FECINIIM~"+request.getParameter("DPFecinIm"));

    }


    if(request.getParameter("DPFeciNio")!=null && request.getParameter("DPFeciNio").trim()!="")
    {
        elementosAux.add("FECINIOB~"+request.getParameter("DPFeciNio"));

    }



    if(request.getParameter("DPEstLot")!=null && request.getParameter("DPEstLot").trim()!="")
    {
        elementosAux.add("ESTLOT~"+request.getParameter("DPEstLot"));

    }



    if(request.getParameter("DPTotPagge")!=null && request.getParameter("DPTotPagge").trim()!="")
    {
        elementosAux.add("TOTPAGGE~"+request.getParameter("DPTotPagge"));

    }


    if(request.getParameter("DPTotPagim")!=null && request.getParameter("DPTotPagim").trim()!="")
    {   
        elementosAux.add("TOTPAGIM~"+request.getParameter("DPTotPagim"));

    }


    if(request.getParameter("DPDesLot")!=null && request.getParameter("DPDesLot").trim()!="")
    {   
        elementosAux.add("DESLOT~"+request.getParameter("DPDesLot"));
    }

    if(request.getParameter("DPDesLot")!=null && request.getParameter("DPDesLot").trim()!="")
    {   
        elementosAux.add("DESLOT~"+request.getParameter("DPDesLot"));
    }

    if(request.getParameter("DPTipDif")!=null && request.getParameter("DPTipDif").trim()!="")
    {   
        elementosAux.add("TIPDIF~"+request.getParameter("DPTipDif"));
    }

    if(request.getParameter("DPDiaDif")!=null && request.getParameter("DPDiaDif").trim()!="")
    {   
        elementosAux.add("DIADIF~"+request.getParameter("DPDiaDif"));
    }

    String [] elementos=new String[elementosAux.size()];
    return elementosAux.toArray(elementos);
}


private JSONObject tratarPeticionModificacion(HttpServletRequest request){
    TablaLotesDAO papelDAO=new TablaLotesDAO();
    String [] camposAObtener={"TODOS"};
    String entorno="DESARROLLO";
    if(request.getParameter("Entorno")!=null && request.getParameter("Entorno").trim()!="")
        entorno=request.getParameter("Entorno");
    ArrayList<TablaLotes> papeles=papelDAO.obtenerParaModificar(obtenerCamposParaModificacion(request),entorno);

    JSONObject respuesta = new JSONObject();
    JSONArray list = tipoPapelesToArray(papeles);       
    respuesta.put("TiposPapel",list);
    return respuesta;
}

今私はこれを試しています:

    listeners: {
         edit: function(e, context){


             var record = context.record;

             var recordData = record.getData();

             recordData.Funcionalidad = 'Modificar';

             Ext.Ajax.request({
                 url: 'http://localhost:8080/MyMaver/ServletTablaLotes',
                 method: 'POST',
                 params: recordData,
                 success: function() { 
                    var text = response.responseText;
                    respuestaModificacion(text);
                 },
                 failure:  function() { /* ... */ },
                 exception: function () { /* ... */ }
             });
         }
        }
4

1 に答える 1

1

更新レコードを取得します。

storeTabla.getUpdatedRecords();

Sencha:レコードの更新

編集:

最後の更新をサーブレットに送信します。

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

                params: storeTabla.getUpdatedRecords();
                    ...
});

EDIT2:

すべてのデータ: storeTabla.getRange()

フィールドの更新: storeTabla.getUpdatedRecords()...

検査: storeTabla.getRange[0].dataデータが表示されます。

例:

var data = [];
var records = storeTabla.getRange();
Ext.Array.each(records,function(element,pos,array){
    data.push(element.data);
});

var dataParams = new Object();
dataParams.data = data;
dataParams.Funcionalidad = 'Modificar';
Ext.Ajax.request({
                    url: 'http://localhost:8080/MyMaver/xxxxxxxxxxxx',
                    method: 'POST',

                    params: dataParams;
                        ...
});
于 2013-06-10T14:29:49.993 に答える