ElementUI的表格要求的數據類型為字典數組。我使用了python3寫後端,那麼從資料庫取數據時添加一行cursorclass=pymysql.cursors.DictCursor即可。取出後我將其存入redis資料庫方便之後取用。取用時使用eval()函數再傳到前端即可。 前端放置Pagina ...
ElementUI的表格要求的數據類型為字典數組。我使用了python3寫後端,那麼從資料庫取數據時添加一行cursorclass=pymysql.cursors.DictCursor即可。取出後我將其存入redis資料庫方便之後取用。取用時使用eval()函數再傳到前端即可。
前端放置Pagination 分頁器,我這裡直接採用了完整功能的分頁器。
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 50, 100]" :page-size="pagesize" layout="total, sizes, prev, pager, next, jumper" :total="data.length"> </el-pagination>
其中:handleSizeChange為pagesize發生改變時的相應函數,handleCurrentChange為currentPage發生改變時的相應函數。
page-sizes為所有可選擇的page-size。可以自己更改其中的數字。
layout為附帶的功能,一般不用動它。
total為總數據數。由於是字典數組,直接使用length方法即可得到總數據數。
data () { return { data: [], currentPage:1, pagesize:20, } },
初始頁currentPage、初始每頁數據數pagesize和數據data
methods: { handleSizeChange: function (size) { this.pagesize = size; }, handleCurrentChange: function(currentPage){ this.currentPage = currentPage; } }
上面的兩個響應函數,很好理解。
<el-table :data="data.slice((currentPage-1)*pagesize,currentPage*pagesize)" stripe style="width: 100%">
el-table標簽。通過計算很容易得到,要使當頁顯示分頁後的對應數據,其下標應為(當前頁-1)*每頁數據數 到 當前頁*每頁數據數。使用slice方法進行取用。
stripe為帶斑馬紋表格。
<el-table-column prop="id" label="序號" align="center"> </el-table-column>
column標簽。可放多個,對每列的控制。label為該列名稱,顯示在第一行。prop為data中的某key的名稱。
最後成果