Jqgrid: Assign value to Postdata

Asked

Viewed 715 times

0

I’m having trouble setting values in postData of a Jqgrid, below are the creation of the grid, the received JSON and the function that changes the value along with the reloadGrid.

Creation of the Jqgrid:

    var listar = '1';

    jQuery("#grid_especialidade").jqGrid({
            url:'odo_prs0169b.asp',
            mtype: 'GET',
            postData: { "COD_PRESTADOR_TS": function () { return $("#cod_prestador_ts").val(); },
                        "COD_OPERADORA": function () { return $("#cod_operadora_atual").val(); },
                        "listar": function () { return listar; },
                        "txtJSON": function () { return $('#txtJSON').val(); }

            },      
        datatype: "json",
            colNames:[      'Nome'
                        ,   'Principal?'
                        ,   'Divulga?'
                        ,   'Especialista'
                        ,   'Data Início'
                        ,   'Data Fim'
                        ,   'Observação'
                        ,   'Proc.'
                        ,   'Instituição de Ensino'
                        ,   'Título Especialização'
                        ,   'Excluir'
                        // Campos invisíveis
                        , 'Código Especialidade'
                     ],
            colModel:[
                    {name:'NOME_ESPECIALIDADE', index:'NOME_ESPECIALIDADE', width:400}
                ,   {name:'IND_ESP_PRINCIPAL', index:'IND_ESP_PRINCIPAL', width:65, align:'center', classes: 'campoCheck', edittype: 'checkbox', editoptions: { value: "S:N" }, formatter: "checkbox", formatoptions: { disabled: false}}
                ,   {name:'IND_DIVULGACAO_HAB', index:'IND_DIVULGACAO_HAB', width:60, align:'center', classes: 'campoCheck', edittype: 'checkbox', editoptions: { value: "S:N" }, formatter: "checkbox", formatoptions: { disabled: false}}
                ,   {name:'NOME_ESPECIALISTA', index:'NOME_ESPECIALISTA', width:200, editable: true}
                ,   {name:'DATA_INI_HAB', index:'DATA_INI_HAB', width:75, align:'center', editable: true }
                ,   {name:'DATA_FIM_HAB', index:'DATA_FIM_HAB', width:75, align:'center', editable: true}
                ,   {name:'TXT_OBS_NAO_DIVULGACAO', index:'TXT_OBS_NAO_DIVULGACAO', width:500, editable: true}


                ,   {name:'ITEM_MEDICO',index:'ITEM_MEDICO',width:100, align:'center', formatter: function(cell, options,row, rowid) 
                                                                                                 { 
                                                                                                    var vLink = "http://223.223.2.160/ace/ace005a.asp?/odo_prs/asp/odo_prs0168h.asp?PT=Consulta Procedimentos Habilitados&cod_espec=" + cell + "&ind_tipo=1" + "&Titulo=Consulta Procedimentos Habilitados" ;
                                                                                                    return "<a href='" + vLink + "' target='_blank'><img src='../../odo_gen/img/proc.gif' border='none'/></a>" 

                                                                                                 }
                    }


                ,   {name:'COD_INSTITUICAO',index:'COD_INSTITUICAO', width:400, align:"center", editable: true, formatter:'select', edittype:'select', editoptions:{value:CarregaInstituicao()}}
                ,   {name:'TITULO_ESPECIALIZACAO',index:'TITULO_ESPECIALIZACAO', width:200, editable: true}
                ,   {name:'IND_EXCLUIR',index:'IND_EXCLUIR' , width:50, align:'center', classes: 'campoCheck', edittype: 'checkbox', editoptions: { value: "S:N" }, formatter: "checkbox", formatoptions: { disabled: false}}
                // Campos invisíveis
                ,   {name:'COD_ESPECIALIDADE', index:'COD_ESPECIALIDADE', width:50, hidden:true, key:true}
            ],             


        gridComplete: function(rowid){
            rowDataIniGrid = $('#grid_especialidade').jqGrid('getRowData', rowid);
        },

        jsonReader: {
            repeatitems: false,
            root: function (obj)    { return obj.Items[0].items; },
            page: function (obj)    { return obj.Items[0].page; },
            total: function (obj)   { return obj.Items[0].total; },
            records: function (obj) { return obj.Items[0].records; }
        },  
        rowNum: 50,
        width:1000,
        height: 300,
        shrinkToFit: false,
        gridview: true,
        rownumbers: false,
        loadonce: true,
        sortable: true,
        rowList: [50, 100, 150],            
        recordtext: "Vendo {0} - {1} de {2}",
        viewrecords: true,
        emptyrecords: "Não foi encontrado nenhum registro",
        loadtext: "Carregando...",
        autowidth: false,
        pgtext: "Pagina {0} de {1}",
        loadError: function (xhr, st, err) { 
          alert("Erro ao carregar grid de especialidades: "+st+" -  "+ xhr.status + " "+xhr.statusText)
        },       
        pager: jQuery('#pager'),
        cellsubmit: 'clientArray',
        sortname: 'COD_ESPECIALIDADE',
        sortorder: "asc",
        caption:"Especialidades",
        cellEdit: true,


        afterSaveCell: function(rowid,name,val,iRow,iCol) {
            montaXML();
        },


        afterEditCell: function (id,name,val,iRow,iCol){
            if(name=='DATA_INI_HAB') 
            {
                jQuery("#"+iRow+"_DATA_INI_HAB","#grid_especialidade").datepicker({dateFormat:"dd/mm/yy"});

            }

            if(name=='DATA_FIM_HAB') 
            {
                jQuery("#"+iRow+"_DATA_FIM_HAB","#grid_especialidade").datepicker({dateFormat:"dd/mm/yy"});

            }   

        }

    })

    jQuery("#grid_especialidade").jqGrid('navGrid',"#pager",{edit:false,add:false,del:false,search:false,refresh:false});


});

