国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript分頁功能的實現方法

2024-05-06 16:18:47
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript分頁功能的實現方法,涉及javascript操作分頁的相關技巧,需要的朋友可以參考下

本文實例講述了JavaScript分頁功能的實現方法。分享給大家供大家參考。具體實現方法如下:

  1. <script> 
  2. //定義page為全局變量,以便下面使用 
  3. var page; 
  4. window.onload = function() { 
  5. var table = document.getElementById("table"); 
  6. var btnAdd = document.getElementById("btnAdd"); 
  7. var btnModify = document.getElementById("btnModify"); 
  8. var btnDel = document.getElementById("btnDel"); 
  9. var btnRefresh = document.getElementById("btnRefresh"); 
  10. var headCheck = document.getElementById("headCheck"); 
  11. //定義每頁的頁數及初始化table和tbody的id 
  12. page = new Page(5, 'table''sTBodyId'); 
  13. //初始加載init方法 
  14. page.__init__(); 
  15. //初始更新表格 
  16. page.__updateTableRows__(); 
  17. //下面的所有方法,均寫到window.onload之外,否則運行有問題 
  18. function Page(iAbsolute, sTableId, sTBodyId) { 
  19. //每頁顯示數據的條數 
  20. this.absolute = iAbsolute;  
  21. this.tableId = sTableId; 
  22. this.tBodyId = sTBodyId; 
  23. this.rowCount = 0;//記錄數 
  24. this.pageCount = 0;//頁數 
  25. this.pageIndex = 0;//頁索引 
  26. this.__oTable__ = null;//表格引用 
  27. this.__oTBody__ = null;//要分頁內容 
  28. this.__dataRows__ = 0;//記錄行引用 
  29. this.__oldTBody__ = null
  30. //初始化 
  31. Page.prototype.__init__ = function() { 
  32. //獲取table引用 
  33. this.__oTable__ = document.getElementById(this.tableId); 
  34. //獲取tBody引用 
  35. this.__oTBody__ = this.__oTable__.tBodies[this.tBodyId]; 
  36. //獲取tbody的行 
  37. this.__dataRows__ = this.__oTBody__.rows; 
  38. //獲取tbody的總行數 
  39. this.rowCount = this.__dataRows__.length; 
  40. try { 
  41. //判斷初始化時每頁顯示的數據條數,如果定義的值<0或者定義的值>本來就有的行數,那么初始化時顯示本來的行數,否則為當前定義的行數 
  42. this.absolute = (this.absolute <= 0) 
  43. || (this.absolute > this.rowCount) ? this.rowCount 
  44. this.absolute; 
  45. //定義初始化時該顯示幾頁數據,也就是總頁數 
  46. this.pageCount = parseInt(this.rowCount % this.absolute == 0 ? this.rowCount 
  47. this.absolute 
  48. this.rowCount / this.absolute + 1); 
  49. catch (exception) { 
  50. //下一頁 
  51. Page.prototype.nextPage = function() { 
  52.  
  53. if (this.pageIndex + 1 < this.pageCount) { 
  54. this.pageIndex += 1; 
  55. this.__updateTableRows__(); 
  56. //上一頁 
  57. Page.prototype.prePage = function() { 
  58. if (this.pageIndex >= 1) { 
  59. this.pageIndex -= 1; 
  60. this.__updateTableRows__(); 
  61. //首頁 
  62. Page.prototype.firstPage = function() { 
  63. if (this.pageIndex != 0) { 
  64. this.pageIndex = 0; 
  65. this.__updateTableRows__(); 
  66.  
  67. //尾頁 
  68. Page.prototype.lastPage = function() { 
  69. if (this.pageIndex + 1 != this.pageCount) { 
  70. this.pageIndex = this.pageCount - 1; 
  71. this.__updateTableRows__(); 
  72. //頁定位方法 
  73. Page.prototype.aimPage = function(iPageIndex) { 
  74. if (iPageIndex > this.pageCount - 1) { 
  75. this.pageIndex = this.pageCount - 1; 
  76. else if (iPageIndex < 0) { 
  77. this.pageIndex = 0; 
  78. else { 
  79. this.pageIndex = iPageIndex; 
  80. this.__updateTableRows__(); 
  81. //執行分頁時,更新顯示表格內容 
  82. Page.prototype.__updateTableRows__ = function() { 
  83. //pageIndex初始化時為0 
  84. //每頁顯示的數據*當前頁的索引 
  85. var iCurrentRowCount = this.absolute * this.pageIndex; 
  86. //如果截止到當前頁的所有數據+每頁顯示的數據>總數據條數,則還需要顯示this.absolute+ iCurrentRowCount - this.rowCount這些數據,否則,顯示0條數據 
  87. var iMoreRow = this.absolute + iCurrentRowCount > this.rowCount ? this.absolute 
  88. + iCurrentRowCount - this.rowCount 
  89. : 0; 
  90. var tempRows = this.__cloneRows__(); 
  91. //alert(tempRows === this.dataRows); 
  92. //alert(this.dataRows.length); 
  93. //將tbody從table中移除 
  94. var removedTBody = this.__oTable__.removeChild(this.__oTBody__); 
  95. //重新創建tbody 
  96. var newTBody = document.createElement("TBODY"); 
  97. //給他賦一個id值,為原來的id值 
  98. newTBody.setAttribute("id"this.tBodyId); 
  99. for (var i = iCurrentRowCount; i < this.absolute + iCurrentRowCount 
  100. - iMoreRow; i++) { 
  101. //重新給body添加節點 
  102. newTBody.appendChild(tempRows[i]); 
  103. //將新創建的tbody加到table中 
  104. this.__oTable__.appendChild(newTBody); 
  105. /* 
  106. this.dataRows為this.oTBody的一個引用, 
  107. 移除this.oTBody那么this.dataRows引用將銷失, 
  108. code:this.dataRows = tempRows;恢復原始操作行集合. 
  109. */ 
  110. this.__dataRows__ = tempRows; 
  111. this.__oTBody__ = newTBody; 
  112. //克隆原始操作行集合 
  113. Page.prototype.__cloneRows__ = function() { 
  114. var tempRows = []; 
  115. //將當前body中的所有節點及其子節點都克隆一遍 
  116. for (var i = 0; i < this.__dataRows__.length; i++) { 
  117. tempRows[i] = this.__dataRows__[i].cloneNode(1); 
  118. return tempRows; 
  119. </script> 
  120. </head> 
  121. <body> 
  122. <!-- 這里有一個表格,內容隨意,供分頁使用 --> 
  123. <table width="100%" cellpadding="0" cellspacing="0" border="1" 
  124. style="padding: 2"
  125. <tr> 
  126. <td colspan="3" align="center">總共:<%=connDataList.size()%>條記錄每頁顯示5條 
  127. <a href="javascript:void(0);" 
  128. onclick="page.firstPage();return false;">首頁</a> <a 
  129. href="javascript:void(0);" onclick="page.prePage();return false;">上一頁</a> 
  130. <a href="javascript:void(0);" 
  131. onclick="page.nextPage();return false;">下一頁</a> <a 
  132. href="javascript:void(0);" onclick="page.lastPage();return false;">尾頁</a> 
  133. <span id="pageindex"></span> 
  134. </td> 
  135. </tr> 
  136. </table> 
  137. </body> 
  138. </html> 



希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 辽阳市| 镇巴县| 张家口市| 静海县| 杭锦后旗| 惠来县| 长沙县| 嘉禾县| 曲阜市| 宁海县| 广安市| 虎林市| 内乡县| 黔西县| 亚东县| 尚志市| 博爱县| 宣威市| 健康| 叶城县| 洛浦县| 城口县| 韶山市| 沈阳市| 澳门| 苍山县| 安国市| 从江县| 开阳县| 望江县| 临颍县| 德江县| 读书| 衡阳市| 南充市| 崇左市| 荣成市| 达日县| 尖扎县| 乃东县| 婺源县|