第一次动手实现bootstrap table分页效果


Posted in Javascript onSeptember 22, 2016

先上图吧,这就是bootstrap table分页效果图

第一次动手实现bootstrap table分页效果

上代码(这一部分是工具栏的,还包括slider滑动条) 

<div class="box-body">
 <div class="row">
 <div class="form-group col-xs-3" style="width: 432px;">
 <label for="SendUser" class="col-sm-2 control-label">重量</label>
 <div class="col-sm-10">
 <div class="nstSlider"
 id="shapeNstSlider"
 data-aria_enabled="true"
 data-range_min="1"
 data-range_max="3000"
 data-cur_min="1"
 data-cur_max="3000">
 <div id="bar" class="bar"></div>
 <div id="leftGrip" class="leftGrip"></div>
 <div id="rightGrip" class="rightGrip"></div>
 </div>
 <div class="input-prepend input-append pull-left">
 <input class="span2 " id="leftLabel" style="width: 50px;" onblur="leftChange(this)" type="text">
 <span class="add-on"><em>ct</em></span>
 </div>
 <div class="input-prepend input-append pull-right">
 <input class="span2" id="rightLabel" style="width: 50px;" onblur="rightChange(this)" type="text">
 <span class="add-on"><em>ct</em></span>
 </div>
 </div>
 </div>
 <div class="form-group col-xs-3" style="width: 432px;">
 <label for="SendUser" class="col-sm-2 control-label">价格</label>
 <div class="col-sm-10">
 <div class="nstSlider"
 id="priceNstSlider"
 data-aria_enabled="true"
 data-range_min="1000"
 data-range_max="9999999"
 data-cur_min="1000"
 data-cur_max="9999999">
 <div id="priceBar" class="bar"></div>
 <div id="priceleftGrip" class="leftGrip"></div>
 <div id="pricerightGrip" class="rightGrip"></div>
 </div>
 <div class="input-prepend input-append pull-left">
 <input class="span2 " id="priceleftLabel" style="width: 80px;" onblur="priceleftChange(this)" type="text">
 <span class="add-on"><em>RMB</em></span>
 </div>
 <div class="input-prepend input-append pull-right">
 <input class="span2" id="pricerightLabel" style="width: 80px;" onblur="pricerightChange(this)" type="text">
 <span class="add-on"><em>RMB</em></span>
 </div>
 </div>
 </div>
 </div>
 <div class="row">
 <div class="form-group col-xs-3" style="width: 432px;">
 <label for="ReceiveUser" class="col-sm-2 control-label">切工</label>
 <div class="col-sm-10">
 <a class="btn btn-app" h="0" style="background-color: white; width: 57px; height: 40px; line-height: 28px;" onclick="cutChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">EX</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 57px; height: 40px; line-height: 28px;" onclick="cutChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">VG</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 57px; height: 40px; line-height: 28px;" onclick="cutChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">G</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 57px; height: 40px; line-height: 28px;" onclick="cutChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">F</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 57px; height: 40px; line-height: 28px;" onclick="cutChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">P</a>
 </div>
 </div>
 <div class="form-group col-xs-3" style="width: 432px;">
 <label class="col-sm-2 control-label">颜色</label>
 <div class="col-sm-10">
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">D</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">E</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">F</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">G</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">H</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">I</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">J</a>
 <a class="btn btn-app" h="0" style="background-color: white;" onclick="colorChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">K</a>
 </div>
 </div>
 </div>
 <div class="row">
 <div class="form-group" style="width: 100%; margin-left: -105px;">
 <label class="col-sm-2 control-label">净度</label>
 <div class="col-sm-10">
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">IF</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">VVS1</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">VVS2</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">VS1</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">VS2</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">SI1</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">SI2</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">I1</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">I2</a>
 <a class="btn btn-app" h="0" style="background-color: white; width: 61px; height: 40px; line-height: 28px;" onclick="clarityChange(this)" onmouseover="coChange(this)" onmouseout="coChange(this)">I3</a>
 </div>
 </div>
 </div>
 </div>
 </div>

下面是表格的

<table id="reportTable" class="table table-bordered table-striped" style="font-size: 10px;"></table>

