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

📄 wdmgrid_old.js

📁 本系统是一套完整游戏金币交易平台,可以建立一个网站实现游戏金币的在线交易
💻 JS
📖 第 1 页 / 共 2 页
字号:
							oOption.innerText = sOptText;
							oOption.value = sOptValue;
							
							//alert(this.rowsArr[i][j]+"aaa");
							//alert(sOptValue+"bbb");
							if(sOptValue==(this.rowsArr[i][j]+"")) { 
								//alert(this.rowsArr[i][j]);
								oOption.selected = true;
							}
							else if(this.rowsArr[i][j]=="" && oOptions[m].selected) {
								oOption.selected = true;
								this.rowsArr[i][j] = oOption.value;
							}
							
							
					}		
				  }
				  else {  //如果document里没有对应名称的select元素,则根据字符串生成select元素
				  
					//根据rowTmpArr里的字符串生成options
					var sTemp = this.rowTmpArr[j];
					var sArr = sTemp.split("</option>");
					if(sArr.length>0) {
						sArr.splice(sArr.length-1,1);
						var sOptValue = '';
						var sOptText = '';
						for(var k=0; k<sArr.length; k++) {
							//alert(sArr[k]);
							
							//得到option的value
							var nStart = sArr[k].indexOf('value="')+7;
							var nEnd = sArr[k].indexOf('"',nStart);
							//alert(nStart+";"+nEnd);
							if(nStart>7) {
								sOptValue = sArr[k].substring(nStart, nEnd);
								//alert(sOptValue);
							}
							
							//得到option的text
							nStart = sArr[k].lastIndexOf('>');
							nEnd = sArr[k].lastIndexOf('<option');
							if(nStart>nEnd) {
								sOptText = sArr[k].substr(nStart+1);
								//alert(sOptText);
							}
						
							//创建option元素
							var oOption = document.createElement("OPTION");
							aElement.options.add(oOption);
							oOption.innerText = sOptText;
							oOption.value = sOptValue;
							if(sOptValue==(this.rowsArr[i][j]+"")) { 
								//alert(this.rowsArr[i][j]+"eee");
								oOption.selected = true;
							}
							else if(this.rowsArr[i][j]=="" && sArr[k].indexOf('="selected"')>-1) {
								oOption.selected = true;
								this.rowsArr[i][j] = oOption.value;
							}
					
						}
					}	
					
				  }		
				  	
				  //设置select元素的onchange事件
				  sScript = this.strGridObjName + ".selectElementOnchange(this)";
				  aElement.onchange = new Function("x", "y", sScript);

				}
				else {  //如果是text,checkbox,botton,radio
					var sTemp = this.rowTmpArr[j];
					//sTemp = sTemp.substr(0,sTemp.length-1) + " ";
					//sTemp = sTemp + 'onKeyUp="' + this.strGridObjName + '.computeTable(this);" >'; 
					aElement = document.createElement(sTemp);  //
					if(aElement.onkeyup==null)
						aElement.onkeyup = new Function("x", "y", this.strGridObjName + ".computeTable(this)");
					//if(this.rowsArr[i][j] == undefined) {  this.rowsArr[i][j] = ""; }
					aElement.value = this.rowsArr[i][j];  //设置输入框的值  
				}
				
				
				if((aElement.name.toUpperCase())=="C_TRX_REF"){  //如果是itemseq列,做相应处理
					aElement.value = i+1;  //itemseq自动增加
					this.rowsArr[i][j] = aElement.value;
					this.itemSeqColumnNum = j;  
				}
				
				if((aElement.name.toUpperCase())=="DELBTN"){  //如果是删除按钮 
					var sTemp = this.rowTmpArr[j];
					sTemp = sTemp.substr(0,sTemp.length-1) + " ";
					sTemp = sTemp + 'onclick="' + this.strGridObjName + '.deleteRow(\'' + (i+1) + '\');"' + '>'; 
					aElement = document.createElement(sTemp);
				}
				
				if((aElement.name.toUpperCase())=="C_DELETE_FLAG#"){  //如果是删除标志 
					if(aElement.value=="1") {  //如果做了删除操作,则将该行隐藏起来不显示
						row.style.setAttribute("display","none");
						//alert(row.style);
					}					
				}
				
				//设置名称,名称样式:businessdata/list[@type='SALESORDERDETAIL'][@rowNum='2']/SALESORDERDETAIL[@rowNum='1']/C_TRX_REF
				//aElement.name = "businessdata/list[@type='" + this.dbTableName + "'][@rowNum='" + this.rowsArr.length + "']/" + this.dbTableName + "[@rowNum='" + i + "']/" + aElement.name + "";
				aElement.name = "businessdata/list[@type='" + this.dbTableName + "']/" + this.dbTableName + "[@rowNum='" + i + "']/" + aElement.name + "";
				//alert(aElement.name);
			
			}
			
			//为元素设置唯一ID,ID格式为:"表格对象名_行数_列数",行数和列数的下标从0开始
			aElement.id = this.strGridObjName + "_" + i + "_" + j;  
			
			//向TD中插入HTML元素
			//alert(aElement.type);
			if(aElement.type!="hidden") {
				var cell = row.insertCell(); 
				cell.appendChild(aElement);
				cell.className = "fb_result_head_2";
				//alert(aElement.name);
			}
			else {
				row.appendChild(aElement);
			}
			
		}
	}
	
	this.preRowsArrLen = this.rowsArr.length;
	
	this.computeTotalsArray();  //计算汇总
	
	this.doAfterDynamic();
}


