在jqgrid" reloadGrid"之后将数据重新加载到文本框动作

时间:2016-08-03 19:49:41

标签: asp.net json jqgrid

我使用模态表单来更新/创建我的记录" 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;
&#13;
&#13;

我尝试使用editRow动作来强制进行行选择,我试图将焦点设置为网格,没有什么可以做的。

2 个答案:

答案 0 :(得分:0)

解决方法是使用最后选择的元素的ID标识每个字段,并使用document.getElementById('controlID')为每个控件分配适当的值.value = some_json_returned_data; 但这仍然没有解决网格行选择问题,似乎并不是一种“最佳实践”方式。

答案 1 :(得分:0)

编码&#34; loadComplete&#34; qgrid的方法解决了这两个问题:

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

选择了所需的行,并在其他控件中填充了相关数据。