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

📄 datagrid.htm

📁 网上商城的设计与实现
💻 HTM
📖 第 1 页 / 共 2 页
字号:
// ************************************************************************<BR>
// Microsoft Script Library<BR>
// Visual InterDev 6.0 DataGrid Object for DHTML<BR>
// Copyright 1998 Microsoft Corporation. All Rights Reserved.<BR>
// <B>Do not modify in design view. Switch to source view.</B><BR>
// ************************************************************************<BR>
// <SCRIPT>
function CreateDataGrid(strName,funcInit,objParent)
{
	if (typeof(strName) != 'string' || strName == '')
		return null;

	// create tag in document
	var strTag = '<TABLE cellspacing="0" cellpadding="0" name="' + strName + '" id="' + strName + '"><TR><TD></TD></TR></TABLE>'
	if (typeof(objParent) == 'object')
		objParent.insertAdjacentHTML('BeforeEnd',strTag);
	else
		document.write(strTag);

	var objTable = document.all[strName];
	if (typeof(objTable) != 'object')
		return null;
	var bNameExists = eval('typeof(' + strName + ') == "object"');
	if (!bNameExists)	
		eval(strName + ' = objTable');
	
	// public members
	objTable.tableAttributes = '';		// <TABLE tableAttributes>
	objTable.headerAttributes = '';		// <TR headerAttributes>
	objTable.headerWidth = new Array;	// <TD> width attributes
	objTable.headerFormat = '';			// <TH>headerFormat colHeader[nCol]</TH>
	objTable.colHeader = new Array;
	objTable.rowAttributes = new Array;	// <TR rowAttributes[nRow]>
	objTable.rowFormat = new Array;		
	objTable.colData = new Array;		// <TD colAttributes[nCol]>rowFormat[nRow] colData[nCol]</TD>
	objTable.colAttributes = new Array;	// OR
	objTable.colFormat = new Array;		// <TD colAttributes[nCol]>colFormat[nCol] colData[nCol]</TD>
	objTable.pageSize = 0;
	objTable.allColumns = false;
	objTable.hiliteAttributes = '';
	objTable.hasPageNumber = false;
	objTable.displayHeader = true;
	objTable.navbarAlignment = 'center';
	
	// published methods
	objTable.show = _DG_show;
	objTable.hide = _DG_hide;
	objTable.isVisible = _DG_isVisible;
	objTable.getPagingNavbar = _DG_getPagingNavbar;
	objTable.getRecordsetNavbar = _DG_getRecordsetNavbar;
	objTable.bindAllColumns = _DG_bindAllColumns;
	
	// public methods
	objTable.getDataSource = _DG_getDataSource;
	objTable.setDataSource = _DG_setDataSource;
	objTable.showPageNavbar = _DG_showPageNavbar;
	objTable.showRecordNavbar = _DG_showRecordNavbar;
	
	// private methods
	objTable._fireEvent = _DG__fireEvent;
	objTable._evalRowInfo = _DG__evalRowInfo;
	objTable._evalSingleRow = _DG__evalSingleRow;
	objTable._display = _DG__display;
	objTable._syncTableProperties = _DG__syncTableProperties;
	objTable.onclick = _DG__onclick;
	objTable.onkeydown = _DG__onkeydown;
		
	// private members
	objTable._objDataSource = null;
	objTable._objNavbar = null;
	objTable._objRecNavbar = null;
	objTable._rowCount = 0; 
	objTable._bExclusive = false;
	objTable._bEvalingInfo = false;
	objTable._curPage = 0;
	objTable._rowInfo = new Array;
	
	objTable._objEventManager = CreateEventManager();
	objTable._fireEvent(funcInit);
	objTable._auxID = 'DataGrid';
	if (document.body.onafterupdate == null)
	{
		DG_ONAFTERUPDATE = 'datagridonafterupdate';
		document.body.onafterupdate = _DG__bodyonafterupdate;
	}
	
	return objTable;
}

function _DG_show()
{
	this.style.visibility = 'visible';
	this._display();
	this._syncTableProperties();
}

function _DG_hide()
{	this.style.visibility = 'hidden';	}

function _DG_isVisible()
{	return (this.style.visibility != 'hidden');	}
	
function _DG_getPagingNavbar()
{	return document.all(this.id + '_PageNavbar');	}

function _DG_getRecordsetNavbar()
{	return document.all(this.id + '_RecordNavbar');	}

function _DG_bindAllColumns()
{	
	this.allColumns = true;	
	this._curPage = -1;
	_DG__onrowenter(this);
}
	
function _DG_getDataSource()
{	return this._objDataSource;		}

function _DG_setDataSource(objDataSource)
{
	if (typeof(objDataSource) != 'object')
		return false;
	
	if (this._objDataSource != null)
	{
		this._objDataSource.unadvise(RS_ONROWENTER, this._onrowenterID);
		this._objDataSource.unadvise(RS_ONAFTERUPDATE, this._onafterupdateID);		
		this._objDataSource.unadvise(DG_ONAFTERUPDATE, this._dgonafterupdateID);
		this._objDataSource.unadvise(RS_ONDATASETCOMPLETE, this._ondatasetcompleteID);
	}
	
	this._objDataSource = objDataSource;
	
	var objNavbar = this.getRecordsetNavbar();
	if (objNavbar != null)
		objNavbar.setDataSource(objDataSource);
	
	objNavbar = this.getPagingNavbar();
	if (objNavbar != null)
		objNavbar.setDataSource(objDataSource);
		
	if (this._objDataSource != null)
	{
		this._bExclusive = true;
		this._onrowenterID = objDataSource.advise(RS_ONROWENTER, '_DG__onrowenter(' + this.name + ');');
		this._onafterupdateID = objDataSource.advise(RS_ONAFTERUPDATE, '_DG__onafterupdate(' + this.name + ', true);');
		this._dgonafterupdateID = objDataSource.advise(DG_ONAFTERUPDATE, '_DG__onafterupdate(' + this.name + ', false);');
		this._ondatasetcompleteID = objDataSource.advise(RS_ONDATASETCOMPLETE, this.name + '._curPage = -1;_DG__onrowenter(' + this.name + ');');
		this._bExclusive = false;
	}
	
		
	return true;
}

