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

📄 navigationbarlib.js

📁 一个功能比较强大(大多数人都没见过)、调用十分方便灵活、适合于B/S架构、思路别出心裁(坚决不与具体业务、具体数据源、具体列表相结合,能自定义文字信息和显示样子)。就算目前做得并非十全十美
💻 JS
📖 第 1 页 / 共 3 页
字号:
		this.htmlPart1 += "<img src='" + this.icon.rricon + "' alt='后1页' width=9 height=9 style='cursor:hand' onClick='javascript:callFunc(" + this.callbackfunc + "," + totalPageNum + ", true);'>&nbsp;&nbsp;";
	} else if (endPageNo < totalPageNum)
	{
		this.htmlPart1 += "<img src='" + this.icon.rlicon + "' alt='后1页' width=5 height=9 style='cursor:hand' onClick='javascript:callFunc(" + this.callbackfunc + "," + (parseInt(this.currentPageNo)+1) + ", true);'>&nbsp;&nbsp;";
		this.htmlPart1 += "<img src='" + this.icon.rmicon + "' alt='后一代开始页' width=13 height=9 style='cursor:hand' onClick='javascript:callFunc(" + this.callbackfunc + "," + (parseInt(endPageNo)+1) + ", true);'>&nbsp;&nbsp;";
		this.htmlPart1 += "<img src='" + this.icon.rricon + "' alt='后1页' width=9 height=9 style='cursor:hand' onClick='javascript:callFunc(" + this.callbackfunc + "," + totalPageNum + ", true);'>&nbsp;&nbsp;";
	}
	this.htmlPart1 += "	</td>";
	this.htmlPart2 = "	<td>";
	this.htmlPart2 += "&nbsp;&nbsp;&nbsp;<input id='__txtGoToPageNumForPreview' type=text size=2 onmouseOver='this.focus();' onKeyUp='validateIt(this, " + totalPageNum + ", document.all.__btnGoForPreview);' onBlur='validateIt(this, " + totalPageNum + ", document.all.__btnGoForPreview);'><input id='__btnGoForPreview' type=button value='go' onClick='callFunc(" + this.callbackfunc + ", document.all.__txtGoToPageNumForPreview.value, true);' disabled>";
	this.htmlPart2 += "	</td>";
	this.htmlPart3 = "	<td>";
	this.htmlPart3 += genStatusContent(this.statusPattern, this.statusIdentityAndValue);
	this.htmlPart3 += "	</td>";
	for (var i = 0; i < this.arrPartForShowing.length; i++) {
		if (this.arrPartForShowing[i] == 1) {
			strHTML += this.htmlPart1;
		} else if (this.arrPartForShowing[i] == 2) {
			strHTML += this.htmlPart2;
		} else if (this.arrPartForShowing[i] == 3) {
			strHTML += this.htmlPart3;
		}
	}
	strHTML += "</tr>";
	strHTML += "</table>";
	
	if (navigationBarObj == undefined || divNavigationBar == undefined) {
		alert("您错误地调用了genNavigationBarForPreview方法,翻页导航栏将失效并引发js错误!");
	}
	__gNavigationBarForPreviewObj = navigationBarObj;
	__gDivNavigationBarForPreview = divNavigationBar;
	return strHTML;
}

