jqGrid - 自定义按钮中的URL仅适用于第一次

时间:2013-12-09 13:05:21

标签: jquery jqgrid

我有一个带有自定义按钮的网格。如果用户单击此按钮,我会调用发送代码的URL(我从所选行中获取),并根据代码显示另一个网格。问题是它只是在我第一次单击按钮时工作..如果我关闭窗口(使用第二个网格)并尝试选择另一行并再次单击该按钮,它将打开带有URL集的网格之前(我看过Firebug并且没有调用URL,看起来它是静态的或类似的东西)。这是我的代码:

GRID1

onClickButton: function(){ 
    var dados = $("#grid").jqGrid('getGridParam','selrow');
    var codigo = $("#grid").jqGrid('getCell', dados, 'codigo');
    if(dados){
        abreDialogUsuario(); //opens dialog
        mostraGridGruposUsuario(codigo); //shows grid on dialog passing the code by parameter               
    } 
}

grid2

function mostraGridGruposUsuario(codUsuario){ //gets the code
    alert(codUsuario);
    $("#grid_gruposUsuario").jqGrid({   
        datatype: 'json',
        url: 'teste.jsp?codUsuario='+codUsuario,
                ...
                ...
    }
}

注意:警报显示正确的codUsuario(无论选定行中的代码如何),但由于某种原因,它不会使用代码调用URL。

1 个答案:

答案 0 :(得分:1)

如果您希望能够使用新URL重新创建jqGrid,首先需要卸载旧URL,更改代码如下:

function mostraGridGruposUsuario(codUsuario) {
   alert(codUsuario);

   $('#grid_gruposUsuario').jqGrid('GridUnload');
   $("#grid_gruposUsuario").jqGrid({   
       datatype: 'json',
       url: 'teste.jsp?codUsuario=' + codUsuario,
       ...
   }
}

作为替代方案,您只能创建一次网格(例如在对话框初始化函数中),并且只在显示网格之前更改URL:

$("#grid_gruposUsuario").jqGrid('setGridParam', { url: 'teste.jsp?codUsuario=' + codUsuario }).trigger("reloadGrid");

选择最适合您的情景。