| 类别: | CSharp.Net, function, 数据操作 |
|---|---|
| 标签: | jscript, paged, recordset, pagination, page |
| 摘要: | .. |
| 正文: |
<% // shawl.qiu JScript Document /*-----------------------------------------------------------------------------------*\ * shawl.qiu JScript Pagination class v2.0 \*-----------------------------------------------------------------------------------*/ //---------------------------------begin class Pagination()-------------------------------// function Pagination() { // shawl.qiu code //------------------------------------begin initer //------------------------------------end initer //------------------------------------begin public variable //------------------------------------end public variable //------------------------------------begin private variable //---------------begin about var Au = {}; Au.Subject = "shawl.qiu JScript Pagination class"; Au.Version = "v2.0"; Au.Name = "shawl.qiu"; Au.Email = "shawl.qiu@gmail.com"; Au.Blog = "http://blog.csdn.net/btbtd/"; Au.CreatedDate = "2007-1-10"; Au.Update = {}; Au.Update["1"] = "2007-1-22"; Au.Update["2"] = "2007-6-6"; Au.Update["3"] = "2007-9-11 v2.0"; //---------------end about var This = this; var Param = {}; Param.RecordSet = null; Param.PageSize = 20; Param.AbsolutePage = 1; Param.ListLength = 10; Param.QueryId = "page"; Param.JumpJsFuncName = "fG2Url"; var PVar = {}; PVar.Executed = false; PVar.RecordCount = 0; var Word = {}; Word.First = '首页'; Word.Last = '尾页'; Word.PreviousTen = '上十'; Word.Previous = '上一'; Word.Next = '下一'; Word.NextTen = '下十'; var ClassName = {}; ClassName.Status = "sqPagedInfo"; ClassName.Navigator = "sqPagedList"; //------------------------------------end private variable //------------------------------------begin public method //-------------------Begin this.Get this.Get = {}; this.Get.Au = fGetAu; //-------------------End this.Get //-------------------Begin this.Set this.Set = {}; //-------------------End this.Set this.Go = fGo; this.Navigator = fNavigator; this.Status = fStatus; //------------------------------------end public method //------------------------------------begin private method function fGo(fIniter) { if(fIsFunc(fIniter)) fIniter(Param, Word, ClassName); Param.AbsolutePage = fFixValue(Param.AbsolutePage, Number, 1); } // end function fGo function fNavigator() { if(Param.RecordSet==null) fFatalError("RecordSet couldn't be null!"); PVar.Executed = true; PVar.RecordCount = fFixValue(Param.RecordSet.RecordCount, Number); if(PVar.RecordCount === 0)return false; var iAllPage = Math.ceil(PVar.RecordCount / Param.PageSize); if(Param.PageSize > PVar.RecordCount) return false; var TempRe = new RegExp(['\\b',Param.QueryId,'\=.*[^&]'].join(''), 'i') var sUrl = ['?',Request.ServerVariables("QUERY_STRING"),'&',Param.QueryId,'='].join(''); sUrl = sUrl .replace(TempRe, Param.QueryId + '=') .replace('?&', '?') .replace('&&', '&') ; Param.RecordSet.PageSize = Param.PageSize; // 设置每页大小 if(Param.AbsolutePage < 1) Param.AbsolutePage = 1; // 当前所在页 if(Param.AbsolutePage > iAllPage) Param.AbsolutePage = iAllPage; Param.RecordSet.AbsolutePage = Param.AbsolutePage; Response.write('<div class="'+ClassName.Navigator+'">'); if(Param.AbsolutePage) { Response.Write('<a href="'+sUrl+'1">'); Response.Write(Word.First); Response.Write('</a> '); } else { Response.Write('<span class="sqPagedNonLink">'); Response.Write(Word.First); Response.Write('</span> '); } if(iAllPage > Param.ListLength) { if(Param.AbsolutePage > 10) { Response.Write('<a href="'+sUrl+(Param.AbsolutePage-0-10-(Param.AbsolutePage%10)+1)+'">'); Response.Write(Word.PreviousTen); Response.Write('</a> '); } else { Response.Write('<span class="sqPagedNonLink">'); Response.Write(Word.PreviousTen); Response.Write('</span> '); } } if(Param.AbsolutePage > 1) { Response.Write('<a href="'+sUrl+(Param.AbsolutePage-1)+'">'); Response.Write(Word.Previous); Response.Write('</a> '); } else { Response.Write('<span class="sqPagedNonLink">'); Response.Write(Word.Previous); Response.Write('</span> '); } for(var i = 0 , temp = Param.AbsolutePage - (Param.AbsolutePage % Param.ListLength) + 1, temp_ = ''; i < Param.ListLength; temp++ , i++ ) { if(temp > iAllPage) break; if(temp === Param.AbsolutePage) { Response.Write('<span class="sqPagedCurLink">'); Response.Write(temp); Response.Write('</span> '); } else { Response.Write('<a href="'+sUrl+temp+'">'); Response.Write(temp); Response.Write('</a> '); } } // end for if(Param.AbsolutePage < iAllPage) { Response.Write('<a href="'+sUrl+(Param.AbsolutePage-0+1)+'">'); Response.Write(Word.Next); Response.Write('</a> '); } else { Response.Write('<span class="sqPagedNonLink">'); Response.Write(Word.Next); Response.Write('</span> '); } if(iAllPage > Param.ListLength) { if(Param.AbsolutePage < iAllPage -9) { Response.Write('<a href="' + sUrl + (Param.AbsolutePage -0 +10 - (Param.AbsolutePage % 10) + 1) + '">'); Response.Write(Word.NextTen); Response.Write('</a> '); } else { Response.Write('<span class="sqPagedNonLink">'); Response.Write(Word.NextTen); Response.Write('</span> '); } } // end if ///if() if(Param.AbsolutePage != iAllPage) { Response.Write(' <a href="'+sUrl+iAllPage+'">'); Response.Write(Word.Last); Response.Write('</a>'); } else { Response.Write(' <span class="sqPagedNonLink">'); Response.Write(Word.Last); Response.Write('</span>'); } Response.Write(" 转到:<input type=\"text\" size=\"6\" \n"); Response.Write("class=\"sqJump\" onkeypress=\""); Response.Write(Param.JumpJsFuncName); Response.Write("(this.value,event)\" />\n"); Response.Write("<script type=\"text/javascript\">\n"); Response.Write("//<![CDATA[\n"); Response.Write(" function "); Response.Write(Param.JumpJsFuncName); Response.Write("(sUrl, oEvt){\n"); Response.Write(" if(!oEvt)var oEvt=window.event;\n"); Response.Write(" var kc=oEvt.which||oEvt.keyCode;\n"); Response.Write(" if(kc==13){\n"); Response.Write(" window.location.href=\"?page=\"+sUrl}\n"); Response.Write(" }\n"); Response.Write("//]]>\n"); Response.Write("<\/script>\n"); Response.Write("<style type=\"text/css\">\n"); Response.Write("/* <![CDATA[ */\n"); Response.Write(" .sqJump{\n"); Response.Write(" border:0px;\n"); Response.Write(" border-bottom:1px dashed black;\n"); Response.Write(" }\n"); Response.Write("/* ]]> */\n"); Response.Write("</style>\n"); Response.write('</div>'); } // end function fNavigator() function fStatus() { var iRsCount = 0; if(!PVar.Executed) iRsCount = Param.RecordSet.RecordCount; else iRsCount = PVar.RecordCount; Response.write('<div class="'+ClassName.Status+'">'); Response.Write(Param.PageSize + ' 篇/页 '); Response.Write(Param.AbsolutePage); Response.Write('/'); Response.Write(Param.RecordSet.PageCount); Response.Write('页 共 '); Response.Write(iRsCount); Response.write(' 篇 </div>'); } // end function fStatus() function fIsFunc(Func) { // shawl.qiu code, return Boolean if(Func) if(Func.constructor==Function) return true; return false; } // end function fIsFunc(Func) function fFatalError(sMsg) { // shawl.qiu code, void return if(!sMsg) sMsg = "an fatal error occurring, program abort now!" throw new Error(sMsg); } // end function fFatalError(sMsg) function fFixValue(Value, Parser, NullValue) { // shawl.qiu code, return Integer|String switch(Parser) { case Number: Value-=0; if(isNaN(Value)) { if(typeof(NullValue)=="undefined") NullValue = 0; Value = NullValue; } break; default: Value+=""; if(Value=="undefined") { if(typeof(NullValue)=="undefined") NullValue = ""; Value = NullValue; } break; } return Value; } // end function fFixValue(sKey, sParse) function fGetAu(){ return Au; } //------------------------------------end private method } // shawl.qiu code //---------------------------------end class Pagination()---------------------------------// // var Pg = new Pagination(); // Pg.Go(fIniter); // delete Pg; // // function fIniter(Param) // { // // } // end function fIniter(Param) %> shawl.qiu Jscript Server-Side Library Class Pagination Manual ---/------------------------------------------------------------------------------ var rs = new ActiveXObject('adodb.recordset'); rs.Open('select * from shawlqiu_ order by articleid desc', conn, 1); if(rs.Eof || rs.Bof)break; var StartDt = new Date(); var Pg = new Pagination(); Pg.Go(fIniter); Response.write('<div class="pagenav" style="text-align:center;">'); Pg.Navigator(); Pg.Status(); Response.write('</div>'); delete Pg; function fIniter(Param) { Param.RecordSet = rs; Param.PageSize = 20; Param.AbsolutePage = Request.QueryString('page'); Param.ListLength = 10; Param.QueryId = "page"; } // end function fIniter(Param) var EndDt = new Date(); Response.Write("<div style='text-align:center'>"+(EndDt-StartDt)+"</div>"); Response.Write("<ol>"); fGetRows(rs, false, fCallback, false, false, 20); Response.Write("<ol>"); rs = null; function fGetRows(oRs, bShow, CallbackFunc, MixAr, bReturnSimpleArray, iLimitRows) { // shawl.qiu code, return array|VbArray; func: fIsFunc if(!iLimitRows) iLimitRows = -1 var oAr = null; if(MixAr) oAr = new VBArray(oRs.GetRows(MixAr[0], MixAr[1], MixAr[2])); else oAr = new VBArray(oRs.GetRows(iLimitRows)); var ar = oAr.toArray(); var iItemLen = oAr.ubound(); var iTotalLen = ar.length / (iItemLen + 1); var ResultAr = []; var bIsFunc = fIsFunc(CallbackFunc); for(var iLen = 0; iLen < iTotalLen; iLen++ ) { if(!bReturnSimpleArray) ResultAr.push([]); for(var i = 0, j = iItemLen; i <= j; i++ ) { if(bShow) Response.write(oAr.getItem(i, iLen)); if(!bReturnSimpleArray) ResultAr[iLen].push(oAr.getItem(i, iLen)); } // end for 1 if(bIsFunc) CallbackFunc(ResultAr[iLen], iLen, iLimitRows); if(bShow) Response.write('<br/>'); } // end for if(bReturnSimpleArray) return ar; return ResultAr; } // end function fGetRows(oRs, bShow, CallbackFunc, MixAr, bReturnVbArray, iLimitRows) function fIsFunc(Func) { // shawl.qiu code, return Boolean if(Func) if(Func.constructor==Function) return true; return false; } // end function fIsFunc(Func) function fCallback(Ar) { Response.Write("<li style='line-height:150%;'>"); Response.Write((Ar[0] + ' ').link('?id=edit&atc=' + Ar[1])); } |
| 文章相关信息: | |
|---|---|
| 主题: | jscript 记录集分页类 Pagination v2.0 |
| 发表者: | shawl.qiu |
| 电子邮件: | shawl.qiu@gmail.com |
| QQ: | 908202921 |
| MSN: | btbtd@msn.com |
| Homepage: | http://www.btbtd.org/ |
| Blog: | http://blog.csdn.net/btbtd/ |
| 发表日期: | 2007-9-11 21:47:32 |
| 更新日期: | 2007-9-11 21:47:32 |
| 来源引用: | shawl.qiu CSharp DotNet 个人资料管理系统 |
| 引用本页: | http://gi.2288.org/mod/code/display/Default.aspx?aid=601 |