2016-08-03 15 views
0

Ich benutze eine modale Form meine Aufzeichnungen zu aktualisieren/erstellen „reloadGrid“ Methode das Gitter enter image description here ermöglicht die modal „Speichern“ zu aktualisieren aus Bouton, aber 1) meine untenstehende Formular aus wird nicht aktualisiert. 2) Die letzte ausgewählte Zeile in der Tabelle jqGrid wird nicht ausgewählt.Reload Daten Textbox nach jqGrid „reloadGrid“ Aktion

Ich versuchte manuell erzwingen die Zeile mit jQuery ('# Raster') ausgewählt werden. JqGrid ('setSelection', selRowID, true); , aber die ausgewählte Zeile gibt null zurück. Unten ist die Funktion, die den aktualisierten Datensatz speichert und suposed wird das Gitter und die Kontrollen Aktualisierung auslösen:

//function SauvegarderMessage(IDMessage) { 
 
function ModifierDemandeur() { 
 
    //console.log("Modifier"); 
 

 
    var xCodeDdeur = $('#txtCode_Demandeur').val(); 
 
    var xAddDdeur = $('#txtAdresse_Demandeur').val(); 
 
    var xIDVille = $('#cbxVille_Demandeur').val(); 
 
    var xIDProv = $('#cbxProvince_Demandeur').val(); 
 
    var xCPDdeur = $('#txtCodePostal_Demandeur').val(); 
 
    var xTel1Ddeur = $('#txtTel1_Demandeur').val(); 
 
    var xTel2Ddeur = $('#txtTel2_Demandeur').val(); 
 
    var xTel3Ddeur = $('#txtTel3_Demandeur').val(); 
 
    var xCour1Ddeur = $('#Courriel1_Demandeur').val(); 
 
    var xCour2Ddeur = $('#Courriel2_Demandeur').val(); 
 
    var xCour3Ddeur = $('#Courriel3_Demandeur').val(); 
 
    var xIDSitMat = $('#cbxSitMat_Demandeur').val(); 
 
    var xIDSexe = $('#cbxSexe_Demandeur').val(); 
 
    var xDteNais = $('#txtDteNaissance').val(); 
 
    var xRevDdeur = $('#txtrevenu_demandeur').val(); 
 
    var xIDOcc = $('#cbxOccupation_Demandeur').val(); 
 
    var xIDScol = $('#cbxScolarite_Demandeur').val(); 
 
    var xIDStatLegal = $('#cbxStatutLegal_Demandeur').val(); 
 
    var xIDComm = $('#cbxCommunaute_Demandeur').val(); 
 
    var xIDSceInfo = $('#cbxSourceInformation_Demandeur').val(); 
 
    var xHandicape = $('#cbHandi').val(); 
 
    var xRef = $('#txtReference_Demandeur').val(); 
 
    var xRemDdeur = $('#Remarques_Demandeur').val(); 
 

 

 
    $.ajax({ 
 
     type: "POST", 
 
     url: "../Conseiller/UpdateDemandeurs", 
 
     data: { 
 

 
      Code_Demandeur: xCodeDdeur, 
 
      Adresse_Demandeur: xAddDdeur, 
 
      ID_Ville: xIDVille, 
 
      ID_Province: xIDProv, 
 
      CodePostal_Demandeur: xCPDdeur, 
 
      Tel1_Demandeur: xTel1Ddeur, 
 
      Tel2_Demandeur: xTel2Ddeur, 
 
      Tel3_Demandeur: xTel3Ddeur, 
 
      Courriel1_Demandeur: xCour1Ddeur, 
 
      Courriel2_Demandeur: xCour2Ddeur, 
 
      Courriel3_Demandeur: xCour3Ddeur, 
 
      ID_SituationMatrimoniale: xIDSitMat, 
 
      ID_Sexe: xIDSexe, 
 
      Date_Naissance_Demandeur: xDteNais, 
 
      Revenu_Demandeur: xRevDdeur, 
 
      ID_Occupation: xIDOcc, 
 
      ID_Scolarite: xIDScol, 
 
      ID_StatutLegal: xIDStatLegal, 
 
      ID_Communaute: xIDComm, 
 
      ID_SourceInformation: xIDSceInfo, 
 
      Handicape: xHandicape, 
 
      Reference: xRef, 
 
      Remarques_Demandeur: xRemDdeur, 
 
     }, 
 
     dataType: "json", 
 
     success: function (data) { 
 
      //console.log(data) 
 
      //console.log(data.rows); 
 
      $('#modifierProfilModal').modal('hide'); 
 
      if (data != null) { 
 
       jQuery('#grid').jqGrid('clearGridData') 
 
         .jqGrid('setGridParam', { data: data, datatype: 'json' }) 
 
         .trigger('reloadGrid') 
 
       for (var i = 0; i < data.Data.records; i += 1) { 
 
        var selRowID = data.Data.rows[i].Code_Demandeur; 
 
        var selectedRowID = $('#btnModifierProfile').val(); 
 
        if (selRowID == selectedRowID) { 
 
         //jQuery('#grid').jqGrid('setSelection', selRowID, true);      
 
         var selr = jQuery('#grid').jqGrid('getGridParam', 'selrow'); 
 
         console.log('Ligne sélectionnée: ' + selr); 
 
         return; 
 
        } 
 
       } 
 
      } 
 
     }, 
 
     error: function (err) { console.log(err); } 
 
    });

habe ich versucht EditRow Aktion Zeilenauswahl zu zwingen, habe ich versucht Fokus einzustellen das Raster würde nichts tun.

Antwort

0

Eine Umgehung wäre, jedes Feld mit der ID des letzten ausgewählten Elements zu identifizieren und jedem Steuerelement den entsprechenden Wert zuzuweisen, indem man document.getElementById ('controlID') verwendet. Value = some_json_returned_data; Aber dies löst immer noch nicht das Grid-Zeilenauswahlproblem und scheint keine "Best Practice" -Methode zu sein.

0

die "Loadcomplete" Methode der qgrid Coding aufgelöst sowohl Ausgabe:

 loadComplete: function() { 
 
      if ($('#btnModifierProfile').val() != "") 
 
       jQuery('#grid').jqGrid('setSelection', $('#btnModifierProfile').val()); 
 
     },

gewünschte Zeile ausgewählt wird, und die zugehörigen Daten in anderen Steuerungen besiedelt.