这一部分是表格的 

$('#reportTable').bootstrapTable({
 method: 'post',
 url: '/qStock/AjaxPage',
 dataType: "json",
 striped: true, //使表格带有条纹
 pagination: true, //在表格底部显示分页工具栏
 pageSize: 22,
 pageNumber: 1,
 pageList: [10, 20, 50, 100, 200, 500],
 idField: "ProductId", //标识哪个字段为id主键
 showToggle: false, //名片格式
 cardView: false,//设置为True时显示名片(card)布局
 showColumns: true, //显示隐藏列 
 showRefresh: true, //显示刷新按钮
 singleSelect: true,//复选框只能选择一条记录
 search: false,//是否显示右上角的搜索框
 clickToSelect: true,//点击行即可选中单选/复选框
 sidePagination: "server",//表格分页的位置
 queryParams: queryParams, //参数
 queryParamsType: "limit", //参数格式,发送标准的RESTFul类型的参数请求
 toolbar: "#toolbar", //设置工具栏的Id或者class
 columns: column, //列
 silent: true, //刷新事件必须设置
 formatLoadingMessage: function () {
 return "请稍等,正在加载中...";
 },
 formatNoMatches: function () { //没有匹配的结果
 return '无符合条件的记录';
 },
 onLoadError: function (data) {
 $('#reportTable').bootstrapTable('removeAll');
 },
 onClickRow: function (row) {
 window.location.href = "/qStock/qProInfo/" + row.ProductId;
 },
 });

这一部分是slider的 

$('#shapeNstSlider').nstSlider({
 "left_grip_selector": "#leftGrip",
 "right_grip_selector": "#rightGrip",
 "value_bar_selector": "#bar",
 "value_changed_callback": function (cause, leftValue, rightValue, prevLeft, prevRight) {
 var $grip = $(this).find('#leftGrip'),
 whichGrip = 'left grip';
 if (leftValue === prevLeft) {
 $grip = $(this).find('#rightGrip');
 whichGrip = 'right grip';
 }

 $(this).parent().find('#leftLabel').val(leftValue / 100);
 $(this).parent().find('#rightLabel').val(rightValue / 100);
 $("#reportTable").bootstrapTable('refresh');
 }
 });

 $('#priceNstSlider').nstSlider({
 "left_grip_selector": "#priceleftGrip",
 "right_grip_selector": "#pricerightGrip",
 "value_bar_selector": "#priceBar",
 "value_changed_callback": function (cause, leftValue, rightValue, prevLeft, prevRight) {
 var $grip = $(this).find('#priceleftGrip'),
 whichGrip = 'left grip';
 if (leftValue === prevLeft) {
 $grip = $(this).find('#pricerightGrip');
 whichGrip = 'right grip';
 }

 $(this).parent().find('#priceleftLabel').val(leftValue);
 $(this).parent().find('#pricerightLabel').val(rightValue);
 $("#reportTable").bootstrapTable('refresh');
 }
 });

这一部分是改变slider的游标之后的 

function leftChange(obj) {
 $('#shapeNstSlider').nstSlider("set_position", $(obj).val(), $("#rightLabel").val());
 $("#reportTable").bootstrapTable('refresh');
 }

 function rightChange(obj) {
 $('#shapeNstSlider').nstSlider("set_position", $("#leftLabel").val(), $(obj).val());
 $("#reportTable").bootstrapTable('refresh');
 }

 function priceleftChange(obj) {
 $('#priceNstSlider').nstSlider("set_position", $(obj).val(), $("#pricerightLabel").val());
 $("#reportTable").bootstrapTable('refresh');
 }

 function pricerightChange(obj) {
 $('#priceNstSlider').nstSlider("set_position", $("#priceleftLabel").val(), $(obj).val());
 $("#reportTable").bootstrapTable('refresh');
 }

这是bootstrap-table带参到后台去的代码 

function queryParams(params) { //配置参数
 var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
 pageSize: params.limit, //页面大小
 pageNumber: params.pageNumber, //页码
 minSize: $("#leftLabel").val(),
 maxSize: $("#rightLabel").val(),
 minPrice: $("#priceleftLabel").val(),
 maxPrice: $("#pricerightLabel").val(),
 Cut: Cut,
 Color: Color,
 Clarity: Clarity,
 sort: params.sort, //排序列名
 sortOrder: params.order//排位命令(desc,asc)
 };
 return temp;
 }

其它的部分 

function colorChange(obj) { //颜色
 var p = $(obj).parent().children('a');
 if ($(obj).css("background-color") == "rgb(255, 177, 112)") {
 $(obj).css("background-color", "white");
 $(obj).css("color", "black");
 $(obj).attr("h", 1);
 } else {
 $(obj).css("background-color", "#FFB170");
 $(obj).css("color", "white");
 $(obj).attr("h", 0);
 }

 var data = [];
 for (var i = 0; i < $(p).length; i++) {
 var a = $(p)[i];
 if ($(a).attr("h") == "1") {
 data[i] = $(a).text();
 }
 }
 Color = "";
 for (var i = 0; i < data.length; i++) {
 if (data[i] != undefined) {
 Color += "'" + data[i] + "',";
 }
 }
 Color = Color.substring(0, Color.lastIndexOf(',')); //颜色条件
 $("#reportTable").bootstrapTable('refresh');
 }

 function clarityChange(obj) { //净度
 var p = $(obj).parent().children('a');
 if ($(obj).css("background-color") == "rgb(255, 177, 112)") {
 $(obj).css("background-color", "white");
 $(obj).css("color", "black");
 $(obj).attr("h", 1);
 } else {
 $(obj).css("background-color", "#FFB170");
 $(obj).css("color", "white");
 $(obj).attr("h", 0);
 }

 var data = [];
 for (var i = 0; i < $(p).length; i++) {
 var a = $(p)[i];
 if ($(a).attr("h") == "1") {
 data[i] = $(a).text();
 }
 }
 Clarity = "";
 for (var i = 0; i < data.length; i++) {
 if (data[i] != undefined) {
 Clarity += "'" + data[i] + "',";
 }
 }
 Clarity = Clarity.substring(0, Clarity.lastIndexOf(',')); //净度条件
 $("#reportTable").bootstrapTable('refresh');
 }

 function coChange(obj) { //改变颜色事件
 if ($(obj).css("background-color") == "rgb(255, 177, 112)") {
 $(obj).css("background-color", "white");
 $(obj).css("color", "black");
 } else {
 $(obj).css("background-color", "#FFB170");
 $(obj).css("color", "white");
 }
 }

动作方法是这样的 

/// <summary>
 /// 分页数据
 /// </summary>
 /// <param name="pageSize">页面大小</param>
 /// <param name="pageNumber">页码</param>
 /// <param name="CersNo"></param>
 /// <param name="StoneID"></param>
 /// <param name="sort">排序的列名</param>
 /// <param name="sortOrder">排序的命令方式</param>
 /// <returns></returns>
 /// pageSize,pageNumber请不要更改变量名(sort,sortOrder如需排序,请使用这两个参数,不可更改变量名)
 public ActionResult AjaxPage(string minSize, string maxSize, string minPrice, string maxPrice,
 string Shape, string Color, string Cut, string Clarity,
 int? pageSize, int? pageNumber, string sort, string sortOrder)
 { //自己写里面的,返回的是Json数据
 }

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 简单导航实现代码
Sep 11 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
Aug 15 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
Jul 13 Javascript
JS实现页面打印(整体、局部)
Aug 18 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
Sep 22 #Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 #Javascript
JavaScript面试题大全(推荐)
Sep 22 #Javascript
JavaScript 是什么意思
Sep 22 #Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 #Javascript
JavaScript与java语言有什么不同
Sep 22 #Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 #Javascript
You might like
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
深入理解PHP内核(二)之SAPI探究
2015/11/10 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python多线程编程(一):threading模块综述
2015/04/05 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
解决yum对python依赖版本问题
2019/07/05 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
python os.listdir()乱码解决方案
2021/01/31 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
优秀员工推荐材料
2014/12/20 职场文书
投标邀请书范本
2015/02/02 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
nginx.conf配置文件结构小结
2022/04/08 Servers