大佬教程收集整理的这篇文章主要介绍了jquery – jqGrid动态解析网格寻呼机ID?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
//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'); }); } });
有什么建议吗?
如果以任何方式找到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,请注明来意。