JSON generated (please click on the JSON link).

Function that will perform the gets and set and the reaload of the grid:

function exibeGrid() {
    var cod_prestador_ts = document.getElementById('cod_prestador_ts').value
    var cod_operadora    = document.getElementById('cod_operadora_atual').value;
    document.getElementById('txtJSON').value = document.getElementById('txtJSON_' + cod_operadora).value;   

    // Aqui pego o grid
    var data = $("#grid_especialidade").jqGrid("getGridParam", "postData");


    // Aqui estou setendo os valores que quero no parâmetro
    data.COD_OPERADORA = "1";
    data.COD_PRESTADOR_TS= "1096369";
    data.listar = "2";
    data.txtJSON = '{""Items"":[{""page"":1,""total"":1,""records"": 1 ,""items"":[{""NOME_ESPECIALIDADE"":""CIRURGIA"",""COD_ESPECIALIDADE"":""1"",""IND_ESP_PRINCIPAL"":""S"",""IND_DIVULGACAO_HAB"":""N"",""NOME_ESPECIALISTA"":""NOME_ESPECIALISTA"",""DATA_INI_HAB"":""30/05/1990"",""DATA_FIM_HAB"":"""",""TXT_OBS_NAO_DIVULGACAO"":"""",""ITEM_MEDICO"":""1"",""COD_INSTITUICAO"":"""",""TITULO_ESPECIALIZACAO"":""TESTE"",""IND_EXCLUIR"":""N"" }]}]}';

    // Aqui pego os valores acima e atribuo a grid.
    $("#grid_especialidade").jqGrid('setGridParam',{postData:data}).trigger("reloadGrid");


}   

Done all the above steps when it goes through the function exibeGrid(), the same not this recitals the values I am setting in the grid.

1 answer

0


I performed the adjustment as follows, I put the values in an array and at the time of XML generation I created a dynamic variable keeping the corresponding XML values.

Thank you.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.