1.頁面js/css
<!-- bootstrap 插件樣式 --> <link th:href="@{/common/bootstrap-3.3.6/css/bootstrap.min.css}" rel="stylesheet"/> <link th:href="@{/common/bootstrap-3.3.6/css/bootstrap-theme.min.css}" rel="stylesheet"/> <!-- bootstrap-table 表格插件樣式 --> <link th:href="@{/common/bootstrap-table-1.12.2/bootstrap-table.min.css}" rel="stylesheet"/> <!-- bootstarp table 行拖動--> <link th:href="@{/common/bootstrap-table-1.12.2/extensions/reorder-rows/bootstrap-table-reorder-rows.css}" rel="stylesheet"/> <!-- bootstrap 插件 --> <script th:src="@{/common/bootstrap-3.3.6/js/bootstrap.min.js}"></script> <!-- bootstrap-table 表格插件 --> <script th:src="@{/common/bootstrap-table-1.12.2/bootstrap-table.min.js}"></script> <script th:src="@{/common/bootstrap-table-1.12.2/locale/bootstrap-table-zh-CN.min.js}"></script> <!-- bootstarp table 行拖動--> <script th:src="@{/common/TableDnD-1.0.3/dist/jquery.tablednd.1.0.3.min.js}"></script> <script th:src="@{/common/bootstrap-table-1.12.2/extensions/reorder-rows/bootstrap-table-reorder-rows.js}"></script>
2.頁面定義table
<div class="container-div ui-layout-center"> <div class="col-sm-12 search-collapse" style="margin-top: 20px"> <table id="table_sortShowNorm" data-mobile-responsive="true"></table> </div> </div>
3.自定義js
$(function () { initTable(); }); /* 初始table */ function initTable() { // 初始化Table var oTable = new tableInit(); oTable.init(); } /* bootstrapTable組件初始化方法 */ var tableInit = function () { var Obj = CommonJS.getUrlParamObject(); $("#input_reportFormId").val(Obj["reportFormId"]); // $("#input_reportFormName").val(Obj["reportFormName"]); var tableVal = {}; // 初始化表單數據 tableVal.init = function () { var obj = CommonJS.getUrlParamObject(); var tid = obj.tid; $('#table_sortShowNorm').bootstrapTable({ url: ctx + "report/issueReport/customColumnsConf", // 請求后台的URL(*) undefinedText: '',// 當數據為undefined時顯示的字符,默認是'-' toolbar: 'false', // 工具按鈕用哪個容器 toolbarAlign: 'false', // 工具按鈕的位置 striped: false, // 是否顯示行間隔色 queryParams: {reportFormId: $("#input_reportFormId").val()}, // 傳遞參數(*) pagination: false,//是否分頁 uniqueId: "tid", // 每一行的唯一標識,一般為主鍵列 field: 'checked', checkbox: true, formatter: stateFormatter, showColumns: false,// 是否顯示列的按鈕 reorderableRows: true, //設置拖動排序 useRowAttrFunc: true, //設置拖動排序 columns: [{ field: 'checked', checkbox: true, formatter: stateFormatter }, { title: '序號', formatter: function (value, row, index) { return index + 1; }, align: 'center' }, { field: 'name', title: '名稱', align: 'center', cellStyle: { css: { "text-align": "center !important" } } }], responseHandler: function (res) { if (res.success) { $('#input_cacheId').val(res.data.tid); $('#input_modifyTime').val(res.data.modifyTime); var data = res.data.treeDto; return data; } else { CommonJS.modal.alertError(res.message); } return res; } }); //判斷是否是選中的 function stateFormatter(value, row, index) { if (row.checked == "true") { return { disabled: false,//設置是否可用 checked: true//設置選中 }; } return value; } }; return tableVal; };
4.點擊保存傳遞的id
$("#a_custom").on("click", function () { var name = $("#input_reportFormName").val().split("---")[0]; var index1 = layer.open({ type: 2, // 2|iframe層 title: '【' + name + '】 可顯示列', area: ["580px", "500px"], //maxmin: true, // 最大化,最小化 content: encodeURI(ctx + "report/issueReport/customColumnsView?reportFormId=" + $("#input_reportFormId").val()), btn: ['保存', '取消'], yes: function (index, layero) { var iframe = layero.find('iframe')[0].contentWindow;//獲取彈框頁 reportFormId = iframe.$('#input_reportFormId').val(); tid = iframe.$('#input_cacheId').val(); modifyTime = iframe.$('#input_modifyTime').val(); var ids = ""; var allReportxIds = ""; //獲取選中的id var rows = iframe.$("#table_sortShowNorm").bootstrapTable('getSelections'); //獲取所有的id var rowsAll = iframe.$("#table_sortShowNorm").bootstrapTable('getData'); for (var i = 0; i < rows.length; i++) { ids += rows[i]['id'] + ","; } ids = ids.substring(0, ids.length - 1); for (var i = 0; i < rowsAll.length; i++) { allReportxIds += rowsAll[i]['id'] + ","; } allReportxIds = allReportxIds.substring(0, allReportxIds.length - 1); $.ajax({ type: "post",//方法類型 dataType: "json",//預期服務器返回的數據類型 url: encodeURI(ctx + "report/issueReport/doEditCustomColumnsConf"),//url data: {reportFormId: reportFormId, tid: tid, modifyTime: modifyTime, allReportxIds: allReportxIds, showReportxIds: ids}, success: function (result) { //按鈕【按鈕一】的回調 if (result.success) { resetScheduleLists(); //layer.alert("操作成功"); layer.close(index); } else { CommonJS.modal.alertError(result.message); } } }); }, cancel: function (index, layero) { layer.close(index); } }); });
5.后台接受傳遞的參數
public class R implements Serializable { private static final long serialVersionUID = 1L; /** * 主鍵 */ private BigDecimal tid; /** * 表格所有id */ private String allReportxIds; private String showReportxIds; /** * 選中的 */ private BigDecimal reportFormId; }
6.后台傳前台的數據封裝成List
注意問題:
列拖動需要設置的一些屬性和方法:
field: 'checked',//選中字段 checkbox: true,//復選 formatter: stateFormatter, reorderableRows: true, //設置拖動排序 useRowAttrFunc: true, //設置拖動排序
columns: [{
field: 'checked',
checkbox: true,
formatter: stateFormatter
}]
//判斷是否是選中的
function stateFormatter(value, row, index) {
if (row.checked == "true") {
return {
disabled: false,//設置是否可用
checked: true//設置選中
};
}
return value;
}