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

📄 ig_webgrid_dom.js

📁 研究怎样通过手写代码来完成自动生成代码
💻 JS
📖 第 1 页 / 共 5 页
字号:
	{
		this.Width=e.offsetWidth;
		var gs=this.Band.Grid,gn=gs.Id;
		if(gs.UseFixedHeaders && !this.getFixed())
		{
			var style=igtbl_getStyleSheet("DIV."+gn+"-cdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=e.offsetWidth;
			style=igtbl_getStyleSheet("DIV."+gn+"-hdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=e.offsetWidth;
			style=igtbl_getStyleSheet("DIV."+gn+"-fdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=e.offsetWidth;
		}
	}
	return this.Width;
},
"setWidth",
function(width)
{
	var gs=this.Band.Grid,gn=gs.Id;
	var colObj=igtbl_getElementById(this.Id);
	var fac=this.Band.firstActiveCell;
	var c1w=width;
	if(c1w>0 && !igtbl_fireEvent(gn,gs.Events.BeforeColumnSizeChange,"(\""+gn+"\",\""+colObj.id+"\","+c1w+")"))
	{
		var fixed=(gs.UseFixedHeaders && !this.getFixed());
		if(fixed)
		{
			var style=igtbl_getStyleSheet("DIV."+gs.Id+"-cdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=c1w;
			style=igtbl_getStyleSheet("DIV."+gs.Id+"-hdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=c1w;
			style=igtbl_getStyleSheet("DIV."+gn+"-fdf-"+this.Band.Index+"-"+this.Index);
			if(style)
				style.width=c1w;
		}
		var columns=igtbl_getDocumentElement(this.Id);
		if(!columns.length)
			columns=[columns];
		for(var i=0;i<columns.length;i++)
		{
			var cg;
			if(this.Band.Index==0 && !this.Band.IsGrouped && (gs.StationaryMargins==1 || gs.StationaryMargins==3))
				cg=gs.Element.childNodes[0];
			else
				cg=columns[i].parentNode.parentNode.previousSibling;
			var c;
			if(cg)
				c=cg.childNodes[columns[i].cellIndex];
			else
				c=columns[i];
			if(c.width) c.width="";
			if(columns[i].width) columns[i].width="";
			c.style.width=c1w;
			if(fixed)
			{
				var d=c.style.display;
				c.style.display="none";
				c.style.display=d;
			}
		}
		if(gs.UseFixedHeaders)
		{
			var scrw=gs.scrElem.firstChild.offsetWidth+c1w-this.getWidth();
			if(scrw>=0)
				gs.scrElem.firstChild.style.width=scrw;
		}
		this.Width=c1w;
		if(this.Band.Index==0)
		{
			if(gs.StatHeader)
				gs.StatHeader.ScrollTo(gs.Element.parentNode.scrollLeft);
			if(gs.StatFooter)
			{
				gs.StatFooter.Resize(colObj.cellIndex,c1w);
				gs.StatFooter.ScrollTo(gs.Element.parentNode.scrollLeft);
			}
		}
		gs.alignDivs(0,true);
		gs.removeChange("ResizedColumns",this);
		gs.recordChange("ResizedColumns",this,c1w);
		igtbl_fireEvent(gn,gs.Events.AfterColumnSizeChange,"(\""+gn+"\",\""+colObj.id+"\","+c1w+")");
		if(gs.NeedPostBack)
			igtbl_doPostBack(gn);
		return true;
	}
	return false;
},
"ensureWebCombo",
function()
{
	if(typeof(igcmbo_getComboById)!="undefined" && igcmbo_getComboById(this.EditorControlID) && !this.WebComboId)
		this.WebComboId=this.EditorControlID;
},
"getRealIndex",
function(row)
{
	if(this.IsGroupBy)
		return -1;
	var ri=-1;
	var colspan=1;
	var cell=null;
	if(row)
		cell=row.Element.cells[row.Band.firstActiveCell];
	var i=0;
	while(i<this.Index+1 && (!this.Band.Columns[i].hasCells() || this.Node && this.Band.Columns[i].getHidden()))
		i++;
	if(i>this.Index)
		return ri;
	ri=0;
	for(;i<this.Index;i++)
	{
		if(!this.Band.Columns[i].hasCells() || this.Node && this.Band.Columns[i].getHidden())
			continue;
		if(row)
		{
			if(colspan>1)
			{
				colspan--;
				continue;
			}
			var cellSplit;
			cellSplit=cell.id.split("_");
			if(parseInt(cellSplit[cellSplit.length-1],10)>i)
				ri--;
			else
			{
				cell=cell.nextSibling;
				if(cell)
					colspan=cell.colSpan;
			}
		}
		ri++;
	}
	return ri;
},
"getFixedHeaderIndicator",
function()
{
	if(this.FixedHeaderIndicator!=0)
		return this.FixedHeaderIndicator;
	if(this.Band.FixedHeaderIndicator!=0)
		return this.Band.FixedHeaderIndicator;
	return this.Band.Grid.FixedHeaderIndicator;
},
"getValueFromString",
function(value)
{
	if(value==null || typeof(value)=="undefined")
		return null;
	value=value.toString();
	if(this.AllowNull && value==this.getNullText())
		return null;
	return igtbl_valueFromString(value,this.DataType);
}
];
for(var i=0;i<igtbl_ptsColumn.length;i+=2)
	igtbl_Column.prototype[igtbl_ptsColumn[i]]=igtbl_ptsColumn[i+1];

/* Client events object */
igtbl_Events.prototype=new igtbl_WebObject();
igtbl_Events.prototype.constructor=igtbl_Events;
igtbl_Events.base=igtbl_WebObject.prototype;
function igtbl_Events(grid)
{
	if(arguments.length>0)
		this.init(grid);
}
var igtbl_ptsEvents=[
"init",
function(grid)
{
	igtbl_Events.base.init.apply(this,["events",null,grid.Node?grid.Node.selectSingleNode("ClientSideEvents"):null]);

	var defaultProps=new Array("AfterCellUpdate","AfterColumnMove","AfterColumnSizeChange","AfterEnterEditMode","AfterExitEditMode",
								"AfterRowActivate","AfterRowCollapsed","AfterRowDeleted","AfterRowTemplateClose","AfterRowTemplateOpen",
								"AfterRowExpanded","AfterRowInsert","AfterRowSizeChange","AfterSelectChange","AfterSortColumn",
								"BeforeCellChange","BeforeCellUpdate","BeforeColumnMove","BeforeColumnSizeChange","BeforeEnterEditMode",
								"BeforeExitEditMode","BeforeRowActivate","BeforeRowCollapsed","BeforeRowDeleted","BeforeRowTemplateClose",
								"BeforeRowTemplateOpen","BeforeRowExpanded","BeforeRowInsert","BeforeRowSizeChange","BeforeSelectChange",
								"BeforeSortColumn","ClickCellButton","CellChange","CellClick","ColumnDrag","ColumnHeaderClick","DblClick",
								"EditKeyDown","EditKeyUp","InitializeLayout","InitializeRow","KeyDown","KeyUp","MouseDown","MouseOver",
								"MouseOut","MouseUp","RowSelectorClick","TemplateUpdateCells","TemplateUpdateControls","ValueListSelChange",
								// V20043a
								"BeforeRowUpdate","AfterRowUpdate","XmlHTTPResponse");
	var eventsArray;
	try{eventsArray=eval("igtbl_"+grid.Id+"_Events");}catch(e){}
	if(eventsArray)
		for(var i=0;i<eventsArray.length;i++)
			this[defaultProps[i]]=eventsArray[i];
	igtbl_dispose(defaultProps);
}];
for(var i=0;i<igtbl_ptsEvents.length;i+=2)
	igtbl_Events.prototype[igtbl_ptsEvents[i]]=igtbl_ptsEvents[i+1];

/* Rows collection object */
igtbl_Rows.prototype=new igtbl_WebObject();
igtbl_Rows.prototype.constructor=igtbl_Rows;
igtbl_Rows.base=igtbl_WebObject.prototype;
function igtbl_Rows(node,band,parentRow)
{
	if(arguments.length>0)
	{
		var element=null;
		if(band.Index==0 && !parentRow)
			element=band.Grid.Element.tBodies[0];
		else if(parentRow && parentRow.Element)
		{
			if(parentRow.GroupByRow)
			{
				var tb=parentRow.Element.childNodes[0].childNodes[0].tBodies[0];
				if(tb.childNodes.length>1)
					this.Element=tb.childNodes[1].childNodes[0].childNodes[0].tBodies[0];
			}
			else if(parentRow.Element.nextSibling && parentRow.Element.nextSibling.getAttribute("hiddenRow"))
				this.Element=parentRow.Element.nextSibling.childNodes[parentRow.Band.firstActiveCell].childNodes[0].tBodies[0];
		}
		this.init(element,node,band,parentRow);
	}
}
var igtbl_ptsRows=[
"init",
function(element,node,band,parentRow)
{
	igtbl_Rows.base.init.apply(this,["rows",element,node]);
	
	this.Grid=band.Grid;
	this.Band=band;
	this.ParentRow=parentRow;
	this.rows=new Array();
	this.length=0;
	if(node)
	{
		this.SelectedNodes=node.selectNodes("Row");
		if(!this.SelectedNodes.length)
			this.SelectedNodes=node.selectNodes("Group");
		this.length=this.SelectedNodes.length;
	}
	else
	{
		if(parentRow)
			this.length=parentRow.ChildRowsCount;
		else
		{
			this.length=this.Element.childNodes.length;
			for(var i=0;i<this.Element.childNodes.length;i++)
				if(this.Element.childNodes[i].getAttribute("hiddenRow"))
					this.length--;
		}
	}
	if(this.Element)
		this.Element.Object=this;
	this.lastRowId="";
},
"getRow",
function(rowNo,rowElement)
{
	if(rowNo<0 || !this.Element || !this.Element.childNodes)
		return null;
	if(rowNo>=this.length)
	{
		if(this.length>this.rows.length)
			this.rows[this.length-1]=null;
		return null;
	}
	if(rowNo>=this.rows.length)
		this.rows[this.length-1]=null;
	if(!this.rows[rowNo])
	{
		var row=rowElement;
		if(!row)
		{
			var cr=0;
			if(this.Grid.Bands.length==1 && !this.Grid.Bands[0].IsGrouped)
				row=this.Element.childNodes[rowNo];
			else
				for(var i=0;i<this.Element.childNodes.length;i++)
					if(!this.Element.childNodes[i].getAttribute("hiddenRow"))
					{
						if(rowNo==cr)
						{
							row=this.Element.childNodes[i];
							break;
						}
						cr++;
					}
		}
		if(!row)
			return null;
		this.rows[rowNo]=new igtbl_Row(row,(this.Node?this.SelectedNodes[rowNo]:null),this,rowNo);
	}
	return this.rows[rowNo];
},

"getRowById",
function(rowId)
{
	for(var i=0;i<this.length;i++)
	{
		var row=this.getRow(i);
		if(row.Element.id==rowId)
			return row;
	}
	return null;
},
"getColumn",
function(colNo)
{
	var thead=this.Element.previousSibling;
	if(!thead || thead.tagName!="THEAD")
		return;
	var j=-1;
	for(var i=0;i<this.Band.Columns.length;i++)
	{
		if(this.Band.Columns[i].hasCells())
			j++;
		if(i==colNo)
			break;
	}
	if(j<0 || j>=this.Band.Columns.length)
		return null;
	return thead.firstChild.cells[j+this.Band.firstActiveCell];
},
"indexOf",
function(row)
{
	if(row.Node)
		return parseInt(row.Node.getAttribute("i"),10);
	if(this.Grid.Bands.length==1 && !this.Grid.Bands[0].IsGrouped)
		return row.Element.sectionRowIndex;
	var level=-1;
	var rId=row.Element.id,rows=this.Element.rows;
	for(var i=0;i<rows.length;i++)
	{
		var r=rows[i];
		if(!r.getAttribute("hiddenRow"))
			level++;
		else
			continue;
		if(r.id==rId)
			return level;
	}
	return -1;
},
"insert",
function(row,rowNo)
{
	var row1=this.getRow(rowNo);
	if(row1)
	{
		if(this.rows.splice)
			this.rows.splice(rowNo,0,row);
		else
			this.rows=this.rows.slice(0,rowNo).concat(row,this.rows.slice(rowNo));
		this.Element.insertBefore(row.Element,row1.Element);
		if(row.Expandable && row.HiddenElement && !row.GroupByRow)
			this.Element.insertBefore(row.HiddenElement,row1.Element);
		if(this.Node)
			this.Node.insertBefore(row.Node,row1.Node);
	}
	else
	{
		this.rows[this.rows.length]=row;
		this.Element.appendChild(row.Element);
		if(row.Expandable && row.HiddenElement && !row.GroupByRow)
			this.Element.appendChild(row.HiddenElement);
		if(this.Node)
			this.Node.appendChild(row.Node);
	}
	this.length++;
},
"remove",
function(rowNo)
{
	var row=this.getRow(rowNo);
	if(!row)
		return;
	this.Element.removeChild(row.Element);
	if(row.Expandable && row.HiddenElement && !row.GroupByRow)
		this.Element.removeChild(row.HiddenElement);
	if(row.Node)
		row.Node.parentNode.removeChild(row.Node);
	if(this.rows.splice)
		this.rows.splice(rowNo,1);
	else
		this.rows=this.rows.slice(0,rowNo).concat(this.rows.slice(rowNo+1));
	this.length--;
	return row;
},
"sort",
function(sortedCols)
{
	if(igtbl_clctnSort)
		igtbl_clctnSort.apply(this,[sortedCols]);
},
"getFooterText",
function(columnKey)
{
	var tFoot;
	if(this.Band.Index==0 && this.Grid.StatFooter)
		tFoot=this.Grid.StatFooter.Element;
	else
		tFoot=this.Element.nextSibling;
	var col=this.Band.getColumnFromKey(columnKey);
	if(tFoot && tFoot.tagName=="TFOOT" && col)
	{
		var fId=this.Grid.Id+"f_"+this.Band.Index+"_"+col.Index;
		for(var i=0;i<tFoot.rows[0].childNodes.length;i++)
			if(tFoot.rows[0].childNodes[i].id==fId)
				return igtbl_getInnerText(tFoot.rows[0].childNodes[i]);
	}
	return "";
},
"setFooterText",
function(columnKey,value)
{
	var tFoot;
	if(this.Band.Index==0 && this.Grid.StatFooter)
		tFoot=this.Grid.StatFooter.Element;
	else
		tFoot=this.Element.nextSibling;
	var col=this.Band.getColumnFromKey(columnKey);
	if(tFoot && tFoot.tagName=="TFOOT" && col)
	{
		var fId=this.Grid.Id+"f_"+this.Band.Index+"_"+col.Index;
		for(var i=0;i<tFoot.rows[0].childNodes.length;i++)
			if(tFoot.rows[0].childNodes[i].id==fId)
			{
				if(igtbl_trim(value)=="")
					value="&nbsp;";
				if(tFoot.rows[0].childNodes[i].childNodes.length>0 && tFoot.rows[0].childNodes[i].childNodes[0].tagName=="NOBR")
					value="<nobr>"+value+"</nobr>";
				tFoot.rows[0].childNodes[i].innerHTML=value;
				break;
			}
	}
},
"render",
function()
{
	var strTransform=this.applyXslToNode(this.Node);
	if(strTransform)
	{
		this.Grid.innerObj.innerHTML=strTransform;
		var tbl=this.Element.parentNode;
		tbl.replaceChild(this.Grid.innerObj.firstChild.firstChild,this.Element);
		this.Element=tbl.tBodies[0];
		this.Element.Object=this;
		for(var i=0;i<this.Band.Columns.length;i++)
			if(this.Band.Columns[i].Selected && this.Band.Columns[i].hasCells())
			{
				var col=this.getColumn(i);
				if(col)
					igtbl_selColRI(this.Grid.Id,col,this.Band.Index,i);
			}
	}
},
"applyXslToNode",
function(node,rowToStart)
{
	if(!node) return "";
	if(typeof(rowToStart)=="undefined")
		rowToStart=0;
	var xslProc=this.Grid.XslProcessor;

	var oldColumns=node.selectSingleNode("Columns");
	if(oldColumns)
		node.removeChild(oldColumns);
	node.appendChild(this.Band.Columns.Node.cloneNode(true));

	xslProc.input=node;
	xslProc.addParameter("gridName",this.Grid.Id);
	if(!this.SelectedNodes.length || this.SelectedNodes[0].nodeName!="Group")
	{
		var fac=this.Band.firstActiveCell;
		xslProc.addParameter("fac",fac);
		var rs=this.Band.getRowSelectors();
		xslProc.addParameter("rs",rs);
		if(fac>1 || rs==2 && fac==1)
		{
	

⌨️ 快捷键说明

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