我使用模态表单来更新/创建我的记录" reloadGrid"方法使网格enter image description here能够从模态中刷新" save"但是,布顿 1)我的表格下面没有更新。 2)未选中jqGrid表上最后选择的行。
我试图手动强制选择行 jQuery(' #grid')。jqGrid(' setSelection',selRowID,true); 但是选中的行返回null。 下面是保存更新记录的函数,用于触发网格和控件更新:
//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); }
});
&#13;
我尝试使用editRow动作来强制进行行选择,我试图将焦点设置为网格,没有什么可以做的。
答案 0 :(得分:0)
解决方法是使用最后选择的元素的ID标识每个字段,并使用document.getElementById('controlID')为每个控件分配适当的值.value = some_json_returned_data; 但这仍然没有解决网格行选择问题,似乎并不是一种“最佳实践”方式。
答案 1 :(得分:0)
编码&#34; loadComplete&#34; qgrid的方法解决了这两个问题:
loadComplete: function () {
if ($('#btnModifierProfile').val() != "")
jQuery('#grid').jqGrid('setSelection', $('#btnModifierProfile').val());
},
&#13;
选择了所需的行,并在其他控件中填充了相关数据。