我有一个带有自定义按钮的网格。如果用户单击此按钮,我会调用发送代码的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。
答案 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");
选择最适合您的情景。