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

📄 alai_tc.js

📁 阿赖实用javascript控件程序当前包括表格控件、浮动层窗体控件、菜单控件和目录树控件(及目录树模板)几种。
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*******************************************************************************
		阿赖网页表格控件程序 由赖国欣设计于2003年3月-6月,保留所有权利!
*********************************************************************************/
function alai_tc(tbl,caption,dataType,tcStyle,tblStyle,rowStyle,colStyle)
{
try{
	var tc=this;
	tc.err="";
	tc.col=[];
	tc.tbl=tbl;
	tc.copywrite="Copywrite by Alai(赖国欣) (c)2003,All right reserved!"
	if(!document.getElementById){throw new Error(999,"Your browser dosen't support Alai_tc function,IE5.0+ is recommended.");}
	tc.ctr=document.createElement("table");
	tc.extConvert=new Function();
	tc.setCaption=function(c)
	{
		var c=c==null?[]:c.split("|");
		for(var i=0;i<tc.col.length;i++){tc.col[i].innerHTML=c[i]==null?"&nbsp;":c[i];}
	}
	tc.setDataType=function(dataType)
	{
		var dt=dataType==null?[]:dataType.split("|");
		for(var i=0;i<tc.col.length;i++)
		{
			dType[i]=dt[i]==null?"char":dt[i];
			if(dType[i].toUpperCase()=="CNPY")load_js("pingying.js");
			else if(dType[i].toUpperCase()=="CNBH")load_js("bihua.js");
		}
		tc.dType=dType;
	}
	tc.setTcStyle=function(style)
	{
		var defCss="border:1 outset;height:21;text-align:center;white-space:nowrap;overflow:hidden;";
		tcStyle=style==null?"":style;
		for(var i=0;i<tc.col.length;i++)tc.col[i].style.cssText=defCss+tcStyle;
	}
	tc.setTblStyle=function(style){if(style!=null){tc.tbl.style.cssText=style;tblStyle=style;}}
	tc.setRowStyle=function(style)
	{
		if(style==null)style=rowStyle
		if(style!=null)
		{
			var s=style.split("|");
			var m=0;
			for(var i=0;i<tr.length;i++)
			{
				var td=tr[i].cells
				for(var j=0;j<td.length;j++)td[j].style.cssText+=";"+s[m];
				m=(m>=s.length-1)?0:++m;
			}
			rowStyle=style;
		}
		setSelStyle()
	}
	tc.setColStyle=function(style)
	{
		if(style==null)style=colStyle
		if(style==null){return;}
		var s=style.split("|");
		for(var i=0;i<tr.length;i++)
		{
			var m=0;
			var td=tr[i].cells
			for(var j=0;j<td.length;j++)
			{
				td[j].style.cssText+=";"+s[m];
				m=(m>=s.length-1)?0:++m;
			}
		}
		colStyle=style;
	}
	var dType=[];
	var sortBy=[];
	var tdLocate
	var selTr=[]
	var selFC,selBC
	var jsPath=""
	var setSelStyle=function()
	{
		for(var i=0;i<selTr.length;i++)
		{	var td=selTr[i].cells
			for(var j=0;j<td.length;j++)
			{
				td[j].style.color=selFC
				td[j].style.backgroundColor=selBC
			}
		}
		if(tdLocate!=null)
		{
			var c=tdLocate.currentStyle.color
			tdLocate.style.color=tdLocate.currentStyle.backgroundColor
			tdLocate.style.backgroundColor=c
		}
	}
	var tblSort=function(tbl,colIndex,By,DataType)
	{
		var convert=function(Data,Type)
		{	var Rst=Data;
			var cn_code=function(idx)
			{	if	(idx<100){return String.fromCharCode(0,idx);}
				else{var s=idx.toString();return String.fromCharCode(parseInt(s.substring(0,s.length-2)),idx%100);}
			}
			switch(Type.toUpperCase())
			{	case "CHAR":	Rst=Data;break;
				case "NUM":		Rst=parseFloat(Data);if(isNaN(Rst))Rst=Data;break;
				case "DATE":	Rst=Date.parse(Data);if(isNaN(Rst))Rst=Data;break;
				case "CNPY":
					if(typeof(strChinesePingYing)=="undefined"){return Data;}
					Rst="";
					for(var i=0;i<Data.length;i++){var idx=strChinesePingYing.indexOf(Data.charAt(i));Rst+=idx!=-1?cn_code(idx):Data.charAt(i);}
					break;
				case "CNBH":
					if(typeof(strChineseBiHua)=="undefined"){return Data;}
					Rst="";
					for(var i=0;i<Data.length;i++){var idx=strChineseBiHua.indexOf(Data.charAt(i));Rst+=idx!=-1?cn_code(idx):Data.charAt(i);}
					break;
				default :	Rst=tc.extConvert(Data,Type);if(Rst==null){Rst=Data};
			}
			return Rst;
		}
		var ByAsc=(By=="ASC")
		var arySort=[]
		for(var i=0;i<tbl.rows.length;i++)
		{
			var Data=(tbl.rows[i].cells[colIndex])?(tbl.rows[i].cells[colIndex].innerText.toLowerCase()):null;
			Data=convert(Data,DataType);
			arySort[i]=new Array(Data,tbl.rows[i]);
		}
		arySort.sort(function(){var a=arguments;return ByAsc?(a[0][0]>a[1][0]?1:(a[0][0]<a[1][0]?-1:0)):(a[0][0]<a[1][0]?1:(a[0][0]>a[1][0]?-1:0));})
		for(i=0;i<arySort.length;i++){tbl.lastChild.appendChild(arySort[i][1]);}
	}
	var load_js=function (src)
	{
		var script=document.getElementsByTagName("SCRIPT");
		for(var i=0;i<script.length;i++)
		{
			var s=script[i].src.toLowerCase()
			if(s==src.toLowerCase())return;
			if(s.indexOf("alai_tc.js")!=-1){jsPath=s.replace("alai_tc.js","")}
		}
		document.write('<script src="'+jsPath+src+'"></script>');
	}
	Array.prototype.remove=function(index){if(index<0 || index>=this.length)return;for(var i=index;i<this.length;i++)this[i]=this[i+1];this.length--;}
	Array.prototype.indexOf=function(elm){for(var i=0;i<this.length;i++)if(elm==this[i])return i;return -1;}

	if(tbl==null){throw new Error(999,"Miss table object.The first argument is required!");}
	else if(!isNaN(parseInt(tbl)))
	{	var i=parseInt(tbl);
		var tbls=document.all.tags("table");
		if(tbls.length>i){tc.tbl=tbls[i];}
		else{throw new Error(999,"Table index value out of range.");}
	}else if(typeof(tbl)!="object" || tbl.tagName!="TABLE"){throw new Error(999,"The first argument isn't a table object.");}
	tbl=tc.tbl
	var tr=tbl.rows
	tc.tbl.insertAdjacentElement("beforeBegin",tc.ctr)
	tc.tbl.style.marginTop=0
	with(tc.ctr)
	{	style.cssText="border:0;font-size:9pt;color:black;margin:0;padding:0;border-collapse:collapse;background-color:buttonface;table-layout:fixed;"
		//style.pixelWidth=tc.tbl.offsetWidth
		setAttribute("width",tc.tbl.currentStyle.width)
		cellPadding=0
		cellSpacing=0
	var row=insertRow()
	}
	for(var i=0;i<tr[0].cells.length;i++)
	{
		tc.col[i]=row.insertCell();
	with(tc.col[i])
	{
		setAttribute("width",tr[0].cells[i].offsetWidth);
		sortBy[i]="DESC";
		onclick=function()
		{	var idx=this.cellIndex
			tblSort(tc.tbl,idx,sortBy[idx],dType[idx]);
			sortBy[idx]=(sortBy[idx]=="ASC")?"DESC":"ASC";
			tc.setRowStyle(rowStyle);
			tr=tc.tbl.rows
		}
		onmousedown=function(){this.style.borderStyle="inset";}
		onmouseup=function(){this.style.borderStyle="outset";}
		onmousemove=function(){this.style.cursor="default"}
	}}

	tc.setCaption(caption);
	tc.setDataType(dataType);
	tc.setTcStyle(tcStyle);
	tc.setTblStyle(tblStyle);
	tc.setColStyle(colStyle);
	tc.setRowStyle(rowStyle);


	tc.selectOne=function(bColor,fColor)
	{
		tc.selRow=null;
		tc.selData=[];
		selFC=fColor==null?"white":fColor
		selBC=bColor==null?"darkblue":bColor
		tc.tbl.onclick=function()
		{
			e=event.srcElement;
			if(e==this){return;}
			while(e.tagName!="TR"){e=e.parentElement;}
			tc.selRow=e;
			var td=e.cells;
			for(var i=0;i<td.length;i++)tc.selData[i]=td[i].innerText;
			selTr[0]=tc.selRow
			tc.setColStyle(colStyle);
			tc.setRowStyle(rowStyle);
		}
	}
	tc.multiSelect=function(bColor,fColor)
	{
		tc.selRow=[];
		tc.selData=[];
		selFC=fColor==null?"white":fColor
		selBC=bColor==null?"darkblue":bColor
		tc.tbl.onclick=function()
		{
			e=event.srcElement;
			if(e==this){return;}
			while(e.tagName!="TR"){e=e.parentElement;}
			var i=tc.selRow.indexOf(e);
			if(i==-1)tc.selRow[tc.selRow.length]=e;
			else tc.selRow.remove(i);
			tc.selData=[];
			for(var i=0;i<tc.selRow.length;i++)
			{
				tc.selData[i]=[];
				for(var j=0;j<tc.selRow[i].cells.length;j++)tc.selData[i][j]=tc.selRow[i].cells[j].innerText;
			}
			selTr=tc.selRow
			tc.setColStyle(colStyle);
			tc.setRowStyle(rowStyle);
		}
	}
	tc.mouseOver=function(bColor,fColor)
	{
		var curRow=null;
		var fc=fColor==null?"darkblue":fColor
		var bc=bColor==null?"FFFF66":bColor
		var rowfc=[],rowbc=[]
		function overRow(tr)
		{
			if(curRow!=null)
			{
				var td=curRow.cells
				for(var i=0;i<td.length;i++)
				{
					td[i].style.color=rowfc[i]
					td[i].style.backgroundColor=rowbc[i]
				}
			}
			var td=tr.cells
			for(var i=0;i<td.length;i++)
			{
				rowfc[i]=td[i].currentStyle.color
				rowbc[i]=td[i].currentStyle.backgroundColor

⌨️ 快捷键说明

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