jqgrid冻结前后列

jqgrid冻结列3步设置:

cellEdit=true的时候frozencolumn是无效

第一步设置colModel 列内的 frozen: true;

第二步设置表格初始时宽度 shrinkToFit: false,

第三步在最后设置 jQuery("#table").jqGrid(‘setFrozenColumns’);冻结前列

第三步在最后设置 jQuery("#table").jqGrid(‘setTableFrozenColumns’);冻结前后列

var _colmodel=[ {name:"id",index:"id", width:80,hidden:true,frozen : true,tfixed: 'left'},//冻结列,从第一列开始frozen : true,tfixed: 'left'
{name:"operate",index:"operate",frozen : true,tfixed: 'right',}];//冻结列,从最后一列开始frozen : true,tfixed: 'right'

demo
在源码里添加方法setTableFrozenColumns

setTableFrozenColumns : function () {
   
		return this.each(function() {
   
			if ( !this.grid ) {
   return;}
			var $t = this, cm = $t.p.colModel,i=0,l=0, len = cm.length, maxfrozen = -1,maxleftfrozen = 0, maxrightfrozen = 0, frozen= false,leftarr=[],rightarr=[];
			// TODO treeGrid and grouping  Support
			if($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )
			{
   
				return;
			}
			if($t.p.multiselect) {
    i++;}
			if($t.p.rownumbers) {
    i++;}
			
			for (var l=0;l<len;l++ ) {
   
				if (cm[l].frozen === true && cm[l].tfixed === 'left') {
   
					maxleftfrozen =i;
					maxleftfrozen ++;
					frozen = true;
				}
				if (cm[l].frozen === true && cm[l].tfixed === 'right') {
   
					maxrightfrozen =l - 1;
					maxrightfrozen ++;
					frozen = true;
				}
			}
			// get the max index of frozen 
			while(i<len)
			{
   

				// from left, no breaking frozen
				if(cm[i].frozen === true)
				{
   
					frozen = true;
					maxfrozen = i;
				} else {
   
					break;
				}
				i++;
			}
			if( maxfrozen>=0 && frozen) {
   
				var top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,
				hth = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).height();
				//headers
				if($t.p.toppager) {
   
					top = top + $($t.grid.topDiv).outerHeight();
				}
				if($t.p.toolbar[0] === true) {
   
					if($t.p.toolbar[1] !== "bottom") {
   
						top = top + $($t.grid.uDiv).outerHeight();
					}
				}
				
				//top:'+top+'px;
				$t.grid.leftfhDiv = $('<div style="position:absolute;left:0px;top:1px; " class="frozen-div ui-state-default ui-jqgrid-hdiv left-frozen-hdiv"></div>');
				$t.grid.leftfbDiv = $('<div style="position:absolute;left:0px;top:'+(parseInt(top,10)+parseInt(hth,10))+'px;overflow-y:hidden;    z-index: 11;background-color: #fff;" class="frozen-bdiv ui-jqgrid-bdiv left-frozen-bdiv"></div>');
				$t.grid.rightfhDiv = $('<div style="position:absolute;right:0px;top:0px; " class="frozen-div ui-state-default ui-jqgrid-hdiv right-frozen-hdiv"></div>');
				$t.grid.rightfbDiv = $('<div style="position:absolute;right:0px;top:'+(parseInt(top,10)+parseInt(hth,10))+'px;overflow-y:hidden;  z-index: 11;background-color: #fff;" class="frozen-bdiv ui-jqgrid-bdiv right-frozen-bdiv"></div>');
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.leftfhDiv);
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.rightfhDiv);
				var lefthtbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
				var righthtbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
				
				// groupheader support - only if useColSpanstyle is false
				if($t.p.groupHeader) {
   
					$("tr.jqg-first-row-header, tr.jqg-third-row-header", lefthtbl).each(function(){
   
						$("th:gt("+maxfrozen+")",this).remove();
					});
					var swapfroz = -1, fdel = -1, cs, rs;
					$("tr.jqg-second-row-header th", lefthtbl).each(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值