/*
*	设置的界面的HTML
*/
function getSettingHTML() {
	var strHTML = "";
	strHTML =  "<div id='__divSetting' style='position:absolute; top:100; left:150; border:1; display:none;'>";
	strHTML += "	<table bgColor='#E7E4E6' width=90% cellspacing=0 cellpadding=0 style='border: 1px solid #000000;' >";
	strHTML += "		<tr bgColor='#6699FF'>";
	strHTML += "			<td style='font-size:14px; color:white; font-weight:800;' align=left>&nbsp;翻页导航栏设置</td>";
	strHTML += "			<td width=5 align=right></td>";
	strHTML += "		</tr>";
	strHTML += "		<tr height=2><td colspan=2>&nbsp;</td></tr>";
	strHTML += "		<tr><td colspan=2>";
	strHTML += "			<table width=95% height=30 align=center cellspacing=0 cellpadding=0 >";
	strHTML += "				<tr>";
	strHTML += "					<td width=70 align=center valign=middle bgColor='#CCFFFF' style='border:1px solid #000000; font-weight:900; font-variant:small-caps; font-size:14px; color:#000000; cursor:hand'>常规设置</td>";
	strHTML += "					<td>&nbsp;</td>";
	strHTML += "				</tr>";
	strHTML += "			</table>";
	strHTML += "			<table width=95% height=220 align=center cellspacing=0 cellpadding=0 bgColor='#F2F1D9' style='border:1px solid #000000;'>";
	strHTML += "				<tr>";
	strHTML += "					<td align=center>";
	strHTML += "						<table width=90% height=98% cellpadding=0 cellspacing=0 >";
	strHTML += "							<tr><td>&nbsp;</td></tr>";
	strHTML += "							<tr><td align=left>";
	strHTML += "								<fieldset style='height:100%; color:#000000; boder-style:groove;'>";
	strHTML += "								<legend style='font-size:14'>基础数值设置</legend>";
	strHTML += "								<table width=90% align=center style='font-size:13'>";
	strHTML += "									<tr><td>每页记录数量:</td><td><input id='__txtMaxCountPerPage' type=text maxlength=5 size=2 onKeyUp='validateIt2(this, __txtDigitCountForShowing);' onBlur='validateIt2(this);updatePreview();' style='height:18; font-size:12'></td></tr>";
	strHTML += "									<tr><td>显示数字个数:</td><td><input id='__txtDigitCountForShowing' type=text maxlength=5 size=2 onKeyUp='validateIt2(this, __btnConfirm);' onBlur='validateIt2(this);updatePreview();' style='height:18; font-size:12'></td></tr>";
	strHTML += "									<tr><td>假设记录总数:</td><td>" + __gTotalRecCountForPreview + "</td></tr>";
	strHTML += "								</table>";
	strHTML += "								</fieldset>";
	strHTML += "							</td></tr>";
	strHTML += "						</table>";
	strHTML += "					</td>";
	strHTML += "					<td width=60% rowspan=2 align=left>";
	strHTML += "						<table width=98% height=95% cellpadding=0 cellspacing=0>";
	strHTML += "							<tr><td>&nbsp;</td></tr>";
	strHTML += "							<tr><td align=center>";
	strHTML += "								<fieldset style='height:100%; color:#000000; boder-style:groove;'>";
	strHTML += "								<legend style='font-size:14'>状态文字设置</legend>";
	strHTML += "								<table width=95% align=center style='font-size:13'>";
	strHTML += "									<tr><td><input name='__rdoStatusSetting' type=radio value='共 [T] 页,每页 [M] 条,当前为第 [C] 页,共 [TR] 条' onClick='changeStatusPattern(this);updatePreview();'></td><td>共 [T] 页,每页 [M] 条,当前为第 [C] 页,共 [TR] 条</td></tr>";
	strHTML += "									<tr><td><input name='__rdoStatusSetting' type=radio value='当前为第 [C] 页,每页 [M] 条,共 [T] 页,共 [TR] 条' onClick='changeStatusPattern(this);updatePreview();'></td><td>当前为第 [C] 页,每页 [M] 条,共 [T] 页,共 [TR] 条</td></tr>";
	strHTML += "									<tr><td><input name='__rdoStatusSetting' type=radio value='每页 [M] 条,共 [T] 页,当前为第 [C] 页,共 [TR] 条' onClick='changeStatusPattern(this);updatePreview();'></td><td>每页 [M] 条,共 [T] 页,当前为第 [C] 页,共 [TR] 条</td></tr>";
	strHTML += "									<tr><td><input name='__rdoStatusSetting' type=radio value='自定义' onClick='changeStatusPattern(this);updatePreview();'></td><td>自定义</td></tr>";
	strHTML += "									<tr><td colspan=2><textarea id='__taStatusSetting' cols=45 rows=4 onKeyUp='updatePreview();' onBlur='adjustStr(this);updatePreview();' readonly></textarea></td></tr>";
	strHTML += "								</table>";
	strHTML += "								</fieldset>";
	strHTML += "							</td></tr>";
	strHTML += "						</table>";
	strHTML += "					</td>";
	strHTML += "				</tr>";
	strHTML += "				<tr>";
	strHTML += "					<td align=center>";
	strHTML += "						<table width=90% height=100% cellpadding=0 cellspacing=0>";
	strHTML += "							<tr><td align=center>";
	strHTML += "								<fieldset style='height:100%'>";
	strHTML += "								<legend style='font-size:14'>筛选设置</legend>";
	strHTML += "								<div id='__divOrder'>";
	strHTML += "								<table width=90% cellspacing=0 align=center style='font-size:13'>";
	strHTML += "									<tr id='__trOrder1' value=1 onClick='selectTR(this);' selected=false><td><input name='__chkPart' type=checkbox value=1 onClick='updatePreview();'></td><td>第1部分</td><td width=50 align=right><input id='__btnMoveUp1' type=button value='↑' onClick='moveUp(1);updatePreview();' style='display:none'><input id='__btnMoveDown1' type=button value='↓' onClick='moveDown(1);updatePreview();' style='display:none'></td></tr>";
	strHTML += "									<tr id='__trOrder2' value=2 onClick='selectTR(this);' selected=false><td><input name='__chkPart' type=checkbox value=2 onClick='updatePreview();'></td><td>第2部分</td><td width=50 align=right><input id='__btnMoveUp2' type=button value='↑' onClick='moveUp(2);updatePreview();' style='display:none'><input id='__btnMoveDown2' type=button value='↓' onClick='moveDown(2);updatePreview();' style='display:none'></td></tr>";
	strHTML += "									<tr id='__trOrder3' value=3 onClick='selectTR(this);' selected=false><td><input name='__chkPart' type=checkbox value=3 onClick='updatePreview();'></td><td>第3部分</td><td width=50 align=right><input id='__btnMoveUp3' type=button value='↑' onClick='moveUp(3);updatePreview();' style='display:none'><input id='__btnMoveDown3' type=button value='↓' onClick='moveDown(3);updatePreview();' style='display:none'></td></tr>";
	strHTML += "								</table>";
	strHTML += "								</div>";
	strHTML += "								</fieldset>";
	strHTML += "							</td></tr>";
	strHTML += "						</table>";
	strHTML += "					</td>";
	strHTML += "				</tr>";
	strHTML += "				<tr>";
	strHTML += "					<td align=center colspan=2>";
	strHTML += "						<table width=97% height=95% cellpadding=0 cellspacing=0>";
	strHTML += "							<tr><td align=center>";
	strHTML += "								<fieldset style='height:100%'>";
	strHTML += "								<legend style='font-size:14'>预览</legend>";
	strHTML += "								<table width=100% align=center style='font-size:13'>";
	strHTML += "									<tr height=30><td><div id='__divNavigateBarForReview'></div></td></tr>";
	strHTML += "								</table>";
	strHTML += "								</fieldset>";
	strHTML += "							</td></tr>";
	strHTML += "						</table>";
	strHTML += "					</td>";
	strHTML += "				</tr>";
	strHTML += "				<tr><td>&nbsp;</td></tr>";
	strHTML += "			</table>";
	strHTML += "			<table width=90% height=50 align=center cellspacing=0 cellpadding=0 >";
	strHTML += "				<tr>";
	strHTML += "					<td align=right><input id='__btnConfirm' type=button value='确 定' onClick='confirmChangeIt()'>&nbsp;&nbsp;&nbsp;<input type=button value='取 消' onClick='cancelChangeIt()'></td>";
	strHTML += "				</tr>";
	strHTML += "			</table>";
	strHTML += "		</td></tr>";
	strHTML += "	</table>";
	strHTML += "</div>";
	return strHTML;
}

