bootstrap的table屬性已經很熟悉了,最近遇到一個問題,猶豫每個列表加載的數據需求不同,所以需要動態的更換表頭。 網上有很多加載表格數據的例子,但是卻沒有找到如何動態加載表格,再加在數據。 雖然可以一個表格加載一種數據,但是本著學習的態度嘗試了下這種方式,結果發現是可以執行的。分享下思路和實現過程,以備日后使用。
思路:
1、寫接口,查詢出要展示的列。注意接口中必須要有字段中文名稱(columns屬性的title值),字段的英文名稱(columns的field字段),特別注意filed字段應該與最后查詢出的列表中返回的json數據中的key保持一致,不然取不到值。
2、ajax請求剛才的接口,查詢出columns,并給table的columns賦值。
3、加載表格展示。
大致代碼如下:
表格:
var peopleOptions;// 人口列表加載function tableItem() { peopleOptions = { method : "POST", // 使用get請求到服務器獲取數據 url : path + "/api/information/people/getList", // 獲取數據的地址 contentType : "application/x-www-form-urlencoded",// 重要否則POST會報錯 striped : false, // 表格顯示條紋 pagination : true, // 啟動分頁 pageSize : 10, // 每頁顯示的記錄數 pageNumber : 1, // 當前第幾頁 pageList : [ 10, 20, 50 ], // 記錄數可選列表 uniqueId : "id", showColumns : false, // 顯示下拉框勾選要顯示的列 showToggle : false, // 顯示 切換試圖(table/card)按鈕 clickToSelect : false, // 點擊可選 singleSelect : false, // 禁止多選 maintainSelected : true, // 在點擊分頁按鈕或搜索按鈕時,將記住checkbox的選擇項 sortable : true, // 禁止所有列的排序 sidePagination : "server", // 表示服務端請求 后臺分頁 toolbar : "#toolbar",// 指明自定義的toolbar queryParamsType : "undefined", queryParams : function queryParams(params) { var param = { pageNumber : params.pageNumber, pageSize : params.pageSize, orgId : ztreeId, nodeId : ztreeId, citizenName : $("#fullname").val().trim(), sex : $("#sex").val(), age : $("#age").val().trim(), identityCode : $("#idCard").val().trim(), cellPhone : $("#isMobile").val().trim(), adress : $("#adress").val().trim(), }; return param; }, onLoadSuccess : function() { // 加載成功時執行 responseHandler : function(res) { // 格式化數據 console.log(res); if (res.data.total != undefined) tmp = { total : res.data.total, rows : res.data.rows }; if (res.data.total == undefined) tmp = { total : res.data.length, rows : res.data }; return tmp; }, columns : [ { checkbox : true, title : '全選', valign : 'middle' }, { title : '序號', field : 'number', width : '40px', align : 'center', valign : 'middle', formatter : indexFormatter }, { title : '姓名', field : 'citizenName', align : 'center', valign : 'middle', }, { title : '年齡', field : 'age', align : 'center', width : 28, valign : 'middle', formatter : ageFormatter }, { title : '性別', field : 'sex', width : 28, align : 'center', valign : 'middle', },{ title : '身份證號', field : 'identityCode', align : 'center', valign : 'middle', }, { title : '民族', field : 'nation', align : 'center', valign : 'middle', } ] }} $table = $("#table").bootstrapTable(peopleOptions);};
新聞熱點
疑難解答
圖片精選