第一次动手实现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 相关文章推荐
Javascript的IE和Firefox兼容性汇编
Jul 01 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
浅谈vuex之mutation和action的基本使用
Aug 29 Javascript
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 Javascript
JS call()及apply()方法使用实例汇总
Jul 11 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 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生成月历代码
2007/06/14 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
php生成随机数的三种方法
2014/09/10 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
javascript web对话框与弹出窗口
2009/02/22 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
梳理一下vue中的生命周期
2020/12/30 Vue.js
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
建筑自我鉴定
2013/10/19 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
群众路线专项整治方案
2014/10/27 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
在职证明范本
2015/06/15 职场文书