这里就是说下formatter 在前台页面的简单理解。(我是结合bootstrap表格所用到的)
下面看例子吧:
(主要看红框里面的,忽略涂黑的)
主要是一个列里面存在不同值(0,1,2,3,4)对应不同的意思( 0等待初审;1初审通过;2初审未通过;3到期处理中;4已到期),
这里就用到了formatter ,直接上代码:
function load() {
$('#exampleTable')
.bootstrapTable(
{
method : 'get', // 服务器数据的请求方式 get or post
url : prefix + "/list", // 服务器数据的加载地址
// showRefresh : true,
// showToggle : true,
// showColumns : true,
iconSize : 'outline',
toolbar : '#exampleToolbar',
striped : true, // 设置为true会有隔行变色效果
dataType : "json", // 服务器返回的数据类型
pagination : true, // 设置为true会在底部显示分页条
// queryParamsType : "limit",
// //设置为limit则会发送符合RESTFull格式的参数
singleSelect : false, // 设置为true将禁止多选
// contentType : "application/x-www-form-urlencoded",
// //发送到服务器的数据编码类型
pageSize : 10, // 如果设置了分页,每页数据条数
pageNumber : 1, // 如果设置了分布,首页页码
//search : true, // 是否显示搜索框
showColumns : false, // 是否显示内容下拉框(选择显示的列)
sidePagination : "server", // 设置在哪里进行分页,可选值为"client" 或者 "server"
queryParams : function(params) {
return {
//说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
limit: params.limit,
offset:params.offset,
name:$('#searchName').val()
// username:$('#searchName').val()
};
},
// //请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果
// queryParamsType = 'limit' ,返回参数必须包含
// limit, offset, search, sort, order 否则, 需要包含:
// pageSize, pageNumber, searchText, sortName,
// sortOrder.
// 返回false将会终止请求
columns : [
{
checkbox : true
},
{
field : 'name',
title : '产品名称'
},
{
field : 'channelName',
title : '发布渠道'
},
{
field : 'status',
title : '状态',
formatter: function (value, row, index) {
if(row.status){
if(row.status==0){
return "等待初审";
}else if(row.status==1){
return "初审通过";
}else if(row.status==2){
return "初审未通过";
}else if(row.status==3){
return "到期处理中";
}else if(row.status==4){
return "已到期";
}else{
return "错误数据";
}
}
}
},
/*{
field : 'onlineTime',
title : '产品总额'
},*/
{
field : 'accountYes',
title : '已加入金额(元)'
},
/*{
field : 'addIp',
title : '完成比例(%)'
},
{
field : 'version',
title : '年利率(%)'
},*/
{
field : 'onlineStatus',
title : '发布状态',
formatter: function (value, row, index) {
if(row.onlineStatus==1){
return "上架";
}else if(row.onlineStatus==2){
return "下架";
}
}
},
{
field : 'onlineTime',
title : '上架时间'
},
/*{
field : 'createDate',
title : ''
},
{
field : 'updateDate',
title : ''
},*/
{
field: 'action',
title: '操作',
width: 75,
fixed: true,
align: 'center',
formatter: function (value, row, index) {
var str = '';
if (row.onlineStatus ==1) {
str += '<a class="btn btn-primary btn-sm href="javascript:void(0);" οnclick=" shelveProduct('+row.id+','+row.onlineStatus+')" title="下架"><i class="fa fa-edit"></i>下架</a>';
}
if (row.onlineStatus ==2) {
str += '<a class="btn btn-warning btn-sm href="javascript:void(0);" οnclick="shelveProduct('+row.id+','+row.onlineStatus+')" title="上架"><i class="fa fa-edit"></i>上架</a>';
}
return str;
}
} ]
});
}
就是这个效果。如有其它理解不到位的,欢迎请各位大神指出!
———— 蓝色的湖泽