搜尋
首頁web前端Bootstrap教程bootstrap怎麼實現分頁

bootstrap怎麼實現分頁

Jul 19, 2019 am 10:49 AM
bootstrap

bootstrap怎麼實現分頁

推薦教學:BootStrap教學

  寫前端都會面臨的一個問題就是分頁,如果是純js分頁也是可以的,只是可能程式碼量比較大,所以今天寫一個關於用bootstrap框架分頁的例子,希望以後可以幫助到一些對這方面比較頭疼的碼農。

  首先需要明確的一點是,哪些數據是需要分頁的,單從數據顯示上其實是沒有必要分頁的,因為頁面是可以顯示的出來的,但是作為一個相對比較合格的前端,你首先要考慮的不只是這個功能是不是可以實現,而是要考慮使用者體驗是不是好的,在既有功能上如果可以更多的考慮使用者體驗的問題,那麼才可以算是相對比較合格的前端工程師。

1、首先我們將需要用的資料準備好(這個一般是ajax請求 到的數據,現在我們直接放到一個js裡面,載入js的時候直接取出資料)

var testboke = {
    "code":200,
    "message":null,
    "data":{
        "total":17,//总条数
        "size":10,//分页大小-默认为0
        "pages":2,//总页数
        "current":1,//当前页数
        "records":[//author-riverLethe-double-slash-note数据部分
            {
                "id":17,//项目id
                "userName":"Night夜",//发起人名称
                "companyName":"康佰裕",//发起人公司名称
                "ptypeName":"13",//发起项目类别
                "pask":"13",
                "pname":"13",
                "pdesc":"13"
            },
            {
                "id":16,
                "userName":"Night夜",
                "companyName":"康佰裕",
                "ptypeName":"12",
                "pask":"12",
                "pname":"12",
                "pdesc":"12"
            },
            {
                "id":15,
                "userName":"BB机",
                "companyName":"北京电影",
                "ptypeName":"11",
                "pask":"11",
                "pname":"11",
                "pdesc":"11"
            },
            {
                "id":14,
                "userName":"BB机",
                "companyName":"北京电影",
                "ptypeName":"9",
                "pask":"9",
                "pname":"9",
                "pdesc":"9"
            },
            {
                "id":13,
                "userName":"BB机",
                "companyName":"北京电影",
                "ptypeName":"7",
                "pask":"7",
                "pname":"7",
                "pdesc":"7"
            },
            {
                "id":12,
                "userName":"Night夜",
                "companyName":"康佰裕",
                "ptypeName":"6",
                "pask":"6",
                "pname":"6",
                "pdesc":"6"
            },
            {
                "id":11,
                "userName":"BB机",
                "companyName":"北京电影",
                "ptypeName":"5",
                "pask":"5",
                "pname":"5",
                "pdesc":"5"
            },
            {
                "id":10,
                "userName":"Night夜",
                "companyName":"康佰裕",
                "ptypeName":"4",
                "pask":"4",
                "pname":"4",
                "pdesc":"4"
            },
            {
                "id":9,
                "userName":"BB机",
                "companyName":"北京电影",
                "ptypeName":"3",
                "pask":"3",
                "pname":"3",
                "pdesc":"3"
            },
            {
                "id":8,
                "userName":"Night夜",
                "companyName":"康佰裕",
                "ptypeName":"2",
                "pask":"2",
                "pname":"2",
                "pdesc":"2"
            }
        ]
    }
}

2、接下來畫頁面的表格:

<body>
			<div class="templatemo-content col-1 light-gray-bg">
				<div class="templatemo-top-nav-container">
					<div class="row">
						<nav class="templatemo-top-nav col-lg-12 col-md-12">
							<li>
								<a href="">发起项目列表管理</a>
							</li>
						</nav>
					</div>
				</div>
				<!--正文部分-->
				<div style="background: #E8E8E8;height: 60rem;">
 
					<div class="templatemo-content-container">
						<div class="templatemo-content-widget no-padding">
							<!--表头-->
							<div class="panel-heading templatemo-position-relative">
								<h2 id="发起项目列表">发起项目列表</h2></div>
							<div class="panel panel-default table-responsive" id="mainContent">
 
							</div>
						</div>
					</div>
				</div>
 
				<div class="pagination-wrap" id="callBackPager">
				</div>
				<footer class="text-right">
					<p>Copyright &copy; 2018 Company Name | Designed by
						<a href="http://www.csdn.com" target="_parent">csdn</a>
					</p>
				</footer>	
	</body>

  這個時候也頁面上是沒有任何的元素的,因為我們需要的是將頁面上的表格用js動態的畫出來,這樣才可以實現取出來的資料是可以分頁的,但是畫表格的前提是你要可以拿到數據對不對,所以接下來應該是拿數據,而不是急著畫表格,因為沒有數據的時候你的表格即使是畫出來了,也是顯示不出來的,那我們開始拿資料:

3、我們寫一個函數來取資料:##

/*将数据取出来*/
		function data(curr, limit) {
				//console.log("tot:"+totalCount)
						/*拿到总数据*/
				totalCount = testboke.data.total; //取出来的是数据总量
				dataLIst = testboke.data.records; // 将数据放到一个数组里面(dataLIst 还未声明,莫着急)
				createTable(curr, limit, totalCount);
                console.log("tot:"+totalCount)
		}

4、載入分頁的js(bootstrap的分頁js

	<link href="../../css/font-awesome.min.css" rel="stylesheet" />
		<link href="../../css/bootstrap.min.css" rel="stylesheet" />
		<link href="../../css/templatemo-style.css" rel="stylesheet" />
		<link href="../../css/layui/css/layui.css" rel="stylesheet" />
		
		<script src="../../js/bootstrap.min.js" type="text/javascript"></script>
		<script src="../../js/jquery-1.8.3-min.js" type="text/javascript"></script>
		<script src="../../js/jquery.min.js" type="text/javascript"></script>
		<script src="../../js/extendPagination.js" type="text/javascript"></script>
		<script src="../../js/layui/lay/dest/layui.all.js" type="text/javascript"></script>
		<!--引如测试数据的js-->
		<script src="../../js/testcode.js" type="text/javascript"></script>

  上面的這些js,css都可以去cdn上面找到,除了testcode,在最上面,就是我們載入資料的js。


5、下面就是將分頁的程式碼寫上:#

var currPage = 1;
		var totalCount;
		var dataLIst = [];
		window.onload = function() {
			/*取到总条数*/
			/*每页显示多少条  10条*/
			var limit = 10;
			data(currPage, limit)
			//console.log(totalCount)
			createTable(1, limit, totalCount);
			$(&#39;#callBackPager&#39;).extendPagination({
				totalCount: totalCount,
				limit: limit,
				callback: function(curr, limit, totalCount) {
					data(curr, limit)
				}
			});
		}

  載入以後的效果是這樣的:


bootstrap怎麼實現分頁

6、這個時候就是已經基本上將資料處理好了,只是沒有將資料放進去,最後我們將資料放進去就可以了,(我的寫法不建議借鑒,很多現成的循環畫表格的方法,我是原生的拼接字符串寫的,不嫌麻煩的可以自己拼一下,畢竟不管是什麼框架,最底層的還是這樣的實作原理)

