jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – jqGrid动态解析网格寻呼机ID?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有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表中有一个@L_696_5@类:

<table id="myGrid" runat="server" class="customcatlass"></table>
<div id="myGrid_pager" runat="server"></div>

如何动态检查jqGrid中是否存在customcatlass?

编辑:

有了Oleg的帮助,我能够编写一个reconfigPermissions()函数显示/隐藏认的@L_772_11@,编辑和删除按钮.这是功能

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}),即使切换到用户拥有权限的时段也不会@L_772_11@按钮都没有.

这是绑定到组合框更改事件处理程序的代码

$.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');
        });
    }
});

有什么建议吗?

解决方法

您可以通过多种方式在页面上找到jqGrids.例如,您可以使用$(‘table.ui-jqgrid-btable’)而不是$(‘div.ui-jqgrid-bdiv table’).此外,你不应该忘记它可以更多地作为页面上的一个jqGrid.我建议您编写代码,以便它可以与页面的许多jqGrids一起使用,即使您当前每页只使一个jqGrid.

如果以任何方式找到jqGrid的table元素,您可以使用jqGrids [0]获取一个找到的网格的DOM元素. jqGrid使用DOM的一些扩展器.它@L_772_11@了额外的属性grid和p.在每个jqGrid方法中,将通过验证网格属性是否存在来检查网格是否已初始化. p属性为您提供包含p.pager的所有jqGrid参数.您最多可以在网格上创建两个寻呼机:一个位于网格的顶部边缘,另一个位于底部(有关详细信息,请参阅this).所以你需要的代码看起来像

var jqGrids = $('table.ui-jqgrid-btable');
if (jqGrid.length > 0) {
    jqGrid.each(function(i) {
        if (this.grid) {
            // one more test for the jqGrid
            // jqGrid[i] is a jqGrid
            if (this.p.toppager) {
                // this.id + '_toppager' is the id of the top pager
            }
            if (this.p.pager) {
                // this.p.pager is the id of the bottom pager
            }
        }
    });
}

要测试table元素是否具有某个customcatlass类,可以使用jQuery.hasClass.

更新:在评论中,您问我如何隐藏或动态显示导航栏中的按钮.我准备了the demo,证明了这一点:

如果检查放置在网格上方的按钮,则导航栏中的相应按钮将被隐藏.取消选中将显示相应的按钮.

代码只需调用$(‘#add_list’).hide()或$(‘#add_list’).show()来隐藏/显示“@L_772_11@”按钮.在示例中,id =“add_list”的最后一部分是< table>的id.用于创建网格的元素.其他标准按钮的ID以以下前缀开头:’edit_’,’view_’,’del_’,’search_’,’refresh_’.如果网格的id具有特殊字符,则更常用的代码如下所示:

var grid = $("#list"),gid = $.jgrid.jqID(grid[0].id);

$('#cbAdd').change(function () {
    var $td = $('#add_' + gid);
    if ($(this).is(':checked')) {
        $td.hide();
    } else {
        $td.show();
    }
});

要查找navButtonAdd@L_772_11@的@L_696_5@导航器按钮,我使用title属性

$('#cbChoosecolumns').change(function () {
    var $td = $(grid[0].p.pager + '_left ' + 'td[title="choose columns"]');
    if ($(this).is(':checked')) {
        $td.hide();
    } else {
        $td.show();
    }
});

大佬总结

以上是大佬教程为你收集整理的jquery – jqGrid动态解析网格寻呼机ID?全部内容,希望文章能够帮你解决jquery – jqGrid动态解析网格寻呼机ID?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。