少し質問があります。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 () { /* ... */ }
});
}
}