/*
*	调用回调方法,同时传递参数。
*	@param	func:				回调方法
*	@param	pageNo:				指定要去的页号
*	@param 	isPreviewMode:		是否为预览模式
*/
function callFunc(func, pageNo, isPreviewMode) {
	if (func && func instanceof Function) {
		var startRowNum = 0;
		var size = 0;
		if (isPreviewMode) {
			__gNavigationBarForPreviewObj.setCurrentPageNo(pageNo);
			startRowNum = (__gNavigationBarForPreviewObj.getCurrentPageNo() - 1) * __gNavigationBarForPreviewObj.getRecNumPerPage() + 1;
			size = __gNavigationBarForPreviewObj.getRecNumPerPage();
		} else {
			__gNavigationBarObj.setCurrentPageNo(pageNo);
			startRowNum = (__gNavigationBarObj.getCurrentPageNo() - 1) * __gNavigationBarObj.getRecNumPerPage() + 1;
			size = __gNavigationBarObj.getRecNumPerPage();
			__gCurrentPageNo = pageNo;
		}
		if (__gArrParam.length == 0) {
			execScript(func(startRowNum, size), "javascript");
		} else {
			var params = "";
			for (var i = 0; i < __gArrParam.length; i++) {
				params += "__gArrParam[" + i + "]" + ",";
			}
			if (params != "") {	//去除最后的','
				params = params.substring(0, params.length - 1);
			}
			execScript(eval("func(startRowNum, size," + params + ")"), "javascript");
		}
		if (isPreviewMode) {
			__gDivNavigationBarForPreview.innerHTML = __gNavigationBarForPreviewObj.genNavigationBarForPreview(__gNavigationBarForPreviewObj, __gDivNavigationBarForPreview);		/*to generate and display page navigation bar.*/
		} else {
			__gDivNavigationBar.innerHTML = __gNavigationBarObj.genNavigationBar(__gNavigationBarObj, __gDivNavigationBar);		/*to generate and display page navigation bar.*/
		}
	}
}

