📄 dhtmlxgrid.js
字号:
_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 + -