响应式jqGrid,带有引导类到列标题
我有以下简单的jQGrid。 我需要的只是响应表,其中一些列隐藏在移动视图中,使用bootstrap辅助类(如hidden-xs)
var gridInfoJSON = JSON.parse($('#hdn-categorysummary').val()); var catGrid= jQuery("#categorysummary").jqGrid({ url: '/Category/GetCategories/', datatype: 'json', mtype: 'POST', colNames: ["Id", "Active", "Name", "Duration"], colModel: [ { name: 'Id', index: 'Id', hidden: true }, { name: 'IsActive', index: 'IsActive', align: 'center', formatter: activeCheckBoxFormatter, sortable: false,classes:'col-sm-1' }, { name: 'CategoryName', index: 'CategoryName', formatter: generateCategoryNameLink, sortable: false }, { name: 'ComboDuration', index: 'ComboDuration', classes:'hidden-xs' , align: 'center', sortable: false } ], jsonReader: { id: 'Id', repeatitems: false }, height: "100%", width: "100%", rownumbers: true, rowNum: 1000, sortname: 'Id', caption: 'BookingCategories', loadComplete: function () { var table = this; setTimeout(function () { updatePagerIcons(table); var targetWidth = $(".page-content").width() - 20; $('#categorysummary').jqGrid('setGridWidth', targetWidth); $('#categorysummary').parents('div.ui-jqgrid-bdiv:first').width(targetWidth + 1); }, 0); }, gridComplete:function(){ applyClassesToHeaders(catGrid); }, sortorder: 'asc', viewrecords: true
要为移动设备隐藏的ComboDuration列。 所以我尝试了从gridComplete事件调用的以下代码。
var applyClassesToHeaders = function (grid) { var trHead = jQuery("thead:first tr", grid.hdiv); var colModel = grid.getGridParam("colModel"); for (var iCol = 0; iCol < colModel.length; iCol++) { var columnInfo = colModel[iCol]; if (columnInfo.classes) { var headDiv = jQuery("th:eq(" + iCol + ")", trHead); headDiv.addClass(columnInfo.classes); } } };
它成功地将类添加到头部,但遗憾的是jgGrid生成如下代码