我有 3 个简单的问题。
我有一些代码告诉我页面中是否存在 jqGrid 对象:
//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'); }
如果有,我想找到寻呼机 ID 元素。有没有办法做到这一点?
假设我的 jqGrid 表中有一个自定义类:
<table id="myGrid" runat="server" class="customclass"></table> <div id="myGrid_pager" runat="server"></div>
如何动态检查 jqGrid 中是否存在 customclass?
编辑:
在 Oleg 的帮助下,我已经能够编写一个reconfigPermissions()
显示/隐藏默认添加、编辑和删除按钮的函数。这是功能:
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();
}
});
}
当用户在页面其他地方定义的组合框中选择另一个日期范围时,将调用此函数。问题如下:如果最初加载网格时,用户有权使用默认时间段(在组合框中选择)一切正常。您可以在组合中切换日期范围,按钮会正确显示和消失。不幸的是,如果用户对最初选择的默认时间段没有权限(因此第一次创建网格有{add: false, edit: false, del: false}
),即使切换到用户拥有权限的时间段也根本不会添加按钮。
这是绑定到组合框change
事件处理程序的代码
$.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');
});
}
});
有什么建议吗?