/*创建的是一个表格,并将数据放进去*/
		function createTable(currPage, limit, total) {
			var html = [],
				showNum = limit;
			if(total - (currPage * limit) < 0) showNum = total - ((currPage - 1) * limit);
			html.push(&#39; <table class="table table-striped table-bordered templatemo-user-table" style="margin-left: 0;">&#39;);
			html.push(&#39; <thead><tr><th>序号</th><th>项目名称</th><th>类别</th><th>发起人</th><th>单位</th><th>详情</th><th>操作</th></tr></thead><tbody>&#39;);
			for(var i = 0; i < showNum; i++) {
				html.push(&#39;<tr>&#39;);
				html.push(&#39;<td>&#39; + dataLIst[i].id + &#39;</td>&#39;);
				html.push(&#39;<td>&#39; + dataLIst[i].pname + &#39;</td>&#39;);
				html.push(&#39;<td>&#39; + dataLIst[i].ptypeName + &#39;</td>&#39;);
				html.push(&#39;<td>&#39; + dataLIst[i].userName + &#39;</td>&#39;);
				html.push(&#39;<td>&#39; + dataLIst[i].companyName + &#39;</td>&#39;);
				html.push(&#39;<td><a href="project_details_init.html?id=&#39;+dataLIst[i].id+&#39;" class="templatemo-edit-btn">详情</a></td>&#39;);
				html.push(&#39;<td><button class="templatemo-edit-btn" οnclick=checkproject(&#39; + dataLIst[i].id + &#39;,"1")>同意&#39; +
					&#39;</button> <button class="templatemo-edit-btn" οnclick=checkproject(&#39; + dataLIst[i].id + &#39;,"2")>拒绝</button></td>&#39;);
				html.push(&#39;</tr>&#39;);
			}
			html.push(&#39;</tbody></table>&#39;);
			var mainObj = $(&#39;#mainContent&#39;);
			mainObj.empty();
			mainObj.html(html.join(&#39;&#39;));
		}

  最終效果圖:

bootstrap怎麼實現分頁

  ok,到這裡基本就已經將一個頁面載入資料和分頁處理結束了,是不是很簡單,其實本來就不難,只是很多的時候我們不想去測試,當然中間取資料的地方是ajax來處理的,但是為了給你們舉例子,我只能將ajax那塊取資料的地方直接寫到js裡面,這個資料是動態的,用ajax取資料的時候,然後就是這個分頁其實是後端給資料的時候就已經分好的,我們只是把資料拿到,告訴他頁碼,他給我們對應頁碼的數據,前端如果將所有的數據全部拿出來,是不是不可以分頁呢?不是的,也是可以的,只是這樣的分頁性能會很差,因為每次你拿到的數據都是數據庫查詢所有的數據拿出來的數據,這樣對數據庫的壓力太大了,我們一般叫這種分頁為假分頁。

以上是bootstrap怎麼實現分頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
理解引導:核心概念和功能理解引導:核心概念和功能Apr 11, 2025 am 12:01 AM

Bootstrap是一個開源的前端框架,主要作用是幫助開發者快速構建響應式網站。 1)它提供了預定義的CSS類和JavaScript插件,方便實現複雜的UI效果。 2)Bootstrap的工作原理依賴於其CSS和JavaScript組件,通過媒體查詢實現響應式設計。 3)使用示例包括基本用法,如創建按鈕,以及高級用法,如自定義樣式。 4)常見錯誤包括類名拼寫錯誤和未正確引入文件,建議使用瀏覽器開發者工具調試。 5)性能優化可通過自定義構建工具實現,最佳實踐包括使用語義化HTML和Bootstrap的預定義

Bootstrap Deep Dive:響應式設計和高級佈局技術Bootstrap Deep Dive:響應式設計和高級佈局技術Apr 10, 2025 am 09:35 AM

Bootstrap通過網格系統和媒體查詢實現響應式設計,使網站適應不同設備。 1.使用預定義類(如col-sm-6)定義列寬。 2.網格系統基於12列,需注意總和不超12。3.使用斷點(如sm、md、lg)定義不同屏幕尺寸下的佈局。

Bootstrap面試問題:降落您夢想的前端工作Bootstrap面試問題:降落您夢想的前端工作Apr 09, 2025 am 12:14 AM

Bootstrap是一套開源的前端框架,用於快速開發響應式網站和應用。 1.它提供了響應式設計、一致的UI組件和快速開發的優勢。 2.網格系統使用flexbox佈局,基於12列結構,通過.container、.row和.col-sm-6等類實現。 3.自定義樣式可以通過修改SASS變量或覆蓋CSS實現。 4.常用JavaScript組件包括模態框、輪播圖和折疊。 5.優化性能可以通過只加載必要組件、使用CDN和壓縮合併文件來實現。

Bootstrap&JavaScript集成:動態功能和功能Bootstrap&JavaScript集成:動態功能和功能Apr 08, 2025 am 12:10 AM

Bootstrap和JavaScript可以無縫整合,賦予網頁動態功能。 1)使用JavaScript操作Bootstrap組件,如模態框和導航欄。 2)確保jQuery正確加載,避免常見集成問題。 3)通過事件監聽和DOM操作實現複雜用戶交互和動態效果。

bootstrap搜索欄怎麼獲取bootstrap搜索欄怎麼獲取Apr 07, 2025 pm 03:33 PM

如何使用 Bootstrap 獲取搜索欄的值:確定搜索欄的 ID 或名稱。使用 JavaScript 獲取 DOM 元素。獲取元素的值。執行所需的操作。

bootstrap怎麼插入圖片bootstrap怎麼插入圖片Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap怎麼設置框架bootstrap怎麼設置框架Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap模態框怎麼做bootstrap模態框怎麼做Apr 07, 2025 pm 03:24 PM

如何使用 Bootstrap 創建模態框?創建一個具有適當 HTML 結構的模態框。包含 Bootstrap 和 jQuery 庫以啟用模態功能。使用 JavaScript 或 jQuery 代碼顯示或隱藏模態框。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!