亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sortabletable.js

?? 圖書管理系統包括圖書的增加、刪除、修改等功能
?? JS
?? 第 1 頁 / 共 2 頁
字號:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.html.SortableTable");dojo.require("dojo.lang");dojo.require("dojo.date");dojo.require("dojo.html");dojo.require("dojo.event.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.SortableTable");dojo.widget.html.SortableTable=function(){	//	summary	//	Constructor for the SortableTable widget	dojo.widget.SortableTable.call(this);	dojo.widget.HtmlWidget.call(this);	this.headClass="";	this.tbodyClass="";	this.headerClass="";	this.headerSortUpClass="selected";	this.headerSortDownClass="selected";	this.rowClass="";	this.rowAlternateClass="alt";	this.rowSelectedClass="selected";	this.columnSelected="sorted-column";};dojo.inherits(dojo.widget.html.SortableTable, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.html.SortableTable, {	templatePath:null,	templateCssPath:null,	getTypeFromString:function(/* string */ s){		//	summary		//	Find the constructor that matches param s by searching through the entire object tree.		var parts=s.split("."),i=0,obj=dj_global; 		do{obj=obj[parts[i++]];}while(i<parts.length&&obj); 		return(obj!=dj_global)?obj:null;	//	function	},	compare:function(/* object */ o1, /* object */ o2){		//	summary		//	Compare two objects using a shallow property compare		for(var p in o1){			if(!(p in o2)) return false;	//	boolean			if(o1[p].valueOf()!=o2[p].valueOf()) return false;	//	boolean		}		return true;	// boolean	},	isSelected:function(/* object */ o){		//	summary		//	checked to see if the passed object is in the current selection.		for(var i=0;i<this.selected.length;i++){			if(this.compare(this.selected[i],o)){				return true; // boolean			}		}		return false;	// boolean	},	removeFromSelected:function(/* object */ o){		//	summary		//	remove the passed object from the current selection.		var idx=-1;		for(var i=0;i<this.selected.length;i++){			if(this.compare(this.selected[i],o)){				idx=i;				break;			}		}		if(idx>=0){			this.selected.splice(idx,1);		}	},	getSelection:function(){		//	summary		//	return the array of currently selected objects (JSON format)		return this.selected;	//	array	},	getValue:function(){		//	summary		//	return a comma-delimited list of selected valueFields.		var a=[];		for(var i=0;i<this.selected.length;i++){			if (this.selected[i][this.valueField]){				a.push(this.selected[i][this.valueField]);			}		}		return a.join();	//	string	},	reset:function(){		//	summary		//	completely resets the internal representations.		this.columns=[];		this.data=[];		this.resetSelections(this.domNode.getElementsByTagName("tbody")[0]);	},	resetSelections:function(/* HTMLTableBodyElement */ body){		this.selected=[];		var idx=0;		var rows=body.getElementsByTagName("tr");		for(var i=0; i<rows.length; i++){			if(rows[i].parentNode==body){				rows[i].removeAttribute("selected");				if(this.enableAlternateRows&&idx%2==1){					rows[i].className=this.rowAlternateClass;				}else{					rows[i].className="";				}				idx++;			}		}	},	getObjectFromRow:function(/* HTMLTableRowElement */ row){		//	summary		//	creates a JSON object based on the passed row		var cells=row.getElementsByTagName("td");		var o={};		for(var i=0; i<this.columns.length;i++){			if(this.columns[i].sortType=="__markup__"){				//	FIXME: should we parse this instead?  Because if the user may not get back the markup they put in...				o[this.columns[i].getField()]=cells[i].innerHTML;			}else{				var text=dojo.html.renderedTextContent(cells[i]);				var val=new (this.columns[i].getType())(text);				o[this.columns[i].getField()]=val;			}		}		if(dojo.html.hasAttribute(row,"value")){			o[this.valueField]=dojo.html.getAttribute(row,"value");		}		return o;	//	object	},	setSelectionByRow:function(/* HTMLTableElementRow */ row){		//	summary		//	create the selection object based on the passed row, makes sure it's unique.		//	note that you need to call render manually (because of multi-select operations)		var o=this.getObjectFromRow(row);		var b=false;		for(var i=0;i<this.selected.length;i++){			if(this.compare(this.selected[i], o)){				b=true;				break;			}		}		if(!b){			this.selected.push(o);		}	},	parseColumns:function(/* HTMLTableHeadElement */ node){		//	summary		//	parses the passed element to create column objects		this.reset();		var row=node.getElementsByTagName("tr")[0];		var cells=row.getElementsByTagName("td");		if (cells.length==0) cells=row.getElementsByTagName("th");		for(var i=0; i<cells.length; i++){			var o={				field:null,				format:null,				noSort:false,				sortType:"String",				dataType:String,				sortFunction:null,				label:null,				align:"left",				valign:"middle",				getField:function(){ return this.field||this.label; },				getType:function(){ return this.dataType; }			};			//	presentation attributes			if(dojo.html.hasAttribute(cells[i], "align")){				o.align=dojo.html.getAttribute(cells[i],"align");			}			if(dojo.html.hasAttribute(cells[i], "valign")){				o.valign=dojo.html.getAttribute(cells[i],"valign");			}			//	sorting features.			if(dojo.html.hasAttribute(cells[i], "nosort")){				o.noSort=dojo.html.getAttribute(cells[i],"nosort")=="true";			}			if(dojo.html.hasAttribute(cells[i], "sortusing")){				var trans=dojo.html.getAttribute(cells[i],"sortusing");				var f=this.getTypeFromString(trans);				if (f!=null && f!=window && typeof(f)=="function") 					o.sortFunction=f;			}			if(dojo.html.hasAttribute(cells[i], "field")){				o.field=dojo.html.getAttribute(cells[i],"field");			}			if(dojo.html.hasAttribute(cells[i], "format")){				o.format=dojo.html.getAttribute(cells[i],"format");			}			if(dojo.html.hasAttribute(cells[i], "dataType")){				var sortType=dojo.html.getAttribute(cells[i],"dataType");				if(sortType.toLowerCase()=="html"||sortType.toLowerCase()=="markup"){					o.sortType="__markup__";	//	always convert to "__markup__"					o.noSort=true;				}else{					var type=this.getTypeFromString(sortType);					if(type){						o.sortType=sortType;						o.dataType=type;					}				}			}			o.label=dojo.html.renderedTextContent(cells[i]);			this.columns.push(o);			//	check to see if there's a default sort, and set the properties necessary			if(dojo.html.hasAttribute(cells[i], "sort")){				this.sortIndex=i;				var dir=dojo.html.getAttribute(cells[i], "sort");				if(!isNaN(parseInt(dir))){					dir=parseInt(dir);					this.sortDirection=(dir!=0)?1:0;				}else{					this.sortDirection=(dir.toLowerCase()=="desc")?1:0;				}			}		}	},	parseData:function(/* array */ data){		//	summary		//	Parse the passed JSON data structure, and cast based on columns.		this.data=[];		this.selected=[];		for(var i=0; i<data.length; i++){			var o={};	//	new data object.			for(var j=0; j<this.columns.length; j++){				var field=this.columns[j].getField();				if(this.columns[j].sortType=="__markup__"){					o[field]=String(data[i][field]);				}else{					var type=this.columns[j].getType();					var val=data[i][field];					var t=this.columns[j].sortType.toLowerCase();					if(val){						o[field]=new type(val);					}else{						o[field]=new type();	//	let it use the default.					}				}			}			//	check for the valueField if not already parsed.			if(data[i][this.valueField]&&!o[this.valueField]){				o[this.valueField]=data[i][this.valueField];			}			this.data.push(o);		}	}, 	parseDataFromTable:function(/* HTMLTableBodyElement */ tbody){		//	summary		//	parses the data in the tbody of a table to create a set of objects.		//	Will add objects to this.selected if an attribute 'selected="true"' is present on the row.		this.data=[];		this.selected=[];		var rows=tbody.getElementsByTagName("tr");		for(var i=0; i<rows.length; i++){			if(dojo.html.getAttribute(rows[i],"ignoreIfParsed")=="true"){				continue;			}			var o={};	//	new data object.			var cells=rows[i].getElementsByTagName("td");			for(var j=0; j<this.columns.length; j++){				var field=this.columns[j].getField();				if(this.columns[j].sortType=="__markup__"){					//	FIXME: parse this?					o[field]=cells[j].innerHTML;				}else{					var type=this.columns[j].getType();					var val=dojo.html.renderedTextContent(cells[j]); //	should be the same index as the column.					if (val) o[field]=new type(val);					else o[field]=new type();	//	let it use the default.				}			}			if(dojo.html.hasAttribute(rows[i],"value")&&!o[this.valueField]){				o[this.valueField]=dojo.html.getAttribute(rows[i],"value");			}			//	FIXME: add code to preserve row attributes in __metadata__ field?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精选一区二区三区| 午夜久久福利影院| 久久久精品国产99久久精品芒果 | 亚洲国产综合91精品麻豆| 国产精品丝袜在线| 国产精品天干天干在观线| 日本一区二区成人| 国产精品国产自产拍高清av王其| 国产精品每日更新| 亚洲免费观看高清完整版在线 | 日韩精品一区二区三区三区免费 | 欧美日韩第一区日日骚| 欧美巨大另类极品videosbest | 日韩美女精品在线| 一区二区三区日韩精品视频| 亚洲伊人色欲综合网| 亚洲bt欧美bt精品777| 亚洲成人第一页| 久久99精品视频| 一本到一区二区三区| 在线观看亚洲精品| 日韩一区二区三区在线视频| 2023国产精品视频| 亚洲视频狠狠干| 三级成人在线视频| 丰满亚洲少妇av| 欧美性大战久久久久久久蜜臀 | 国产欧美一区二区精品秋霞影院 | 91视视频在线观看入口直接观看www | aaa欧美色吧激情视频| 91在线视频官网| 久久精品在这里| 亚洲另类春色国产| 老汉av免费一区二区三区| 国产91精品一区二区麻豆亚洲| 91成人免费在线| 国产亚洲精品资源在线26u| 亚洲男帅同性gay1069| 蜜桃精品在线观看| 一本一道波多野结衣一区二区| 欧美一区二区三区视频在线| 中文字幕av免费专区久久| 五月天网站亚洲| 91女神在线视频| 精品国产伦一区二区三区观看体验| 国产精品乱人伦中文| 麻豆精品一区二区三区| 91色在线porny| 精品免费视频一区二区| 日韩制服丝袜先锋影音| 91亚洲精品一区二区乱码| 久久久国产精品麻豆| 日本vs亚洲vs韩国一区三区二区| 91免费国产视频网站| 欧美国产欧美综合| 国内不卡的二区三区中文字幕 | 一区二区日韩av| 成人黄色在线看| 久久综合久久鬼色| 青青草原综合久久大伊人精品 | 欧美日韩国产影片| 亚洲黄一区二区三区| 91色乱码一区二区三区| 久久青草国产手机看片福利盒子| 五月婷婷综合网| 色哟哟国产精品| 亚洲免费观看高清在线观看| jvid福利写真一区二区三区| 精品美女在线播放| 精品一区二区精品| 日韩一区和二区| 免费xxxx性欧美18vr| 欧美一区二区在线免费播放 | 久久夜色精品国产欧美乱极品| 日本特黄久久久高潮| 7777精品伊人久久久大香线蕉完整版 | 国产精品国产自产拍高清av| 国产精品2024| 国产女主播在线一区二区| 国产精品一区二区在线看| 国产情人综合久久777777| 国产精品主播直播| 中文一区二区完整视频在线观看 | 午夜国产不卡在线观看视频| 欧美三级日本三级少妇99| 午夜激情综合网| 精品国产成人系列| 夫妻av一区二区| 亚洲精品videosex极品| 欧美日韩一区中文字幕| 日本成人中文字幕| 国产午夜亚洲精品理论片色戒| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩欧美一区二区久久婷婷| 激情六月婷婷综合| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产一区二区91| 91精品国产高清一区二区三区| 成人性生交大片免费看视频在线| 国产精品嫩草影院com| 成人av电影观看| 性做久久久久久免费观看欧美| 欧美一二三在线| 国产91富婆露脸刺激对白| 亚洲另类春色校园小说| 91精品国产高清一区二区三区| 国产1区2区3区精品美女| 一区二区免费在线| 欧美精品一区视频| 欧美专区在线观看一区| 激情深爱一区二区| 一区二区高清视频在线观看| 日韩欧美国产一区二区在线播放 | 国产露脸91国语对白| 国产精品水嫩水嫩| 91精品国产免费| 色综合天天视频在线观看| 毛片基地黄久久久久久天堂| 中文字幕亚洲电影| 欧美成va人片在线观看| 欧美日韩高清影院| 高清在线不卡av| 首页国产丝袜综合| 一区二区三区国产| 中文字幕+乱码+中文字幕一区| 日韩一区二区在线观看| 色av成人天堂桃色av| 福利一区二区在线观看| 极品销魂美女一区二区三区| 亚洲一区二区三区精品在线| 国产精品久久夜| 久久久久免费观看| 欧美电视剧在线看免费| 欧美日韩在线三级| 色综合激情五月| 99久久99久久精品免费观看| 国产精品88av| 黑人巨大精品欧美黑白配亚洲| 首页亚洲欧美制服丝腿| 亚洲一二三区在线观看| 亚洲精品成人在线| 蜜桃在线一区二区三区| 婷婷一区二区三区| 婷婷丁香激情综合| 无码av免费一区二区三区试看| 亚洲视频一区二区在线观看| 国产精品福利电影一区二区三区四区| 精品久久久久久久人人人人传媒 | 天堂久久久久va久久久久| 亚洲精品成人悠悠色影视| 亚洲免费色视频| 亚洲一卡二卡三卡四卡五卡| 一区二区三区加勒比av| 亚洲国产欧美一区二区三区丁香婷| 亚洲美女电影在线| 亚洲一区日韩精品中文字幕| 亚洲国产一区二区三区青草影视| 亚洲美女淫视频| 亚洲综合激情另类小说区| 久久成人综合网| 国产一区二区三区视频在线播放| 精品一区二区综合| 国产高清精品久久久久| 国产九色sp调教91| av在线这里只有精品| 一本大道av一区二区在线播放| 欧美丝袜丝交足nylons图片| 欧美一区二区三区婷婷月色| 欧美tk丨vk视频| 国产精品美女www爽爽爽| 亚洲人成网站在线| 日韩电影在线免费| 国产一区二区在线影院| 91年精品国产| 欧美一区二区三区不卡| 久久这里只有精品首页| 中文字幕日韩精品一区| 午夜精品福利一区二区蜜股av| 老司机精品视频线观看86| 成人午夜激情在线| 欧美亚洲动漫另类| 久久新电视剧免费观看| 日产国产高清一区二区三区| 国产精品一区二区男女羞羞无遮挡| 成人精品一区二区三区四区| 欧美体内she精高潮| 国产午夜精品久久| 亚洲福利一二三区| 国产成人午夜精品5599| 在线免费观看成人短视频| 欧美大片日本大片免费观看| 国产精品高潮久久久久无| 天堂午夜影视日韩欧美一区二区| 国产成人综合精品三级| 在线精品亚洲一区二区不卡| www国产亚洲精品久久麻豆| 夜夜夜精品看看| av午夜精品一区二区三区| 精品国精品国产| 亚洲va国产va欧美va观看|