//根据总线上的businessdata/list结点,动态创建this.rowsArr数组并生成html表格,用于初始化表格
function initBuildGrid() {
	var oListItems = new Array();  //用于存放list/SALESORDERDETAIL的所有结点,行号-名称-值
	var oAllItems = document.all;  //得到document下的所有元素
	var nRowNum = 0;  //list的行数
	
	//1.筛选出document中的所有list/*结点元素,并得到list/下所有结点的:行号-名称-值,存放到oListItems数组里
	for(var i=0; i<oAllItems.length; i++) {
		var oItem = oAllItems[i];
		var sTemp = oItem.name;
		if(sTemp == undefined) sTemp = "";
		sTemp = sTemp.toUpperCase();
		
		//对名称符合要求的元素进行处理,例如:<input type="hidden" name="list/SALESORDERDETAIL[@rowNum="1"]/SITEID" value="123">
		var sListName = "LIST/" + this.dbTableNameInit.toUpperCase() + "[";
		if(sTemp.substr(0,sListName.length)==sListName) {
			var nameArray = sTemp.split("/");  		//对hidden对象的name属性按/进行分割,list/SALESORDERDETAIL[@rowNum="1"]/SITEID
			var item = new Array(3);  				//行号-名称-值,
			item[0] = nameArray[1].split("\"")[1];  //行号,例如:SALESORDERDETAIL[@rowNum="1"]中的1
			item[1] = nameArray[2];  				//名称,例如:SITEID 
			item[2] = oItem.value;  				//值,例如:value="123"中的123
			//得到最大行号
			if(parseInt(item[0])>nRowNum) nRowNum = parseInt(item[0]);  
			//插入数组
			oListItems.push(item);
		}
	}
	if(oListItems.length>0) nRowNum++;  //List的行数为最大行号加1
	//alert(oListItems[0][0]+"|"+oListItems[0][1]+"|"+oListItems[0][2]);
	
	//2.对oListItems数组里的元素进行排序(以this.rowTmpArr为模板),同时创建productsArray数组
	for(var i=0; i<nRowNum; i++) {  
		var aRowArray = new Array();  //表示一行
		for(var j=0; j<this.rowTmpArr.length; j++) {
			var isMacth = false;  //是否找到匹配项
			var aElement = document.createElement(this.rowTmpArr[j]); 
			
			if(this.ioMapArr==null) {  //如果没有输入输出映射,则按模板来对照
				for(var k=0; k<oListItems.length; k++) {
					//如果行号和名称都一至
					if(parseInt(oListItems[k][0])==i && oListItems[k][1].toUpperCase()==aElement.name.toUpperCase()) {
						aRowArray.push(oListItems[k][2]);
						isMacth = true;  //
						break;
					}
				}
			}
			else {  //如果有输入输出映射,则按映射来对照
				if(this.ioMapArr[j] == undefined) this.ioMapArr[j] = "";
				for(var k=0; k<oListItems.length; k++) {
					//如果行号和名称都一至
					if(parseInt(oListItems[k][0])==i && oListItems[k][1].toUpperCase()==this.ioMapArr[j].toUpperCase()) {
						aRowArray.push(oListItems[k][2]);
						isMacth = true;  //
						break;
					}
				}
			}
			
			if(!isMacth) {  //如果没有找到匹配项,则补rowTmpArr中的缺省值
				aRowArray.push(aElement.value);
			}
			
		}
		this.rowsArr.push(aRowArray);  //插入一行
		
		//加入表格初始数组
		var fieldsArrayInit = createArr(aRowArray);
		this.rowsArrInit.push(fieldsArrayInit);
		//alert(this.rowsArrInit[i][3]);
	}
	//alert(this.rowsArr[0][0]);
	
	this.initRowsCount = this.rowsArr.length;
	if(this.rowsArr.length>0) this.dynamicTable(true);
}


//锁定初始化的表格的行
function lockInitRows() {
	for(var i=0; i<this.initRowsCount; i++) {
		for(var j=0; j<this.rowTmpArr.length; j++) {
			var obj = this.getElementObj(i,j);
			if(obj.readOnly!=undefined) obj.readOnly = true;
			if(obj.type=="button") obj.disabled = true;
		}
	}
}


