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

📄 dhtmlxgrid.js

📁 dhtmlxGrid 是跨浏览器的 JavaScript 表格控制组件(Grid Control)
💻 JS
📖 第 1 页 / 共 5 页
字号:
 _isIE?ev.returnValue=false:ev.preventDefault();
}
  if(ev.keyCode==27 && this.oe!=false){
 this.editStop();
 _isIE?ev.returnValue=false:ev.preventDefault();
}
  if(ev.keyCode==33 || ev.keyCode==34){
 if(this.pagingOn){
 if(ev.keyCode==33){
 this.changePage(this.currentPage-1)
}else{
 this.changePage(this.currentPage+1)
}
}
 this.selectCell(this.getRowIndex(this.row.idd)+this.rowsBufferOutSize*(ev.keyCode!=33?1:-1),this.cell._cellIndex,true);

 
 _isIE?ev.returnValue=false:ev.preventDefault();
}
  if(!this.editor)
{
 if(ev.keyCode==37 && this.cellType._dhx_find("tree")!=-1){
 this.collapseKids(this.row)
 _isIE?ev.returnValue=false:ev.preventDefault();
}
 if(ev.keyCode==39 && this.cellType._dhx_find("tree")!=-1){
 this.expandKids(this.row)
 _isIE?ev.returnValue=false:ev.preventDefault();
}
}
 return true;
}catch(er){return true;}


}
 
 this.getRow = function(cell){
 if(!cell)
 cell = window.event.srcElement;
 if(cell.tagName!='TD')
 cell = cell.parentElement;
 r = cell.parentElement;
 if(this.cellType[cell._cellIndex]=='lk')
 eval(this.onLink+"('"+this.getRowId(r.rowIndex)+"',"+cell._cellIndex+")");
 this.selectCell(r,cell._cellIndex,true)
}
 
 this.selectRow = function(r,fl,preserve){
 if(typeof(r)!='object')
 r = this.rowsCol[r]
 this.selectCell(r,0,fl,preserve)
};
 
 this.sortRows = function(col,type,order){
 while(this.addRowsFromBuffer(true));  if(this.cellType._dhx_find("tree")!=-1){
 return this.sortTreeRows(col,type,order)
}
 var self=this;
 var arrTS=new Array();
 var atype = this.cellType[col];
 for(var i=0;i<this.rowsCol.length;i++)
 arrTS[this.rowsCol[i].idd]=this.cells3(this.rowsCol[i],col).getValue();

 this._sortRows(col,type,order,arrTS);
}

 
 this._sortRows = function(col,type,order,arrTS){
 var sort="sort";
 if(this._sst)sort="stablesort";



 if(type=='str'){
 this.rowsCol[sort](function(a,b){
 if(order=="asc")
 return arrTS[a.idd]>arrTS[b.idd]?1:-1
 else
 return arrTS[a.idd]<arrTS[b.idd]?1:-1
});
}else if(type=='int'){
 this.rowsCol[sort](function(a,b){
 var aVal = parseFloat(arrTS[a.idd])||-99999999999999
 var bVal = parseFloat(arrTS[b.idd])||-99999999999999
 if(order=="asc")
 return aVal-bVal
 else
 return bVal-aVal

});
}else if(type=='date'){
 this.rowsCol[sort](function(a,b){
 var aVal = Date.parse(new Date(arrTS[a.idd])||new Date("01/01/1900"))
 var bVal = Date.parse(new Date(arrTS[b.idd])||new Date("01/01/1900"))
 if(order=="asc")
 return aVal-bVal
 else
 return bVal-aVal

});
}
 if(this.dynScroll && this.dynScroll!='false'){
 alert("not implemented yet")
}else if(this.pagingOn){ this.changePage(this.currentPage);
 if(this.onGridReconstructed)this.onGridReconstructed();
}else{
 var tb = this.obj.firstChild;
 if(tb.tagName == 'TR')tb = this.obj;


 for(var i=0;i<this.rowsCol.length;i++){
 if(this.rowsCol[i]!=this.obj._rows(i))
 tb.insertBefore(this.rowsCol[i],this.obj._rows(i))
 }
}
  if(this.onGridReconstructed)this.onGridReconstructed();
}


 
 this.setXMLAutoLoading = function(filePath,bufferSize){
 if(arguments.length==0)return(this._xmlaR=true);
 this.recordsNoMore = false;
 this.xmlFileUrl = filePath;
 this.rowsBufferOutSize = bufferSize||this.rowsBufferOutSize==0?40:this.rowsBufferOutSize;
}

 
 this.enableBuffering = function(bufferSize){
 this.rowsBufferOutSize = bufferSize||this.rowsBufferOutSize==0?40:this.rowsBufferOutSize;;
}




 
 this.addRowsFromBuffer = function(stopBeforeServerCall){
 if(this.rowsBuffer[0].length==0){
 if(!this.recordsNoMore && !stopBeforeServerCall){
 if((this.xmlFileUrl!="")&&(!this._startXMLLoading)){
 this._startXMLLoading=true;
 this.loadXML(this.xmlFileUrl)
}
}else
 return false;
}
 var cnt = Math.min(this.rowsBufferOutSize,this.rowsBuffer[0].length)


  for(var i=0;i<cnt;i++){
 
 if(this.rowsBuffer[1][0].tagName == "TR"){ this._insertRowAt(this.rowsBuffer[1][0],-1,this.pagingOn);
}else{ var rowNode = this.rowsBuffer[1][0]
 this._insertRowAt(this.createRowFromXMLTag(rowNode),-1,this.pagingOn);
}
 this.rowsBuffer[0]._dhx_removeAt(0);
 this.rowsBuffer[1]._dhx_removeAt(0);
}

 return this.rowsBuffer[0].length!=0;
}
 
 this.createRowFromXMLTag = function(rowNode){
 if(rowNode.tagName=="TR") return rowNode;

 var tree=this.cellType._dhx_find("tree");
 var rId = rowNode.getAttribute("id")

 var r= this._fillRowFromXML(this._prepareRow(rId),rowNode,tree,null);

 this.rowsAr[rId] = r;
 return r;
}

 
 this.setMultiselect = function(fl){
 this.selMultiRows = convertStringToBoolean(fl);
}

 
 this.wasDblClicked = function(ev){
 var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");
 if(el){
 var rowId = el.parentNode.idd;
 return((this.onRowDblClicked)?this.onRowDblClicked(rowId,el._cellIndex):true);
}
}

 
 this._onHeaderClick = function(e){
 var that=this.grid;
 var el = that.getFirstParentOfType(_isIE?event.srcElement:e.target,"TD");

 if((this.grid.onHeaderClick)&&(!this.grid.onHeaderClick(el._cellIndexS)))return false;
 if(this.grid.resized==null)
 that.sortField(el._cellIndexS)
}

 
 this.deleteSelectedItem = function(){
 var num = this.selectedRows.length  if(num==0)
 return;
 var tmpAr = this.selectedRows;
 this.selectedRows = new dhtmlxArray(0)
 for(var i=num-1;i>=0;i--){
 var node = tmpAr[i]

 if(!this.deleteRow(node.idd,node)){
 this.selectedRows[this.selectedRows.length] = node;
}else{
 if(node==this.row){
 var ind = i;
}
}
 
}
 if(ind){
 try{
 if(ind+1>this.rowsCol.length) ind--;
 this.selectCell(ind,0,true)
}catch(er){
 this.row = null
 this.cell = null
}
}
}

 
 this.getSelectedId = function(){
 var selAr = new Array(0);
 for(var i=0;i<this.selectedRows.length;i++){
 selAr[selAr.length]=this.selectedRows[i].idd
}

  if(selAr.length==0)
 return null;
 else
 return selAr.join(this.delim);
}
 
 this.getSelectedCellIndex = function(){
 if(this.cell!=null)
 return this.cell._cellIndex;
 else
 return -1;
}
 
 this.getColWidth = function(ind){
 return parseInt(this.cellWidthPX[ind])+((_isFF)?2:0);
}

 
 this.setColWidth = function(ind,value){
 if(this.cellWidthType=='px')
 this.cellWidthPX[ind]=parseInt(value);
 else
 this.cellWidthPC[ind]=parseInt(value);
 this.setSizes();
}


 
 this.getRowById = function(id){
 var row = this.rowsAr[id]
 if(row)
 return row;
 else
 if(this._dload){
 var ind = this.rowsBuffer[0]._dhx_find(id);
 if(ind>=0){
 this._askRealRows(ind);
 return this.getRowById(id);
}
}
 else if(this.pagingOn){ var ind = this.rowsBuffer[0]._dhx_find(id);
 if(ind>=0){
 var r = this.createRowFromXMLTag(this.rowsBuffer[1][ind]);
 this.rowsBuffer[1][ind] = r;
 return r;
}else{
 return null;
}
}
 else if(this._slowParse) return this._seekAndDeploy(id);
 return null;
}
 
 this.getRowByIndex = function(ind){
 if(this.rowsCol.length<=ind){
 if((this.rowsCol.length+this.rowsBuffer[0].length)<=ind)
 return null;
 else{
 var indInBuf = ind-this.rowsCol.length-1;
 var r = this.createRowFromXMLTag(this.rowsBuffer[1][indInBuf]);
 return r;
}
}else{
 return this.rowsCol[ind]
}
}

 
 this.getRowIndex = function(row_id){
 var ind = this.rowsCol._dhx_find(this.getRowById(row_id));
 if(ind!=-1)
 return ind;
 else{
 ind = this.rowsBuffer[0]._dhx_find(row_id)
 if(ind!=-1)
 return ind+this.rowsCol.length;
 return -1;
}
}
 
 this.getRowId = function(ind){
 var z=this.rowsCol[parseInt(ind)];
 if(z)return z.idd;
 return(this.rowsBuffer[0][this._dload?ind:(ind-this.rowsCol.length-1)]||null);
}
 
 this.setRowId = function(ind,row_id){
 var r = this.rowsCol[ind]
 this.changeRowId(r.idd,row_id)
}
 
 this.changeRowId = function(oldRowId,newRowId){
 var row = this.rowsAr[oldRowId]
 row.idd = newRowId;
 if(this.UserData[oldRowId]){
 this.UserData[newRowId] = this.UserData[oldRowId]
 this.UserData[oldRowId] = null;
}
 if(this.loadedKidsHash){
 var oldHash=this.loadedKidsHash.get(oldRowId);
 if(oldHash!=null){
 for(var z=0;z<oldHash.length;z++)
 oldHash[z].parent_id=newRowId;
 this.loadedKidsHash.put(newRowId,oldHash);
 this.loadedKidsHash.remove(oldRowId);
}
 var parentsHash = this.loadedKidsHash.get("hashOfParents")
 if(parentsHash!=null){
 if(parentsHash.get(oldRowId)!=null){
 parentsHash.put(newRowId,row);
 parentsHash.remove(oldRowId);
 this.loadedKidsHash.put("hashOfParents",parentsHash)
}
}
}

 this.rowsAr[oldRowId] = null;
 this.rowsAr[newRowId] = row;
}
 
 this.setColumnIds = function(ids){
 if(ids)
 this.columnIds = ids.split(",")
 if(this.hdr.rows.length>0){
 if(this.hdr.rows[0].cells.length>=this.columnIds.length){
 for(var i=0;i<this.columnIds.length;i++){
 this.hdr.rows[0].cells[i].column_id = this.columnIds[i];
}
}
}
}
 
 this.getColIndexById = function(id){
 for(var i=0;i<this.hdr.rows[0].cells.length;i++){
 if(this.hdr.rows[0].cells[i].column_id==id)
 return i;
}
}
 
 this.getColumnId = function(cin){
 return this.hdr.rows[0].cells[cin].column_id
}

 
 this.getHeaderCol = function(cin){
 var z=this.hdr.rows[1]
 return z.cells[z._childIndexes?z._childIndexes[parseInt(cin)]:cin].innerHTML;
}

 
 this.setRowTextBold = function(row_id){
 this.getRowById(row_id).style.fontWeight = "bold";
}
 
 this.setRowTextStyle = function(row_id,styleString){
 var r = this.getRowById(row_id)
 for(var i=0;i<r.childNodes.length;i++){
 var pfix="";


 if(_isIE)
 r.childNodes[i].style.cssText = pfix+"width:"+r.childNodes[i].style.width+";"+styleString;
 else
 r.childNodes[i].style.cssText = pfix+"width:"+r.childNodes[i].style.width+";"+styleString;
}

}
 
 this.setRowColor = function(row_id,color){
 var r = this.getRowById(row_id)
 for(var i=0;i<r.childNodes.length;i++)
 r.childNodes[i].bgColor=color;
}
 
 this.setCellTextStyle = function(row_id,ind,styleString){
 var r = this.getRowById(row_id)
 if(!r)return;
 if(ind<r.childNodes.length)
{
 var pfix="";

 if(_isIE)
 r.childNodes[ind].style.cssText = pfix+"width:"+r.childNodes[ind].style.width+";"+styleString;
 else
 r.childNodes[ind].style.cssText = pfix+"width:"+r.childNodes[ind].style.width+";"+styleString;
}

}

 
 this.setRowTextNormal = function(row_id){
 this.getRowById(row_id).style.fontWeight = "normal";
}
 
 this.isItemExists = function(row_id){
 if(this.getRowById(row_id)!=null)
 return true
 else
 return false
}

 
 this.getRowsNum = function(){
 if(this._dload)
 return this.limit;
 return this.rowsCol.length+this.rowsBuffer[0].length;
}
 
 this.getColumnCount = function(){
 return this.hdr.rows[0].cells.length;
}

 
 this.moveRowUp = function(row_id){
 var r = this.getRowById(row_id)
 var rInd = this.rowsCol._dhx_find(r)
 if(this.isTreeGrid()){
 if(this.rowsCol[rInd].parent_id!=this.rowsCol[rInd-1].parent_id)return;
 this.collapseKids(r);
}

 this.rowsCol._dhx_swapItems(rInd,rInd-1)

 if(r.previousSibling){
 r.parentNode.insertBefore(r,r.previousSibling)
 this.setSizes();
}
}
 
 this.moveRowDown = function(row_id){
 var r = this.getRowById(row_id)
 var rInd = this.rowsCol._dhx_find(r)
 if(this.isTreeGrid())
 if(this.rowsCol[rInd].parent_id!=this.rowsCol[rInd+1].parent_id)return;

 this.rowsCol._dhx_swapItems(rInd,rInd+1)
 if(r.nextSibling){
 if(r.nextSibling.nextSibling)
 r.parentNode.insertBefore(r,r.nextSibling.nextSibling)
 else
 r.parentNode.appendChild(r)
 this.setSizes();
}
}
 
 this.cells = function(row_id,col){
 if(arguments.length==0)
 return this.cells4(this.cell);
 else
 var c = this.getRowById(row_id);
 var cell=(c._childIndexes?c.childNodes[c._childIndexes[col]]:c.childNodes[col]);
 return this.cells4(cell);
}
 
 this.cells2 = function(row_index,col){
 var c = this.rowsCol[parseInt(row_index)];
 var cell=(c._childIndexes?c.childNodes[c._childIndexes[col]]:c.childNodes[col]);
 return this.cells4(cell);
}

⌨️ 快捷键说明

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