/*
*	校验并纠正页号输入框的值
*/
function validateIt(selfObj, totalPageNum, btnGoElement) {
	var strValue = selfObj.value;
	var strNewValue = "";
	for (var i = 0; i < strValue.length; i++) {
		if (i == 0) {
			if (strValue.charCodeAt(i) > 48 && strValue.charCodeAt(i) <= 57) {
				strNewValue += strValue.charAt(i);
			}
		} else {
			if (strValue.charCodeAt(i) >= 48 && strValue.charCodeAt(i) <= 57) {
				strNewValue += strValue.charAt(i);
			}
		}
		if (strNewValue != "") {
			if (parseInt(strNewValue) > totalPageNum) {
				strNewValue = strNewValue.substring(0, strNewValue.length - 1);
			}
		}
	}
	var str1 = "";
	var blnSkipIt = true;
	for (var i = 0; i < strNewValue.length; i++) {
		if (strNewValue.charAt(i) == '0') {
			if (!blnSkipIt) {
				str1 += strNewValue.charAt(i);
			}
		} else {
			blnSkipIt = false;
			str1 += strNewValue.charAt(i);
		}
	}
	selfObj.value = str1;
	if (str1 != "") {
		btnGoElement.disabled = false;
		if (event.keyCode == 13) {
			btnGoElement.click();
		}
	} else {
		btnGoElement.disabled = true;
	}
}

/*
*	设置对象的透明度
*/
function opacifyIt(objEle, degree) {
	objEle.style.filter = "Alpha(Opacity=" + degree + ")";
	var degreeForFireFox = degree * 1.0 / 100;
	objEle.style.opacity = degreeForFireFox;
}

/*
*	显示设置界面
*/
function setOutlooking() {
	__divSetting.style.display = "";
	initDataOfSettingPage();
}

/*
*	初始化设置界面的内容
*/
function initDataOfSettingPage() {
	__txtMaxCountPerPage.value = __gNavigationBarObj.recNumPerPage;				//初始化每页最多记录数量
	__txtDigitCountForShowing.value = __gNavigationBarObj.numOfDigitalsToShow;	//初始化翻页导航栏上显示的数字个数
	__taStatusSetting.value = __gNavigationBarObj.statusPattern;					//初始化自定义文本区的值
	/***********************初始化radio选项默认选中标记(开始)************************/
	var blnAnyoneChecked = false;
	for (var i = 0; i < __rdoStatusSetting.length; i++) {
		if (__rdoStatusSetting[i].value == __gNavigationBarObj.statusPattern) {
			__rdoStatusSetting[i].checked = true;
			blnAnyoneChecked = true;
		}
	}
	if (!blnAnyoneChecked) {
		for (var i = 0; i < __rdoStatusSetting.length; i++) {
			if (__rdoStatusSetting[i].value == '自定义') {
				__rdoStatusSetting[i].checked = true;
				__taStatusSetting.readOnly = false;
			}
		}
	}
	/***********************初始化radio选项默认选中标记(结束)************************/
	/***********************初始化筛选部分的状态(开始)******************************/
	for (var i = 0; i < __gNavigationBarObj.arrPartForShowing.length; i++) {
		__chkPart[__gNavigationBarObj.arrPartForShowing[i] - 1].checked = true;
	}
	/***********************初始化筛选部分的状态(结束)******************************/
	
	/***********************初始化预览部分(开始)***********************************/
	__gNavigationBarForPreviewObj = __gNavigationBarObj;
	__gNavigationBarForPreviewObj.setTotalRecCount(__gTotalRecCountForPreview);
	__divNavigateBarForReview.innerHTML = __gNavigationBarForPreviewObj.genNavigationBarForPreview(__gNavigationBarForPreviewObj, __divNavigateBarForReview);
	/***********************初始化预览部分(开始)***********************************/
}

/*
*	点击设置界面中的确定按钮,改变属性值,闭设置界面。
*/
function confirmChangeIt() {
	__gNavigationBarObj = __gNavigationBarForPreviewObj;
	__gNavigationBarObj.setCurrentPageNo(__gCurrentPageNo);
	__gNavigationBarObj.setTotalRecCount(__gTotalRecCount);
	__gDivNavigationBar.innerHTML = __gNavigationBarObj.genNavigationBar(__gNavigationBarObj, __gDivNavigationBar);		/*to generate and display page navigation bar.*/
	callFunc(__gNavigationBarObj.getCallbackfunc(), __gNavigationBarObj.getCurrentPageNo(), false);		//重新调用回调方法以便刷新列表数据
}

/*
*	点击设置界面中的取消按钮,直接关闭设置界面。
*/
function cancelChangeIt() {
	__divSetting.style.display = 'none';

⌨️ 快捷键说明

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