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

📄 ig_webgrid_dom.js

📁 研究怎样通过手写代码来完成自动生成代码
💻 JS
📖 第 1 页 / 共 5 页
字号:
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="&nbsp;";
		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 + -