bootstrap-table 点击列头进行排序,搜索

该博客介绍了如何在网页中利用bootstrap-table库实现表格数据的点击列头排序功能。通过监听列头点击事件,结合后台Controller处理排序参数,如`sortOrder`和`sortName`,实现数据的动态排序。同时,博客还展示了如何结合关键词`keyword`进行搜索过滤,展示匹配结果。在Model层,通过SQL动态拼接,根据排序字段和方式以及关键词对数据进行筛选和分页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



点击表格的th 列头 进行相应的排序

/js

function initMemberTable() {
$('#memberTable').bootstrapTable('destroy');// 销毁表格数据
$('#memberTable')
.bootstrapTable(
{
columns : [
{
checkbox : true,
align : 'center'
},
{
field : 'member_id',
title : 'id',
align : 'center',
sortable : true
},
{
field : 'member_Uid',
title : '会员id',
align : 'center',
sortable : true
},
{
field : 'nickName',
title : '昵称',
align : 'center',
sortable : true
},
{
field : 'portrait',
title : '头像',
align : 'center',
sortable : true,
formatter : portrait
},
{
field : 'sex',
title : '性别',
align : 'center',
sortable : true
},
{
field : 'loginType',
title : '登陆方式',
align : 'center',
sortable : true
},
{
field : 'signature',
title : '个性签名',
align : 'center',
sortable : true
},
{
field : 'thirdSign',
title : '第三方标识',
align : 'center',
sortable : true
},
{
field : 'yesnoAgreeChat',
title : '是否同意私聊',
align : 'center',
sortable : true
},
{
field : 'myAttention',
title : '关注数',
align : 'center',
sortable : true
},
{
field : 'myFans',
title : '粉丝数',
align : 'center',
sortable : true
},
{
field : 'startTime',
title : '会员开始时间',
align : 'center',
sortable : true
},
{
field : 'endTime',
title : '会员结束时间',
align : 'center',
sortable : true
},
{
field : 'registerTime',
title : '注册时间',
align : 'center',
sortable : true
},
{
field : 'minderMoney',
title : '守护资费',
align : 'center',
sortable : true
},
{
field : 'minderMoneyTime',
title : '守护资费修改时间',
align : 'center',
sortable : true
},
{
field : 'balance',
title : '会员余额',
align : 'center',
sortable : true,
formatter : function(value, row) {
if (value > 0) {
return "<button id=\"btn_cash_"
+ row.member_id
+ "\" type=\"button\" class=\"btn btn-info\" οnclick=\"Charge('"
+ row.member_id
+ "','"
+ value
+ "','"
+ row
+ "',this);\"><span class=\"glyphicon \" aria-hidden=\"true\"></span>¥"
+ value + " 提现</button>";
} else {
return value;
}


}
}, {
field : 'memberType',
title : '会员类型',
align : 'center',
sortable : true,
formatter : memberTypeFormatter
}, {
field : 'lastLoginTime',
title : '最后登陆时间',
align : 'center',
sortable : true
} ],
sortName : 'member_id',
sortOrder : 'asc',

pagination : true, // 分页
sidePagination : 'server',
pageNumber : 1,
pageSize : 10,
pageList : [ 10, 20, 50, 100 ],
showColumns : true,
checkboxHeader : false,
clickToSelect : true,
singleSelect:true,
toolbar : "#toolbar",
singleSelect : false,
search:true,
queryParamsType : 'limit',
queryParams : function(params) {
return {
pageSize : params.limit,
rowoffset : params.offset,
keyword:params.search,//搜索
sortOrder: params.order,//排序
          sortName:params.sort//排序字段

}
},
onDblClickRow : function(row, $element) {
editMemberInfoShow(row, $element);
},
url : './member/initMemberInfoCon'
});
$('#memberTable').bootstrapTable('hideColumn', 'portrait');
$('#memberTable').bootstrapTable('hideColumn', 'thirdSign');//隐藏 字段
$('#memberTable').bootstrapTable('hideColumn', 'startTime');
$('#memberTable').bootstrapTable('hideColumn', 'endTime');
$('#memberTable').bootstrapTable('hideColumn', 'minderMoney');
$('#memberTable').bootstrapTable('hideColumn', 'minderMoneyTime');
$('#memberTable').bootstrapTable('hideColumn', 'yesnoAgreeChat');
$('#memberTable').bootstrapTable('hideColumn', 'member_id');

}

controller

public void initMemberInfoCon() {
String pagesize=this.getPara("pageSize");
String keyword = this.getPara("keyword");
int offset = Integer.valueOf(this.getPara("rowoffset"));
    int size = (offset/Integer.valueOf(pagesize))+1;
    String pagenum = String.valueOf(size);
   
    // 排序方式
String order = this.getPara("sortOrder");
// 排序字段
String sortname = this.getPara("sortName");

   
Page<Member> obj=Member.dao.queryPage(pagenum, pagesize,keyword,order,sortname);

if(obj==null){
this.setAttr("state", "FAILED");
this.setAttr("msg", "加载Member表格数据失败!");
this.renderJson();
return;
}else{
this.setAttr("total",obj.getTotalRow());
this.setAttr("rows", obj.getList());
this.renderJson();
return;
}
}

///model

public Page<Member> queryPage(String pagenum, String pagesize, String keyword,String order,String sortname) {
try {
String sql = "select *,showMemberType(startTime,endTime,memberType) as vipstate ";
String sqlExceptSelect = "from tb_member ";
if(keyword != null && !keyword.equals(""))
{
   String tmpStr = " where member_Uid like '%"+keyword+"%' or "
           + "nickName like '%"+keyword+"%' or "
           + "memberType like '%"+keyword+"%'";
   sqlExceptSelect +=  tmpStr;
}
sqlExceptSelect+=" ORDER BY "+sortname+" "+order;
return dao.paginate(Integer.parseInt(pagenum), Integer.parseInt(pagesize), sql, sqlExceptSelect); 
} catch (Exception e) {
e.printStackTrace();
return null;
}
}













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值