📄 ig_webgrid_dom.js
字号:
function()
{
if(typeof(igtbl_addNew)=="undefined")
return null;
return igtbl_addNew(this.Grid.Id,this.Index);
},
"getHeadClass",
function()
{
if(this.HeaderClass!="")
return this.HeaderClass;
return this.Grid.HeaderClass;
},
"getRowSelectors",
function()
{
var res=this.Grid.RowSelectors;
if(this.RowSelectors!=0)
res=this.RowSelectors;
return res;
},
"removeColumn",
function(index)
{
if(!this.Node) return;
var column=this.Columns[index];
if(!column)
return;
var elem=igtbl_getDocumentElement(column.Id),fElem;
elem=igtbl_getArray(elem);
if(column.fId)
{
fElem=igtbl_getDocumentElement(column.fId);
fElem=igtbl_getArray(fElem);
}
for(var i=elem.length-1;i>=0;i--)
{
var cg=elem[i].parentNode.parentNode.previousSibling;
if(cg)
cg.removeChild(cg.childNodes[elem[i].cellIndex]);
elem[i].parentNode.removeChild(elem[i]);
if(fElem)
fElem[i].parentNode.removeChild(fElem[i]);
}
column.colElem=elem;
if(fElem)
column.colFElem=fElem;
if(column.Node)
column.Node.parentNode.removeChild(column.Node);
if(this.Columns.splice)
this.Columns.splice(index,1);
else
this.Columns=this.Columns.slice(0,index).concat(this.Columns.slice(index+1));
this.reIdColumns();
return column;
},
"insertColumn",
function(column,index)
{
if(!this.Node || !column || !column.Node || index<0 || index>this.Columns.length)
return;
var eAr,fAr;
var column1=this.Columns[index];
while(column1 && (!column1.getVisible() || !column1.hasCells()))
column1=this.Columns[column1.Index+1];
if(column1)
{
this.Columns.Node.insertBefore(column.Node,this.Columns[index].Node);
if(this.Columns.splice)
this.Columns.splice(index,0,column);
else
this.Columns=this.Columns.slice(0,index).concat(column,this.Columns.slice(index));
eAr=igtbl_getDocumentElement(column1.Id);
if(column1.fId)
fAr=igtbl_getDocumentElement(column1.fId);
}
else
{
this.Columns.Node.appendChild(column.Node);
this.Columns[this.Columns.length]=column;
var i=0;
while(!eAr && i<this.Columns.length)
eAr=igtbl_getDocumentElement(this.Columns[i++].Id);
if(!eAr)
return;
if(this.Columns[i-1].fId)
fAr=igtbl_getDocumentElement(this.Columns[i-1].fId);
}
eAr=igtbl_getArray(eAr);
fAr=igtbl_getArray(fAr);
if(column.colElem && eAr.length==column.colElem.length)
for(var i=0;i<eAr.length;i++)
{
var col=document.createElement("COL");
col.width=column.Width;
var tr=eAr[i].parentNode;
var cg=tr.parentNode.previousSibling;
if(column1)
{
if(cg)
cg.insertBefore(col,cg.childNodes[eAr[i].cellIndex]);
tr.insertBefore(column.colElem[i],eAr[i]);
}
else
{
if(cg)
cg.appendChild(col);
tr.appendChild(column.colElem[i]);
}
if(fAr)
{
var tr=fAr[i].parentNode;
if(column1)
tr.insertBefore(column.colFElem[i],fAr[i]);
else
tr.appendChild(column.colFElem[i]);
}
}
igtbl_dispose(eAr);
igtbl_dispose(fAr);
this.reIdColumns();
return column;
},
"reIdColumns",
function()
{
if(!this.Node) return;
var elem=igtbl_getDocumentElement(this.Columns[0].Id),fElem;
if(this.Columns[0].fId)
fElem=igtbl_getDocumentElement(this.Columns[0].fId);
var cn=1;
while(!elem && cn<this.Columns.length)
{
elem=igtbl_getDocumentElement(this.Columns[cn].Id);
if(this.Columns[cn].fId)
fElem=igtbl_getDocumentElement(this.Columns[cn].fId);
cn++;
}
if(!elem) return;
var eAr=elem;
eAr=igtbl_getArray(eAr);
fElem=igtbl_getArray(fElem);
var ri=0;
for(var i=0;i<this.Columns.length;i++)
{
this.Columns[i].Id=this.Grid.Id+"c_"+this.Index.toString()+"_"+i.toString();
this.Columns[i].Index=i;
if(this.ColFootersVisible)
this.Columns[i].fId=this.Grid.Id+"f_"+this.Index.toString()+"_"+i.toString();
if(!this.Columns[i].IsGroupBy && !(this.Node && this.Columns[i].getHidden()))
{
for(var j=0;j<eAr.length;j++)
{
var tr=eAr[j].parentNode;
var c=tr.childNodes[ri+this.firstActiveCell];
c.id=this.Columns[i].Id;
c.setAttribute("columnNo",i.toString());
}
if(fElem)
for(var j=0;j<fElem.length;j++)
{
var tr=fElem[j].parentNode;
var c=tr.childNodes[ri+this.firstActiveCell];
c.id=this.Columns[i].fId;
}
ri++;
}
}
igtbl_dispose(eAr);
igtbl_dispose(fElem);
},
"getSelGroupByRowClass",
function()
{
if(this.SelGroupByRowClass!="")
return this.SelGroupByRowClass;
return this.Grid.SelGroupByRowClass;
},
"getBorderCollapse",
function()
{
if(this.get("BorderCollapse")=="Separate")
return "";
if(this.Grid.get("BorderCollapseDefault")=="Separate")
return "";
return "collapse";
}
];
for(var i=0;i<igtbl_ptsBand.length;i+=2)
igtbl_Band.prototype[igtbl_ptsBand[i]]=igtbl_ptsBand[i+1];
/* Column object */
igtbl_Column.prototype=new igtbl_WebObject();
igtbl_Column.prototype.constructor=igtbl_Column;
igtbl_Column.base=igtbl_WebObject.prototype;
function igtbl_Column(node,band,index,nodeIndex)
{
if(arguments.length>0)
this.init(node,band,index,nodeIndex);
}
var igtbl_ptsColumn=[
"init",
function(node,band,index,nodeIndex)
{
igtbl_Column.base.init.apply(this,["column",null,node]);
this.Band=band;
this.Index=index;
this.Id=band.Grid.Id+"c_"+band.Index.toString()+"_"+index.toString();
if(band.ColFootersVisible)
this.fId=band.Grid.Id+"f_"+band.Index.toString()+"_"+index.toString();
var defaultProps=new Array("Key","HeaderText","DataType","CellMultiline","Hidden","AllowGroupBy","AllowColResizing","AllowUpdate",
"Case","FieldLength","CellButtonDisplay","HeaderClickAction","IsGroupBy","MaskDisplay","Selected",
"SortIndicator","NullText","ButtonClass","SelCellClass","SelHeadClass","ColumnType","ValueListPrompt",
"ValueList","ValueListClass","EditorControlID","DefaultValue","TemplatedColumn","Validators",
"CssClass","Style","Width","AllowNull","Wrap","ServerOnly","HeaderClass","ButtonStyle","Fixed","FooterClass",
"FixedHeaderIndicator","FooterText","HeaderStyle","FooterStyle");
var columnArray;
try{columnArray=eval("igtbl_"+band.Grid.Id+"_Columns_"+band.Index.toString()+"["+index.toString()+"]");}catch(e){}
if(columnArray)
for(var i=0;i<columnArray.length;i++)
this[defaultProps[i]]=columnArray[i];
this.ensureWebCombo();
if(node)
{
this.Node.setAttribute("index",index+1);
this.Node.setAttribute("cellIndex",nodeIndex+1);
}
igtbl_dispose(defaultProps);
if(this.EditorControlID)
{
this.editorControl=igtbl_getElementById(this.EditorControlID);
if(this.editorControl) this.editorControl=this.editorControl.Object;
}
if(this.Validators && this.Validators.length>0 && typeof(Page_Validators)!="undefined")
{
for(var i=0;i<this.Validators.length;i++)
{
var val=igtbl_getElementById(this.Validators[i]);
if(val)
val.enabled=false;
}
}
this.Changes=[];
},
"getAllowUpdate",
function()
{
var g=this.Band.Grid;
var res=g.AllowUpdate;
if(this.Band.AllowUpdate!=0)
res=this.Band.AllowUpdate;
if(this.AllowUpdate!=0)
res=this.AllowUpdate;
if(this.TemplatedColumn)
res=2;
return res;
},
"setAllowUpdate",
function (value)
{
this.AllowUpdate=value;
switch (this.DataType)
{
case 11: // check box column
igtbl_AdjustCheckboxDisabledState(this, this.Band.Index,this.Band.Grid.Rows,this.getAllowUpdate());
break;
}
},
"getHidden",
function()
{
return this.Hidden;
},
"setHidden",
function(h)
{
if(this.Band.Index==0)
{
if(this.Band.Grid.StatHeader)
{
var el=this.Band.Grid.StatHeader.getElementByColumn(this);
el.style.display=(h?"none":"");
}
if(this.Band.Grid.StatFooter)
{
var el=this.Band.Grid.StatFooter.getElementByColumn(this);
el.style.display=(h?"none":"");
}
}
igtbl_hideColumn(this.Band.Grid.Rows,this,h);
this.Hidden=h;
if(this.Band.Index==0)
this.Band.Grid.alignStatMargins();
var ac=this.Band.Grid.getActiveCell();
if(ac && ac.Column==this && h)
this.Band.Grid.setActiveCell(null);
else
this.Band.Grid.alignGrid();
},
"getVisible",
function()
{
return !this.getHidden() && !this.IsGroupBy;
},
"hasCells",
function()
{
return !this.ServerOnly && !this.IsGroupBy;
},
"getNullText",
function()
{
return igtbl_getNullText(this.Band.Grid.Id,this.Band.Index,this.Index);
},
"find",
function(re,back)
{
var g=this.Band.Grid;
if(re)
g.regExp=re;
if(!g.regExp || this.IsGroupBy)
return null;
g.lastSearchedCell=null;
if(back==true || back==false)
g.backwardSearch=back;
var row=null;
if(!g.backwardSearch)
{
row=g.Rows.getRow(0);
if(row && row.getHidden())
row=row.getNextRow();
while(row && (row.Band!=this.Band || row.getCellByColumn(this).getValue(true).search(g.regExp)==-1))
row=row.getNextTabRow(false,true);
}
else
{
var rows=g.Rows;
while(rows)
{
row=rows.getRow(rows.length-1);
if(row && row.getHidden())
row=row.getPrevRow();
if(row && row.Expandable)
rows=row.Rows;
else
{
if(!row)
row=rows.ParentRow;
rows=null;
}
}
while(row && (row.Band!=this.Band || row.getCellByColumn(this).getValue(true).search(g.regExp)==-1))
row=row.getNextTabRow(true,true);
}
g.lastSearchedCell=(row?row.getCellByColumn(this):null);
return g.lastSearchedCell;
},
"findNext",
function(re,back)
{
var g=this.Band.Grid;
if(!g.lastSearchedCell || g.lastSearchedCell.Column!=this)
return this.find(re,back);
if(re)
g.regExp=re;
if(!g.regExp)
return null;
if(back==true || back==false)
g.backwardSearch=back;
var row=g.lastSearchedCell.Row.getNextTabRow(g.backwardSearch,true);
while(row && (row.Band!=this.Band || row.getCellByColumn(this).getValue(true).search(g.regExp)==-1))
row=row.getNextTabRow(g.backwardSearch,true);
g.lastSearchedCell=(row?row.getCellByColumn(this):null);
return g.lastSearchedCell;
},
"getFooterText",
function()
{
var fId=this.Band.Grid.Id+"f_"+this.Band.Index+"_"+this.Index;
var foot=igtbl_getElementById(fId);
if(foot)
return igtbl_getInnerText(foot);
return "";
},
"setFooterText",
function(value)
{
var fId=this.Band.Grid.Id+"f_"+this.Band.Index+"_"+this.Index;
var foot=igtbl_getDocumentElement(fId);
if(foot)
{
if(igtbl_trim(value)=="")
value=" ";
if(foot.length)
{
if(foot[0].childNodes.length>0 && foot[0].childNodes[0].tagName=="NOBR")
value="<nobr>"+value+"</nobr>";
for(var i=0;i<foot.length;i++)
foot[i].innerHTML=value;
}
else
{
if(foot.childNodes.length>0 && foot.childNodes[0].tagName=="NOBR")
value="<nobr>"+value+"</nobr>";
foot.innerHTML=value;
}
}
},
"getSelClass",
function()
{
if(this.SelCellClass!="")
return this.SelCellClass;
return this.Band.getSelClass();
},
"getHeadClass",
function()
{
if(this.HeaderClass!="")
return this.HeaderClass;
return this.Band.getHeadClass();
},
"getFooterClass",
function()
{
if(this.FooterClass!="")
return this.FooterClass;
return this.Band.getFooterClass();
},
"compareRows",
function(row1,row2)
{
if(igtbl_columnCompareRows)
return igtbl_columnCompareRows.apply(this,[row1,row2]);
return 0;
},
"compareCells",
function(cell1,cell2)
{
if(igtbl_columnCompareCells)
return igtbl_columnCompareCells.apply(this,[cell1,cell2]);
return 0;
},
"move",
function(toIndex)
{
if(!this.Node) return;
oldIndex=this.Index;
this.Band.Grid.recordChange("ColumnMove",this,toIndex);
this.Band.insertColumn(this.Band.removeColumn(this.Index),toIndex);
igtbl_swapCells(this.Band.Grid.Rows,this.Band.Index,oldIndex,toIndex);
},
"getLevel",
function(s)
{
var l=new Array();
l[0]=this.Band.Index;
l[1]=this.Index;
if(s)
{
s=l.join("_");
igtbl_dispose(l);
delete l;
return s;
}
return l;
},
"getFixed",
function()
{
return !this.Band.Grid.UseFixedHeaders || this.Fixed;
},
"setFixed",
function(fixed)
{
this.Fixed=fixed;
},
"getWidth",
function()
{
if(typeof(this.Width)!="string")
return this.Width;
var e=igtbl_getElementById(this.Id);
if(!e || !e.offsetWidth)
return parseInt(this.Width,10);
if(typeof(this.Width)=="string")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -