📄 dhtmlxgrid.js
字号:
this.cells3 = function(row,col){
var cell=(row._childIndexes?row.childNodes[row._childIndexes[col]]:row.childNodes[col]);
return this.cells4(cell);
}
this.cells4 = function(cell){
if(!cell._cellType)
return eval("new eXcell_"+this.cellType[cell._cellIndex]+"(cell)");
else
return eval("new eXcell_"+cell._cellType+"(cell)");
}
this.getCombo = function(col_ind){
if(this.cellType[col_ind].indexOf('co')==0){
if(!this.combos[col_ind]){
this.combos[col_ind] = new dhtmlXGridComboObject();
}
return this.combos[col_ind];
}else{
return null;
}
}
this.setUserData = function(row_id,name,value){
try{
if(row_id=="")
row_id = "gridglobaluserdata";
if(!this.UserData[row_id])
this.UserData[row_id] = new Hashtable()
this.UserData[row_id].put(name,value)
}catch(er){
alert("UserData Error:"+er.description)
}
}
this.getUserData = function(row_id,name){
if(row_id=="")
row_id = "gridglobaluserdata";
var z=this.UserData[row_id];
return(z?z.get(name):"");
}
this.setEditable = function(fl){
if(fl!='true' && fl!=1 && fl!=true)
ifl = true;
else
ifl = false;
for(var j=0;j<this.cellType.length;j++){
if(this.cellType[j].indexOf('ra')==0 || this.cellType[j]=='ch'){
for(var i=0;i<this.rowsCol.length;i++){
var z=this.rowsCol[i].cells[j];
if((z.childNodes.length>0)&&(z.firstChild.nodeType==1)){
this.rowsCol[i].cells[j].firstChild.disabled = ifl;
}
}
}
}
this.isEditable = !ifl;
}
this.setSelectedRow = function(row_id,multiFL,show,call){
if(!call)
call = false;
this.selectCell(this.getRowById(row_id),0,call,multiFL); if(arguments.length>2 && show==true){
this.moveToVisible(this.getRowById(row_id).cells[0],true)
}
}
this.clearSelection = function(){
this.editStop()
for(var i=0;i<this.selectedRows.length;i++){
this.selectedRows[i].className=this.selectedRows[i].className.replace(/rowselected/g,"");
}
this.selectedRows = new dhtmlxArray(0)
this.row = null;
if(this.cell!=null){
this.cell.className = this.cell.className.replace(/cellselected/g,"");
this.cell = null;
}
}
this.copyRowContent = function(from_row_id,to_row_id){
var frRow = this.getRowById(from_row_id)
if(!this.isTreeGrid())
for(i=0;i<frRow.cells.length;i++){
this.cells(to_row_id,i).setValue(this.cells(from_row_id,i).getValue())
}
else
this._copyTreeGridRowContent(frRow,from_row_id,to_row_id);
if(!isIE())
this.getRowById(from_row_id).cells[0].height = frRow.cells[0].offsetHeight
}
this.setHeaderCol = function(col,label){
var z=this.hdr.rows[1];
var col=(z._childIndexes?z._childIndexes[col]:col);
if(!this.useImagesInHeader){
var hdrHTML = "<div class='hdrcell'>"
if(label.indexOf('img:[')!=-1){
var imUrl = label.replace(/.*\[([^>]+)\].*/,"$1");
label = label.substr(label.indexOf("]")+1,label.length)
hdrHTML+="<img width='18px' height='18px' align='absmiddle' src='"+imUrl+"' hspace='2'>"
}
hdrHTML+=label;
hdrHTML+="</div>";
z.cells[col].innerHTML = hdrHTML;
}else{ z.cells[col].style.textAlign = "left";
z.cells[col].innerHTML = "<img src='"+this.imgURL+""+label+"' onerror='this.src = \""+this.imgURL+"imageloaderror.gif\"'>";
var a = new Image();
a.src = this.imgURL+""+label.replace(/(\.[a-z]+)/,".desc$1");
this.preloadImagesAr[this.preloadImagesAr.length] = a;
var b = new Image();
b.src = this.imgURL+""+label.replace(/(\.[a-z]+)/,".asc$1");
this.preloadImagesAr[this.preloadImagesAr.length] = b;
}
}
this.clearAll = function(header){
this.limit=this._limitC=0;
this.editStop();
if(this._dload){
this.objBox.scrollTop=0;
this.limit=this._limitC||0;
this._initDrF=true;
}
var len = this.rowsCol.length;
if(this.loadedKidsHash!=null){
this.loadedKidsHash.clear();
this.loadedKidsHash.put("hashOfParents",new Hashtable());
}
len = this.obj._rowslength();
for(var i=len-1;i>=0;i--){
var t_r=this.obj._rows(i);
t_r.parentNode.removeChild(t_r);
}
if(header){
this.obj.rows[0].parentNode.removeChild(this.obj.rows[0]);
for(var i=this.hdr.rows.length-1;i>=0;i--){
var t_r=this.hdr.rows[i];
t_r.parentNode.removeChild(t_r);
}
}
this.row = null;
this.cell = null;
this._hrrar=null;
this.rowsCol = new dhtmlxArray(0)
this.rowsAr = new Array(0); this.rowsBuffer = new Array(new dhtmlxArray(0),new dhtmlxArray(0)); this.UserData = new Array(0)
if(this.pagingOn){
this.changePage(1);
}
if((this._hideShowColumn)&&(this.hdr.rows[0]))
for(var i=0;i<this.hdr.rows[0].length;i++)
this._hideShowColumn(i,"");
this._hrrar=new Array();
if(this._sst)
this.enableStableSorting(true);
this.setSizes();
}
this.sortField = function(ind,repeatFl){
if(this.getRowsNum()==0)
return false;
var el = this.hdr.rows[0].cells[ind];
if(!el)return; if(el.tagName == "TH" &&(this.fldSort.length-1)>=el._cellIndex && this.fldSort[el._cellIndex]!='na'){ if((((this.sortImg.src.indexOf("_desc.gif")==-1)&&(!repeatFl))||((this.sortImg.style.filter!="")&&(repeatFl)))&&(this.fldSorted==el)){ var sortType = "desc";
this.sortImg.src = this.imgURL+"sort_desc.gif";
}else{ var sortType = "asc";
this.sortImg.src = this.imgURL+"sort_asc.gif";
}
if((this.onCLMS)&&(!this.onCLMS(ind,this,sortType)))return;
if(this.useImagesInHeader){
var cel=this.hdr.rows[1].cells[el._cellIndex].firstChild;
if(this.fldSorted!=null){
var celT=this.hdr.rows[1].cells[this.fldSorted._cellIndex].firstChild;
celT.src = celT.src.replace(/\.[ascde]+\./,".");
}
cel.src = cel.src.replace(/(\.[a-z]+)/,"."+sortType+"$1")
}
this.sortRows(el._cellIndex,this.fldSort[el._cellIndex],sortType)
this.fldSorted = el;
var c=this.hdr.rows[1];
var real_el=c._childIndexes?c._childIndexes[el._cellIndex]:el._cellIndex;
this.setSortImgPos(this.hdr.rows[1].childNodes[real_el]._cellIndex);
}
}
this.enableHeaderImages = function(fl){
this.useImagesInHeader = fl;
}
this.setHeader = function(hdrStr,splitSign){
var arLab = hdrStr.split(this.delim);
var arWdth = new Array(0);
var arTyp = new dhtmlxArray(0);
var arAlg = new Array(0);
var arVAlg = new Array(0);
var arSrt = new Array(0);
for(var i=0;i<arLab.length;i++){
arWdth[arWdth.length] = Math.round(100/arLab.length);
arTyp[arTyp.length] = "ed";
arAlg[arAlg.length] = "left";
arVAlg[arVAlg.length] = ""; arSrt[arSrt.length] = "na";
}
this.splitSign = splitSign||"#cspan";
this.hdrLabels = arLab;
this.cellWidth = arWdth;
this.cellType = arTyp;
this.cellAlign = arAlg;
this.cellVAlign = arVAlg;
this.fldSort = arSrt;
}
this.getColType = function(cell_index){
return this.cellType[cell_index];
}
this.getColTypeById = function(col_id){
return this.cellType[this.getColIndexById(col_id)];
}
this.setColTypes = function(typeStr){
this.cellType = dhtmlxArray(typeStr.split(this.delim));
this._strangeParams=new Array();
for(var i=0;i<this.cellType.length;i++)
if((this.cellType[i].indexOf("[")!=-1))
{
var z=this.cellType[i].split(/[\[\]]+/g);
this.cellType[i]=z[0];
this.defVal[i]=z[1];
if(z[1].indexOf("=")==0){
this.cellType[i]="math";
this._strangeParams[i]=z[0];
}
}
}
this.setColSorting = function(sortStr){
this.fldSort = sortStr.split(this.delim)
}
this.setColAlign = function(alStr){
this.cellAlign = alStr.split(this.delim)
}
this.setColVAlign = function(alStr){
this.cellVAlign = alStr.split(this.delim)
}
this.setMultiLine = function(fl){
if(fl==true)
this.multiLine = -1;
}
this.setNoHeader = function(fl){
if(fl==true)
this.noHeader = true;
}
this.showRow = function(rowID){
this.moveToVisible(this.getRowById(rowID).cells[0],true)
}
this.setStyle = function(ss_header,ss_grid,ss_selCell,ss_selRow){
this.ssModifier = [ss_header,ss_grid,ss_selCell,ss_selCell,ss_selRow];
var prefs=["#"+this.entBox.id+" table.hdr td","#"+this.entBox.id+" table.obj td","#"+this.entBox.id+" table.obj tr.rowselected td.cellselected","#"+this.entBox.id+" table.obj td.cellselected","#"+this.entBox.id+" table.obj tr.rowselected td"];
for(var i=0;i<prefs.length;i++)
if(_isIE)
this.styleSheet[0].addRule(prefs[i],this.ssModifier[i]);
else
this.styleSheet[0].insertRule(prefs[i]+"{"+this.ssModifier[i]+"}",0);
}
this.setColumnColor = function(clr){
this.columnColor = clr.split(this.delim)
}
this.enableAlterCss = function(cssE,cssU){
if(cssE||cssU)
this.setOnGridReconstructedHandler(function(){
this._fixAlterCss();
});
this._cssEven = cssE;
this._cssUnEven = cssU;
}
this._fixAlterCss = function(ind){
ind=ind||0;
var j=ind;
for(var i=ind;i<this.rowsCol.length;i++){
if(!this.rowsCol[i])continue;
if(this.rowsCol[i].style.display!="none"){
if(this.rowsCol[i].className.indexOf("rowselected")!=-1){
if(j%2==1)
this.rowsCol[i].className=this._cssUnEven+" rowselected";
else
this.rowsCol[i].className=this._cssEven+" rowselected";
}
else{
if(j%2==1)
this.rowsCol[i].className=this._cssUnEven;
else
this.rowsCol[i].className=this._cssEven;
}
j++;
}
}
}
this.doDynScroll = function(fl){
if(!this.dynScroll || this.dynScroll=='false')
return false;
this.setDynScrollPageSize();
var tmpAr = new Array(0)
if(fl && fl=='up'){
this.dynScrollPos = Math.max(this.dynScrollPos-this.dynScrollPageSize,0);
}else if(fl && fl=='dn' && this.dynScrollPos+this.dynScrollPageSize<this.rowsCol.length){
if(this.dynScrollPos+this.dynScrollPageSize+this.rowsBufferOutSize>this.rowsCol.length){
this.addRowsFromBuffer()
}
this.dynScrollPos+=this.dynScrollPageSize
}
var start = Math.max(this.dynScrollPos-this.dynScrollPageSize,0);
for(var i = start;i<this.rowsCol.length;i++){
if(i>=this.dynScrollPos && i<this.dynScrollPos+this.dynScrollPageSize){
tmpAr[tmpAr.length] = this.rowsCol[i];
}
this.rowsCol[i].removeNode(true);
}
for(var i=0;i<tmpAr.length;i++){
this.obj.childNodes[0].appendChild(tmpAr[i]);
if(this.obj.offsetHeight>this.objBox.offsetHeight)
this.dynScrollPos-=(this.dynScrollPageSize-i)
}
this.setSizes()
}
this.setDynScrollPageSize = function(){
if(this.dynScroll && this.dynScroll!='false'){
var rowsH = 0;
try{
var rowH = this.obj._rows(0).scrollHeight;
}catch(er){
var rowH = 20
}
for(var i=0;i<1000;i++){
rowsH = i*rowH;
if(this.objBox.offsetHeight<rowsH)
break
}
this.dynScrollPageSize = i+2; this.rowsBufferOutSize = this.dynScrollPageSize*4
}
}
this.dhx_attachEvent=function(original,catcher){
if((!this[original])||(!this[original].dhx_addEvent)){
var z=new this.dhx_eventCatcher(this);
z.dhx_addEvent(this[original]);
this[original]=z;
}
this[original].dhx_addEvent(catcher);
}
this.dhx_eventCatcher=function(obj){
var dhx_catch=new Array();
var m_obj=obj;
var z=function(){
if(dhx_catch)
var res=true;
for(var i=0;i<dhx_catch.length;i++)
if(!dhx_catch[i].apply(m_obj,arguments))res=false;
return res;
}
z.dhx_addEvent=function(ev){
if(typeof(ev)!="function")
ev=eval(ev);
if(ev)
dhx_catch[dhx_catch.length]=ev;
}
return z;
}
this.setOnRowSelectHandler = function(func,anyClick){
this.dhx_attachEvent("onRowSelect",func);
this._chRRS=(!convertStringToBoolean(anyClick));
}
this.setOnScrollHandler = function(func){
this.dhx_attachEvent("_onSCRL",func);
}
this.setOnEditCellHandler = function(func){
this.dhx_attachEvent("onEditCell",func);
}
this.setOnCheckHandler = function(func){
this.dhx_attachEvent("onCheckbox",func);
}
this.setOnEnterPressedHandler = function(func){
this.dhx_attachEvent("onEnter",func);
}
this.setOnBeforeRowDeletedHandler = function(func){
this.dhx_attachEvent("onBeforeRowDeleted",func);
}
this.setOnRowAddedHandler = function(func){
this.dhx_attachEvent("onRowAdded",func);
}
this.setOnGridReconstructedHandler = function(func){
this.dhx_attachEvent("onGridReconstructed",func);
}
this.getPosition = function(oNode,pNode){
if(!pNode)
var pNode = document.body
var oCurrentNode=oNode;
var iLeft=0;
var iTop=0;
while((oCurrentNode)&&(oCurrentNode!=pNode)){ iLeft+=oCurrentNode.offsetLeft-oCurrentNode.scrollLeft;
iTop+=oCurrentNode.offsetTop-oCurrentNode.scrollTop;
oCurrentNode=oCurrentNode.offsetParent;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -