需求:
bootstrapTable的某一列,代表該筆訂單的狀態,狀態只有3種,做成下拉框的格式,可以選擇修改,點擊保存按鈕時可以將修改后的數據同步至數據庫
列元素
columns:
{
width: '40px',
align: 'center',
field: 'status',
title: '退款狀態',
cellStyle: function (value, row, index) {
return {
css: {
"color": "blue",
"font-weight": "bold",
"font-style": "italic",
"background": "#a7efe2",
"white-space": "nowrap"
}
}
},
formatter:
function (value, row, index) {
var seclect='';
if(value=="0"){
seclect="<select class='ss'><option id='"+row.id+"' value='0' selected='selected'>待退款</option><option id='"+row.id+"' value='1'>退款成功</option><option id='"+row.id+"' value='2'>退款失敗</option></select>";
}else if(value=='1'){
seclect="<select class='ss'><option id='"+row.id+"' value='0' >待退款</option><option id='"+row.id+"' value='1' selected='selected'>退款成功</option><option id='"+row.id+"' value='2'>退款失敗</option></select>";
}else {
seclect="<select class='ss'><option id='"+row.id+"' value='0' >待退款</option><option id='"+row.id+"' value='1'>退款成功</option><option id='"+row.id+"' value='2' selected='selected'>退款失敗</option></select>";
}
return seclect;
}
},
點擊保存按鈕的操作
$("#saveRecord").click(function () {
var rows = $('#dataTable').bootstrapTable("getSelections");
if (rows.length <= 0) {
layer.msg("請選擇要保存的記錄");
return
}
//頁面數據保存
var $dataTable = $($("#dataTable tr:gt(0)"));
var totalData = [];
var data = {};
for (var i = 0; i < $dataTable.length; i++) {
var find = $($dataTable).find("input:checkbox")[i];
if ($(find).is(":checked")) {
var perModi = $($($($dataTable)[i]).find("select option:selected"));
if (perModi) {
var perInput = $(perModi).length;
for (var k = 0; k < perInput; k++) {
data.id=$($($(perModi))[k]).attr('id');
data.status=$($($(perModi))[k]).val();
}
totalData.push(data);
}
}
}
$.ajax({
url: "/controller/modifyData",
data: {'easyServe': JSON.stringify(totalData)},
type: 'post',
dataType: 'json',
success: function (data) {
$("#dataTable").bootstrapTable("refresh");
}
})
})
});
后台controller收到數據后,同步至數據庫即可
這個方法比較low,總體上可以實現需求,各位如有好的方法歡迎討論