jqGrid resolve dinamicamente o ID do pager da grade?
Tenho 3 perguntas simples.
Eu tenho um código que informa se um objeto jqGrid está presente na página:
//Check if there is a jqGrid on the page and if present, reloads its data ;)
var jqGrid = $('div.ui-jqgrid-bdiv table');
if (jqGrid.length) {
//time to reload
$(jqGrid).trigger('reloadGrid');
}
Gostaria de encontrar o elemento de identificação do pager, se houver um. Há alguma maneira de fazer isso
Suponha que eu tenha uma classe personalizada na minha tabela jqGrid:
<table id="myGrid" runat="server" class="customclass"></table>
<div id="myGrid_pager" runat="server"></div>
Como verifico a presença de classe personalizada dentro do meu jqGrid dinamicamente?
EDITAR
om a ajuda do Oleg, consegui codificar umreconfigPermissions()
função que mostra / oculta os botões padrão Adicionar, Editar e Excluir. Aqui está a função:
function reconfigPermissions(gridID) {
var enableRegistry = CanModifyRegistry();
var ops = ['#add_' + gridID, '#edit_' + gridID, '#del_' + gridID];
$.each(ops, function (ix, value) {
var $td = $(value);
if (enableRegistry === true) {
$td.show();
} else {
$td.hide();
}
});
}
Essa função é chamada quando o usuário seleciona outro intervalo de datas em uma caixa de combinação definida em outro local da página. O problema é o seguinte: se, quando a grade for carregada inicialmente, o usuário tiver direitos ao período padrão (selecionado na caixa de combinação) tudo funcionará. Você pode alterar o período no combo e os botões aparecem e desaparecem corretamente. Infelizmente, se o usuário não tiver direitos no período padrão inicialmente selecionado (a primeira criação da grade terá{add: false, edit: false, del: false}
) mesmo mudar para um período em que o usuário tenha direitos não adiciona os botõe
Este é o código vinculado à caixa de combinaçãochange
manipulador de eventos
$.ajax({
url: GetBaseWSUrl() + 'MyWebService.asmx/ChangeCurrentPeriod',
type: "post",
dataType: "json",
async: false,
data: JSON.stringify({ periodID: $(this).val() }),
contentType: "application/json; charset=utf-8",
success: function (data) {
//Check if there is a jqGrid on the page and if present, reloads its data
var jqGrids = $('div.ui-jqgrid-bdiv table');
jqGrids.each(function (ix, jqGrid) {
var gridID = $.jgrid.jqID(jqGrid.id)
reconfigPermissions(gridID);
jqGrid.trigger('reloadGrid');
});
}
});
Alguma sugestão