//重新设置指定行的表格元素的名称,begin:开始行号, end:结束行名, 下标从0开始
function resetElementsName(begin, end) {
	var sTemp = "";
	for(var i=begin; i<=end; i++) {
		for(j=0; j<this.rowTmpArr.length; j++) {
			var aElement = document.getElementById(this.strGridObjName + "_" + i + "_" + j);
			sTemp = aElement.name;
			sTemp = sTemp.substr(sTemp.lastIndexOf("/")+1);
			//alert(sTemp);
			//aElement.name = "businessdata/list[@type='" + this.dbTableName + "'][@rowNum='" + this.rowsArr.length + "']/" + this.dbTableName + "[@rowNum='" + i + "']/" + sTemp + "";
			aElement.name = "businessdata/list[@type='" + this.dbTableName + "']/" + this.dbTableName + "[@rowNum='" + i + "']/" + sTemp + "";
			//alert(aElement.name);
		}
	}
}

//得到表格Grid数组
function getGridArr() {
	return this.rowsArr;
}

//得到统计数组
function getTotalsArr() {
	return this.totalsArr;
}

//得到表格行数
function getRowCount() {
	return this.rowsArr.length;
}

//得到表格列数
function getColumnCount() {
	return this.rowTmpArr.length;
}
	
	
//复制数组
function createArr(tmpArr) {
	var newArr = new Array();
	for(var i=0; i<tmpArr.length; i++) {
		newArr.push(tmpArr[i]);
	}
	return newArr;
}

//根据x,y坐标定位到表格元素
function focus(x, y) {
	document.getElementById(this.strGridObjName + "_" + x + "_" + y).focus();
}


//设置输入输出列名映射
function setFieldsNameMap(mapArr) {
	this.ioMapArr = mapArr;
	//alert(this.ioMapArr[20]);
}


//根据x,y坐标得到HTML表格元素
function getElementObj(x, y) {
	return document.getElementById(this.strGridObjName + "_" + x + "_" + y);
}


//根据x,y坐标得到rowsArr数组中的元素
function getGridItemValue(x, y) {
	return this.rowsArr[x][y];
}

//根据x,y坐标设置rowsArr数组中的元素
function setGridItemValue(x, y, value) {
	this.rowsArr[x][y] = value;
}

//设置htmlTable表头的行数
function setTableHeadRowCount(rowCount) {
	this.htmlTableHeadRowCount = rowCount;
}

//select元素onchange事件对应的函数
function selectElementOnchange(obj) {
	var sID = obj.id;
	var xy = sID.split("_");
	var i=0;
	var j=0;
	i = xy[1];
	j = xy[2];
	
	var selectValue = "";
	selectValue = obj.options(obj.selectedIndex).value;

	this.rowsArr[i][j] = selectValue;  //设置该输入框对应的数组元素,使它们保持一至
	//alert(this.rowsArr[i][j]);
}

/* 定义明细表格对象TGrid ************结束***********************************************************************/



/* 实时验证函数 ************开始***********************************************************************/
function be_number()
{	//只能输入数字
	/*
	if(!(((window.event.keyCode>=48)&&(window.event.keyCode<=57))||(window.event.keyCode==45)||(window.event.keyCode==13)))
	{
		window.event.keyCode=0;
	}
	*/
	if(!(((window.event.keyCode>=48)&&(window.event.keyCode<=57))||(window.event.keyCode==13)))
	{
		window.event.keyCode=0;
	}
}

function be_float(oText)
{	
	if((((window.event.keyCode>=48)&&(window.event.keyCode<=57))||(window.event.keyCode==45)||(window.event.keyCode==13)||(window.event.keyCode==46)))
	{	
		/*
		if(window.event.keyCode==46)  {  //如果是小数点
 			re=/^\d{0,10}$/;
    		str=oText.value;
    		r=str.match(re);
    		if (r==null) {  //如果前面已经有小数点,则不允许再次输入
				window.event.keyCode=0;
			}
			if(str=="") {  //如果小数点前没数字,则添零
				oText.value = "0";
				//window.event.keyCode=0;
			}
		}
		else if(oText.value!=null && oText.value!="" && oText.value!="-"){
			re=/^\d{1,10}$|\.\d{0,1}$/;  
    		str=oText.value;
    		r=str.match(re);
    		if (r==null) {  //如果小数点后已有两位数,则不允许再次输入
				window.event.keyCode=0;
			}
		}
		*/
		
		
		
		if(window.event.keyCode==46 && oText.value.indexOf(".")>-1)  {  //如果是小数点
			window.event.keyCode=0;
			return;
		}
		
		str=oText.value+String.fromCharCode(window.event.keyCode);
		if(str!="-" && str.substr(str.length-1,1)!=".") {
			re = /^[-\+]?\d+(\.\d+)?$/;
			r=str.match(re);
			if(r==null) {
				window.event.keyCode=0;
			}
		}
		
	}
	else {
		window.event.keyCode=0;
	}	

}
/* 实时验证函数 ************结束***********************************************************************/

⌨️ 快捷键说明

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