⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sel.js

📁 ZK 基础介绍 功能操作 模块 结合数据库操作
💻 JS
📖 第 1 页 / 共 2 页
字号:
zk.load("zul.zul");if(!window.Selectable_effect){window.Selectable_effect=function(_1,_2){if(_2){zk.rmClass(_1,"overseld");zk.rmClass(_1,"overd");}else{zk.addClass(_1,zk.hasClass(_1,"seld")?"overseld":"overd");}};}zk.Selectable=Class.create();zk.Selectable.prototype={initialize:function(_3){this.id=_3.id;zkau.setMeta(_3,this);this.qcells=[];this.init();},init:function(_4){this.element=$e(this.id);if(!this.element){return;}if(getZKAttr(this.element,"vflex")=="true"){if(zk.ie){this.element.style.overflow="hidden";}var _5=this.element.style.height;if(!_5||_5=="auto"){this.element.style.height="99%";}}this.body=$e(this.id+"!body");if(this.body){this.bodytbl=zk.firstChild(this.body,"TABLE",true);if(this.bodytbl){var _6=this.bodytbl.tBodies;if(!_6||!_6.length){this.bodytbl.appendChild(document.createElement("TBODY"));}this.bodyrows=_6[0].rows;}this.head=$e(this.id+"!head");if(this.head){this.headtbl=zk.firstChild(this.head,"TABLE",true);}this.foot=$e(this.id+"!foot");if(this.foot){this.foottbl=zk.firstChild(this.foot,"TABLE",true);}}else{this.paging=true;this.body=$e(this.id+"!paging");this.bodytbl=zk.firstChild(this.body,"TABLE",true);var bs=this.bodytbl.tBodies;for(var j=0;j<bs.length;++j){if(bs[j].id){this.bodyrows=bs[j].rows;break;}}}if(!zk.isRealVisible(this.element)){return;}if(!this.bodyrows){alert(mesg.INVALID_STRUCTURE+this.id);return;}var _9=this;if(!this._inited){this._inited=true;if(zk.gecko){this.element.onkeydown=this.element.onkeyup=this.element.onkeypress=function(_a){var _b=Event.element(_a);if(zkSel._shallIgnoreEvent(_b)){return true;}if(_a){switch(_a.keyCode){case 33:case 34:case 38:case 40:case 37:case 39:case 32:case 36:case 35:Event.stop(_a);return false;}}return true;};}if(!this.paging){this.fnResize=function(){_9.recalcSize(true);};zk.addOnResize(this.fnResize);}this.form=zk.formOf(this.element);if(this.form){this.fnSubmit=function(){_9.onsubmit();};zk.listen(this.form,"submit",this.fnSubmit);}}if(!this.paging){if(this.headtbl&&this.headtbl.rows.length){var _c=true;l_out:for(var j=this.headtbl.rows.length;j;){var _d=this.headtbl.rows[--j];for(var k=_d.cells.length;k;){var n=$e(_d.cells[--k].id+"!cave");for(n=n?n.firstChild:n;n;n=n.nextSibling){if(!n.id||!n.id.endsWith("!hint")){_c=false;break l_out;}}}}if(_c){this.head.style.height="0px";}}this.body.onscroll=function(){if(_9.head){_9.head.scrollLeft=_9.body.scrollLeft;}if(_9.foot){_9.foot.scrollLeft=_9.body.scrollLeft;}_9._render(zk.gecko?200:60);};}if(_4&&this.qcells.length&&this.headtbl&&this.headtbl.rows.length&&this.bodytbl&&this.bodytbl.rows.length>1){zk.cpCellArrayWidth(this.headtbl.rows[0],this.qcells);}else{setTimeout("zkSel._calcSize('"+this.id+"')",150);this.stripe();}this.qcells.length=0;this._render(155);},putCellQue:function(_10){this.qcells.push(_10);},cleanup:function(){if(this.fnResize){zk.rmOnResize(this.fnResize);}if(this.fnSubmit){zk.unlisten(this.form,"submit",this.fnSubmit);}this.element=this.body=this.head=this.bodytbl=this.headtbl;this.foot=this.foottbl=this.fnSubmit=this.qcells=null;},stripe:function(){var _11=getZKAttr(this.element,"scOddRow");if(!_11||!this.bodyrows){return;}for(var j=0,_13=true;j<this.bodyrows.length;++j){var row=this.bodyrows[j];if($visible(row)){zk.addClass(row,_11,!_13);_13=!_13;}}},dobodykeydown:function(evt,_16){if(zkSel._shallIgnoreEvent(_16)){return true;}switch(evt.keyCode){case 33:case 34:case 38:case 40:case 37:case 39:case 32:case 36:case 35:if($tag(_16)!="A"){this._refocus();}Event.stop(evt);return false;}return true;},dokeydown:function(evt,_18){if(zkSel._shallIgnoreEvent(_18)){return true;}var row=$tag(_18)=="TR"?_18:zk.parentNode(_18,"TR");if(!row){return true;}var _1a=evt.shiftKey,_1b=evt.ctrlKey;if(_1a&&!this._isMultiple()){_1a=false;}var _1c=false,_1d,_1e;switch(evt.keyCode){case 33:case 34:_1d=this.realsize();if(_1d==0){_1d=20;}if(evt.keyCode==33){_1d=-_1d;}break;case 38:case 40:_1d=evt.keyCode==40?1:-1;break;case 32:if(this._isMultiple()){this.toggleSelect(row,!this._isSelected(row));}else{this.select(row);}break;case 36:case 35:_1d=evt.keyCode==35?1:-1;_1c=true;break;case 37:this._doLeft(row);break;case 39:this._doRight(row);break;}if(_1d){if(_1a){this.toggleSelect(row,true);}for(;(row=_1d>0?row.nextSibling:row.previousSibling)!=null;){if($tag(row)=="TR"&&this._isValid(row)){if(_1a){this.toggleSelect(row,true);}if($visible(row)){if(!_1a){_1e=row;}if(!_1c){if(_1d>0){--_1d;}else{++_1d;}if(_1d==0){break;}}}}}}if(_1e){if(_1b){this.focus(_1e);}else{this.select(_1e);}}switch(evt.keyCode){case 33:case 34:case 38:case 40:case 37:case 39:case 32:case 36:case 35:Event.stop(evt);return false;}return true;},_doLeft:function(row){},_doRight:function(row){},_rowType:function(){return "Lit";},doclick:function(evt,_22){if(zkSel._shallIgnoreEvent(_22)){return;}var tn=$tag(_22);if((tn!="TR"&&_22.onclick)||(tn=="A"&&!_22.id.endsWith("!sel"))||getZKAttr(_22,"lfclk")||getZKAttr(_22,"dbclk")){return;}var _24=_22.id&&_22.id.endsWith("!cm");var row=tn=="TR"?_22:zk.parentNode(_22,"TR");if(!row||$type(row)!=this._rowType()){return;}if(zk.dragging){return;}if(_24){if(this._isMultiple()){this.toggleSelect(row,_22.checked);}else{this.select(row);}}else{if((zk.gecko||zk.safari)&&getZKAttr(row,"dbclk")){var now=$now(),_27=row._last;row._last=now;if(_27&&now-_27<900){return;}}if(this._isMultiple()){if(evt&&evt.shiftKey){this.selectUpto(row);}else{if(evt&&evt.ctrlKey){this.toggleSelect(row,!this._isSelected(row));}else{var el=$e(row.id+"!cm");if(el){this.toggleSelect(row,!el.checked);}else{this.select(row);}}}}else{this.select(row);}this._focusToAnc(row);}},size:function(){var sz=getZKAttr(this.element,"size");return sz?$int(sz):0;},realsize:function(v){if("number"==typeof v){this.element.setAttribute("zk_realsize",v);}else{var sz=this.size();if(sz){return sz;}sz=this.element.getAttribute("zk_realsize");return sz?$int(sz):0;}},_refocus:function(){for(var j=0;j<this.bodyrows.length;++j){var r=this.bodyrows[j];if(this._isFocus(r)){this._focusToAnc(r);}}},setAttr:function(nm,val){switch(nm){case "z.innerWidth":if(this.headtbl){this.headtbl.style.width=val;}if(this.bodytbl){this.headtbl.style.width=val;}if(this.foottbl){this.headtbl.style.width=val;}return true;case "select":var row=$e(val);this._selectOne(row,false);zk.scrollIntoView(this.body,row);return true;case "selectAll":this._selectAll();return true;case "z.multiple":this._setMultiple("true"==val);return true;case "chgSel":var _31={};for(var j=0;;){var k=val.indexOf(",",j);var s=(k>=0?val.substring(j,k):val.substring(j)).trim();if(s){_31[s]=true;}if(k<0){break;}j=k+1;}var _35=this.bodyrows;for(var j=0;j<_35.length;++j){this._changeSelect(_35[j],_31[_35[j].id]==true);}return true;case "z.vflex":if(val=="true"){if(zk.ie){this.element.style.overflow="hidden";}var hgh=this.element.style.height;if(!hgh||hgh=="auto"){this.element.style.height="99%";}}else{if(zk.ie){this.element.style.overflow="";}}case "z.size":zkau.setAttr(this.element,nm,val);this.recalcSize(true);return true;case "style":case "style.width":case "style.height":if(!this.paging){zkau.setAttr(this.element,nm,val);this.init();return true;}break;case "scrollTop":if(!this.paging&&this.body){this.body.scrollTop=val;return true;}break;case "scrollLeft":if(!this.paging&&this.body){this.body.scrollLeft=val;return true;}break;case "z.scOddRow":zkau.setAttr(this.element,nm,val);this.stripe();return true;case "z.render":this._render(0);return true;}return false;},getItemUuid:function(row){return row.id;},select:function(row){if(this._selectOne(row,true)){zkau.send({uuid:this.id,cmd:"onSelect",data:[this.getItemUuid(row)]},zkau.asapTimeout(this.element,"onSelect"));}},toggleSelect:function(row,_3a){this._changeSelect(row,_3a);this.focus(row);var _3b=this._getSelectedId();if(this._isMultiple()){if(row.id==_3b){this._fixSelelectedId();}}else{if(_3b){var sel=$e(_3b);if(sel){this._changeSelect(sel,false);}}}this._sendSelect();},selectUpto:function(row){if(this._isSelected(row)){this.focus(row);return;}var _3e=false,_3f=false;for(var j=0;j<this.bodyrows.length;++j){var r=this.bodyrows[j];if(_3e){this._changeSelect(r,true);if(r==row){break;}}else{if(_3f){this._changeSelect(r,true);if(this._isFocus(r)){break;}}else{_3f=r==row;_3e=this._isFocus(r);if(_3f||_3e){this._changeSelect(r,true);if(_3f&&_3e){break;}}}}}this.focus(row);this._fixSelelectedId();this._sendSelect();},focus:function(row){this._unsetFocusExcept(row);this._setFocus(row,true);},_focusToAnc:function(row){if(!row){return;}var _44=typeof row=="string"?row:row.id;var el=$e(_44+"!cm");if(!el){el=$e(_44+"!sel");}if(el&&el.tabIndex!=-1){zk.asyncFocus(el.id);}},_selectOne:function(row,_47){row=$e(row);var _48=this._getSelectedId();if(this._isMultiple()){if(row&&_47){this._unsetFocusExcept(row);}var _49=this._unsetSelectAllExcept(row);if(!_49&&row&&_48==row.id){if(_47){this._setFocus(row,true);}return false;}}else{if(_48){if(row&&_48==row.id){if(_47){this._setFocus(row,true);}return false;}var sel=$e(_48);if(sel){this._changeSelect(sel,false);if(row){if(_47){this._setFocus(sel,false);}else{this._fixAnc(sel,false);}}}}else{if(row&&_47){this._unsetFocusExcept(row);}}}if(row){this._changeSelect(row,true);if(_47){this._setFocus(row,true);}else{this._fixAnc(row,true);}this._setSelectedId(row.id);}else{this._setSelectedId(null);}return true;},_changeSelect:function(row,_4c){if(!this._isValid(row)){return false;}var _4d=this._isSelected(row)!=_4c;if(_4d){var el=$e(row.id+"!cm");if(_4c){if(el){el.checked=true;}zk.addClass(row,"seld");zkSel.onoutTo(row);setZKAttr(row,"sel","true");}else{if(el){el.checked=false;}zk.rmClass(row,"seld");zkSel.onoutTo(row);setZKAttr(row,"sel","false");}}return _4d;},_setFocus:function(row,_50){if(!this._isValid(row)){return false;}var _51=this._isFocus(row)!=_50;if(_51){this._fixAnc(row,_50);if(_50){var el=$e(row.id+"!cm");if(!el){el=$e(row.id+"!sel");}if(el&&el.tabIndex!=-1){zk.asyncFocus(el.id);}zkSel.cmonfocusTo(row);if(!this.paging&&zk.gecko){this._render(5);}}else{zkSel.cmonblurTo(row);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -