这几天感冒,吃了药以后混混欲睡的,学习笔记就耽搁, 这两天在实现Bootstrap-table使用ajax删除数据,真是感觉一个脑袋两个大,完全是无从下手,从网上搜罗的代码看着不明就里,不明白是怎么实现的。今天在jquey帮助文档里找到了例子,算是基本明白原理了。下面记一下实现的过程:
前台页面创建bootstrap-table:
$(function () {
//1.初始化Table
var oTable = new TableInit();
oTable.Init();
//2.初始化Button的点击事件
/* var oButtonInit = new ButtonInit();
oButtonInit.Init();*/
});
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
$('#tb_zzManager').bootstrapTable({
url: '/GetZZInfo', //请求后台的URL(*)
method: 'get', //请求方式(*)
/*toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: true, //是否启用排序
sortOrder: "asc", //排序方式
clickToSelect: true, //是否启用点击选中行
showToggle:true, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
showRefresh:true, //是否显示刷新按钮
showPaginationSwitch:true, //是否显示选择分页数按钮
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
uniqueId: "id", //每一行的唯一标识,一般为主键列
queryParams: oTableInit.queryParams,//传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
strictSearch: true,
showColumns: true, //是否显示所有的列
showRefresh: true, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
detailView: false, */ //是否显示父子表
columns: [{
field: 'id',
title: 'myid',
visible: false
}, {
field: 'zzName',
title: '资质名称',
editable: true
}, {
field: 'zzDetail',
title: '详细信息',
editable: true
}, {//定义操作列
field: 'operate',
title: '操作',
align: 'center',
events: operateEvents,
formatter: operateFormatter
}]
});
// sometimes footer render error.
/*setTimeout(function () {
$('#tb_departments').bootstrapTable('resetView');
}, 200);*/
$('#tb_zzManager').on('click-cell.bs.table',function(field,value,row,$element){
alert(row);
});
};
//得到查询的参数
/*oTableInit.queryParams = function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
limit: params.limit, //页面大小
offset: params.offset, //页码
departmentname: $("#txt_search_departmentname").val(),
statu: $("#txt_search_statu").val()
};
return temp;
};*/
return oTableInit;
};
初始化操作列,增加删除和保存两个按钮:
function operateFormatter(value, row, index) {
return [
'',
'',
' ',
'',
'',
''
].join('');
}
使用Ajax向后台传参,我现在只实现了删除操作:
window.operateEvents = {
'click .remove': function (e, value, row, index) {
$('#tb_zzManager').bootstrapTable('remove', {
field: 'id',
values: [row.id]
});
$.ajax({
url:'/zzOperate?opr=del&id='+row.id,
method:'get'
})
.done(function(msg){
alert(msg);
});
},
'click .save': function (e, value, row, index) {
}
};
router.route('/zzOperate')
.get(function(req,res){
console.log('进入了资质管理删除方法,id='+req.query.id);
var stropr = req.query.opr;
var id = req.query.id;
if(stropr==='del')
{
user1dao.delZZInfoByID(id,function(result){
if(result){
res.send('删除失败');
}else{
res.send('删除成功');
}
});
}
});