/** * 序号列宽度自适应 * @param gridid jqgridid */ function autornwidth(gridid){ var page = $("#"+gridid).jqgrid('getgridparam','page'); var rows = $('#'+gridid).getgridparam("rownum"); var maxnum = (rows*page).tostring(); var len = (maxnum.length)*10; $('.jqgfirstrow').find('td').eq(0).css('width',len+'px'); $('#'+gridid+'_rn').css('width',len+'px'); } /** * 当数据只有一条时默认选中 * @param gridid */ function selectbyonedata(gridid){ var num = $("#"+gridid).jqgrid('getgridparam', 'records'); if (num == 1){ var ids = jquery("#"+gridid).jqgrid('getdataids'); $("#jqg_"+gridid+"_"+ids[0]).attr('checked',true); $("#"+gridid).jqgrid('setselection',ids[0]); } } function getgridcolumvalue(gridid,columname){ var rowids = $("#"+gridid).jqgrid('getgridparam', 'selarrrow'); if (rowids.length < 1){ return ""; } var str = ""; for (var i = 0;i < rowids.length; i++){ var rowdata = $("#"+gridid).jqgrid('getrowdata', rowids[i]); str += rowdata[columname]+","; } if (str != ""){ str = str.substring(0,str.length-1) } return str; } function batchswitchstatus(gridid, namecolum, statuscolum, status, info){ var rowids = $("#"+gridid).jqgrid('getgridparam', 'selarrrow'); if (rowids.length < 1){ top.$.hn.message.alert("请选择要"+status+"的" + info, "","warn"); return; } var str = ""; var names = ""; var infos = new array(); var j=0; for (var i = 0; i < rowids.length; i++) { var rowdata = $("#"+gridid).jqgrid('getrowdata', rowids[i]); var temp = rowdata[statuscolum].replace(/<.*?>/ig,""); if (status != temp){ if(j<3){ names += rowdata[namecolum]+"
"; if(j==2){ names += "..."; } } str += rowids[i]+","; j++; } } if (names != ""){ names = names.substring(0,names.length-1); str = str.substring(0,str.length-1) } else { top.$.hn.message.alert("您选择的" + info + "已经是" + status + "状态","", "warn"); return; } infos[0] = str; infos[1] = names; return infos; } $(function(){ $.extend($.jgrid.defaults,{ mtype:"post", datatype:"json", autowidth: true, height: 270, rownum: 20, rowlist: [20, 50, 100], rownumbers: true, pager: "#gridpage", viewrecords: true, gridcomplete:function(){ var gridid = $(this).jqgrid("getgridparam","id"); autornwidth(gridid); $(".ui-jqgrid-bdiv table,.ui-jqgrid-htable").css("width",$(".ui-jqgrid-bdiv table").width()-1); }, onpaging:function() { var gridid = $(this).jqgrid("getgridparam","id"); var records = $(this).jqgrid("getgridparam","records"); var rownum = $(this).jqgrid("getgridparam","rownum"); var page = $("#gridpage td[dir=ltr] input[class=ui-pg-input]").val(); var pn = records % rownum == 0 ? records/rownum : parseint(records/rownum) + 1; if(page > pn) {// 当跳页值大于总页码查询最后一页 $("#" + gridid).setgridparam({page:pn}).trigger("reloadgrid"); } } }); }); //jqgrid 列合并 function merger(gridname, cellname) { //得到显示到界面的id集合 var mya = $("#" + gridname + "").getdataids(); //当前显示多少条 var length = mya.length; for (var i = 0; i < length; i++) { //从上到下获取一条信息 var before = $("#" + gridname + "").jqgrid('getrowdata', mya[i]); //定义合并行数 var rowspantaxcount = 1; for (j = i + 1; j <= length; j++) { //和上边的信息对比 如果值一样就合并行数+1 然后设置rowspan 让当前单元格隐藏 var end = $("#" + gridname + "").jqgrid('getrowdata', mya[j]); if (before[cellname] == end[cellname]) { rowspantaxcount++; $("#" + gridname + "").setcell(mya[j], cellname, '', { display: 'none' }); } else { rowspantaxcount = 1; break; } $("#" + cellname + "" + mya[i] + "").attr("rowspan", rowspantaxcount); } } }