function _DG_showPageNavbar(nButtonMask,nAlignment)
{
	var objNavbar = this.getPagingNavbar();
		
	if (objNavbar == null)
	{
		var objRecNavbar = this.getRecordsetNavbar();
		if (objRecNavbar == null)
		{
			this.insertRow().insertCell().innerHTML = '<TABLE navbar="1" width=100% border=0><TR><TD align=' + this.navbarAlignment + '></TD><TD align=right valign=middle></TD></TR></TABLE>';
			objNavbar =  CreateRecordsetNavbar(this.name + '_PageNavbar',	null,
								this.rows(1).cells(0).children(0).rows(0).cells(0));
		}
		else
		{
			var nPlace = (objRecNavbar.children.length - (objRecNavbar.children.length % 2)) / 2;
			objNavbar =  CreateRecordsetNavbar(this.name + '_PageNavbar',	null, objRecNavbar.children(nPlace));
		}
		
		objNavbar.setAlignment(nAlignment);
		objNavbar.setButtonStyles(nButtonMask);
		objNavbar.updateOnMove = false;
		if (this._objDataSource != null)
			objNavbar.setDataSource(this._objDataSource);
	
		objNavbar.pageSize = this.pageSize;			 
	}
	
	return	objNavbar;
}

function _DG_showRecordNavbar(nButtonMask,nAlignment)
{
	var objRecNavbar = this.getRecordsetNavbar();
	if (objRecNavbar == null)
	{
		var objNavbar = this.getPagingNavbar();
		if (objNavbar == null)
		{
			this.insertRow().insertCell().innerHTML = '<TABLE navbar="1" width=100% border=0><TR><TD align=' + this.navbarAlignment + '></TD><TD align=right valign=middle></TD></TR></TABLE>';
			objRecNavbar =  CreateRecordsetNavbar(this.name + '_RecordNavbar', 
								null, this.rows(1).cells(0).children(0).rows(0).cells(0));
		}
		else
		{
			var nPlace = (objNavbar.children.length - (objNavbar.children.length % 2)) / 2;
			objRecNavbar =  CreateRecordsetNavbar(this.name + '_RecordNavbar', null, objNavbar.children(nPlace));	
		}
		
		objRecNavbar.setAlignment(nAlignment);
		objRecNavbar.setButtonStyles(nButtonMask);
		objRecNavbar.updateOnMove = false;
		if (this._objDataSource != null)
			objRecNavbar.setDataSource(this._objDataSource);
	}
	
	return objRecNavbar;
}

function _DG__fireEvent(funcToFire)
{
	if (typeof(funcToFire) == 'undefined')
	{
		if (this._objEventManager != null) 
			this._objEventManager.fireEvent('on' + window.event.type);
	}
	else
		_EM__fireEvent(funcToFire);
}

function _DG__evalRowInfo()
{
	var objRS = this._objDataSource;
	if (objRS.absolutePosition > (this.pageSize * this._curPage))
		this._rowInfo.length = objRS.absolutePosition - this.pageSize * this._curPage - 1;
	else
		this._rowInfo.length = 0;
	
	if (this.allColumns)
	{	// auto-generate data from recordset
		this.colHeader.length = 0;
		this.colData.length = 0;
		this.headerWidth.length = 0;
		var nCount = objRS.fields.getCount();
		for (var i=0; i < nCount; i++)
		{
			if (this.displayHeader)
			{
				this.colHeader[i] = '"' + objRS.fields.getName(i) + '"';
				this.headerWidth[i] = '';
			}
			this.colData[i] = objRS.name + '.fields.getValue(' + i + ')';
		}
	}
			
	if (this.hasPageNumber)
	{
		var nPages = 1;
		var nCount = objRS.getCount();
		var strHTML = '';
		
		if (nCount > 0 && this.pageSize > 0)
			nPages = ((nCount  - 1) / this.pageSize) + 1;
		strHTML += '<FONT size=2><NOBR>Page : ' + (this._curPage + 1) + ' of ' + parseInt(nPages) + '</NOBR></FONT>';
		this.rows(1).cells(0).children(0).rows(0).cells(1).innerHTML = strHTML;
	}
	
	this._rowInfo[this._rowInfo.length] = this._evalSingleRow();
	this._bEvalingInfo = true;
	for (this._rowCount = this._rowInfo.length; (this._rowCount < this.pageSize && !objRS.EOF) || (this.pageSize == 0 && !objRS.EOF); ++ this._rowCount)
		objRS.moveNext();
	this._bEvalingInfo = false;
	
	this._rowCount = 0;			
}

function _DG__evalSingleRow(hilite)
{
	if (this._objDataSource.EOF)
		return '';
		
	var strDetail = '';
	var nCols = this.colData.length;
	for (var nCol=0; nCol < nCols; nCol++)
	{	
		// apply column attributes to <TD>
		strDetail += '<TD';
		if (typeof(hilite) != 'undefined')
			strDetail += ' ' + hilite;
		
		if (nCol < this.colAttributes.length)
			strDetail += ' ' + this.colAttributes[nCol];
	

⌨️ 快捷键说明

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