FlexiGrid支持shift多选
发布时间:2020-12-15 04:02:01 所属栏目:百科 来源:网络整理
导读:在前面几章Flexigrid处理的基础上,处理了支持shift多选的功能,增加的代码标注了“//处理shfit多选 add by danielinbiti” 主要增加了三部分代码 第一部分 (function ($) {$.addFlex = function (t,p) {if (t.grid) return false; //return if already exis
在前面几章Flexigrid处理的基础上,处理了支持shift多选的功能,增加的代码标注了“//处理shfit多选 add by danielinbiti” 主要增加了三部分代码 第一部分 (function ($) { $.addFlex = function (t,p) { if (t.grid) return false; //return if already exist p = $.extend({ //apply default properties height: 200,//default height width: 'auto',//auto width striped: true,//apply odd even stripes novstripe: false,minwidth: 30,//min width of columns minheight: 80,//min height of columns resizable: true,//allow table resizing url: false,//URL if using data from AJAX dwrAction:function(){},method: 'POST',//data sending method dataType: 'xml',//type of data for AJAX,either xml or json errormsg: 'Connection Error',usepager: false,nowrap: true,page: 1,//current page total: 1,//total pages useRp: true,//use the results per page select box rp: 15,//results per page rpOptions: [10,15,20,30,50],//allowed per-page values title: false,pagestat: 'Displaying {from} to {to} of {total} items',pagetext: 'Page',outof: 'of',findtext: 'Find',procmsg: 'Processing,please wait ...',query: '',qtype: '',isColSel:true,nomsg: 'No items',minColToggle: 1,//minimum allowed column to be hidden showToggleBtn: true,//show or hide column toggle popup hideOnSubmit: true,autoload: true,blockOpacity: 0.5,preProcess: false,onDragCol: false,onToggleCol: false,onChangeSort: false,onSuccess: false,onError: false,onRowClick:function(){return true},//add by jej onSubmit: false //using a custom populate function },p); $(t).show() //show if hidden .attr({ cellPadding: 0,cellSpacing: 0,border: 0 }) //remove padding and spacing .removeAttr('width'); //remove width properties //create grid class isEditing = false; isShiftMulti = false; //处理shfit多选 add by danielinbiti shiftSelRowIndex = -1; //处理shfit多选 add by danielinbiti $('body').keydown(function (e) { //处理shfit多选 add by danielinbiti if (e.keyCode == 16) { isShiftMulti=true; } }); $('body').keyup(function (e) { //处理shfit多选 add by danielinbiti if (e.keyCode ==16) { isShiftMulti=false; shiftSelRowIndex = -1; } }) 第二部分 getSelectRowsToGrid: function(){//处理shfit多选 add by danielinbiti //add by jej var rtnList = new Array(); var objRows = $('.trSelected',$(t)); if(objRows!=null){ for(var i=0;i<objRows.length;i++){ var row = objRows[i]; var arr = new Array(); for(var j=0;j<row.cells.length;j++){ if(isEditing && p.colModel[j].isEdit){ var td = row.cells[j]; var div = $('div',$(td)); var inputbox = $('input',$(div[0])); if(inputbox.length>0){ arr[j] = inputbox[0].value; } }else{ var value = row.cells[j].innerText; value=value.replace(/^n+|n+$/g,""); arr[j] = value; } } rtnList[rtnList.length] = arr; } } return rtnList; } 第三部分 addRowProp: function () { var _self = this; $('tbody tr',g.bDiv).each(function () { $(this).click(function (e) { var obj = (e.target || e.srcElement); if (obj.href || obj.type) return true; $(this).toggleClass('trSelected'); if (p.singleSelect) $(this).siblings().removeClass('trSelected'); if(p.onRowClick && typeof(p.onRowClick)=='function'){ var rowObj = _self.getRows(); p.onRowClick(rowObj,e); } }).mousedown(function (e) { if (e.shiftKey) { $(this).toggleClass('trSelected'); g.multisel = true; this.focus(); $(g.gDiv).noSelect(); if(isShiftMulti && !p.singleSelect){ //处理shfit多选 add by danielinbiti _self.selectRowByIndexArea($(this)[0].rowIndex,shiftSelRowIndex); //处理shfit多选 add by danielinbiti shiftSelRowIndex = $(this)[0].rowIndex; //处理shfit多选 add by danielinbiti } }代码多贴了一下上下文,便于往文件中添加。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |