1. 程式人生 > >Bootstrap Table分頁例子

Bootstrap Table分頁例子


html

	   <div style="width:95%;float:left;" > -->
		   <table class="rl-page-table ui celled structured table span11" table-data-url="/lead/sale/summary/getStatListTable">
		    <thead>
		    <tr>
		      <th  data-field="id" data-formatter="xuhao"  width="10%">序號</th>
	          <th  data-field="salesman.name"  width="20%">銷售人員</th>
	          <th data-field="bonusAmount" data-sortable="true" width="20%">總提成(元)</th>
	          <th data-field="sellBonus" data-sortable="true"  width="10%">當月售車提成(元)</th>
	          <th data-field="monthBonus" data-sortable="true"  width="10%">繳租提獎(元)</th>
	          <th data-field="halfYearBonus" data-sortable="true"  width="10%">半年提獎(元)</th>
	          <th data-field="salesNumber" data-sortable="true"  width="10%">當月銷量(臺)</th>
	          <!-- <th data-field="id" data-formatter="down" id="downth">下載列表</th> -->
	          <th data-colspan="8" data-field="id" data-formatter="down"  width="10%">下載</th>
	<!-- 	        <th data-field="id" data-align="right" data-sortable="true">Item ID</th> -->
		    </tr>
		    </thead>
		</table>
   <link href="//cdn.bootcss.com/bootstrap-table/1.10.1/bootstrap-table.css" rel="stylesheet">
  	<script src="//cdn.bootcss.com/bootstrap-table/1.10.1/bootstrap-table.min.js"></script>
  	<script src="//cdn.bootcss.com/bootstrap-table/1.10.1/locale/bootstrap-table-zh-CN.min.js"></script>
  	
  	
  	<script src="http://echarts.baidu.com/echarts2/doc/example/timelineOption.js"></script>
  	
  	<script src="/static/stat/summary.js"></script>
    <script src="/static/stat/bootPaginator.js"></script>


js
/**
 * Pagination分頁
 * table 需要table-data-url='uri'
 * 
 * @param table id或calss
 * @param flag 重新整理表資料
 */

function getPaginationTable(table,flag) {
	
	$(table).bootstrapTable('removeAll');
	var uri=$(table).attr('table-data-url');
	if (flag) {// null undefinded "" NaN typeof
		$(table).bootstrapTable('refresh', queryParams);
		return;
	}

	$(table).bootstrapTable({
		method : 'get', // 這裡要設定為get,不知道為什麼 設定post獲取不了
		url : ctx + uri,
		cache : false,
		striped : true,
		silent : true,
		pagination : true,
		pageList : [ 5, 10, 20, 50, 100, 200 ],
		// contentType: "application/x-www-form-urlencoded",
		pageSize : 10,
		// pageNumber : 1,
		queryParamsType : 'limit',
		// search : true,
		sidePagination : 'server',// 設定為伺服器端分頁
		queryParams : queryParams
	// ,// 引數
	// showColumns : true,
	// showRefresh : true
	});
}

呼叫
function xuhao(r, v, i) {

	return i + 1;
}
function down(r, v, i) {
	if (i == 0) {
		return '下載';
	}
	return '';
}

//設定傳入引數
function queryParams(parma) {
	// 獲取查詢條件
	var mehtod = $("#_feeDay").val();
	var teamId = $("#_teme_selection").val();
	// 選擇本月和上月
	if (mehtod == "" || "undefined" == mehtod) {
		mehtod = $('input[name="radio1"]:checked ').val();
	}

	var dataParm = '';
	if (mehtod != "" && mehtod != null && mehtod != 'undefined') {
		dataParm += "mehtod=" + mehtod;
		parma = $.extend(parma, {
			mehtod : mehtod,
		});

	}

	if (teamId != "" && teamId != 'undefined' && teamId != null) {

		parma = $.extend(parma, {
			teamId : teamId,
		});

	}
	// parma.teamId = teamId;
	// return dataParm+parma;
	return parma;
}

//初始化表
	getPaginationTable(".rl-page-table",false);

後端程式碼簡單封裝
	/**
	 * 獲取列表
	 * 
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = { "getStatListTable" })
	public PaginatorResult  getStatListTable( HttpServletRequest request, HttpServletResponse response,Paginator paginator,
			SaleCommissionVo saleCommissionVo) {
		saleCommissionVo=execPaerm(saleCommissionVo);
		PaginatorResult pageResult = summaryService.getPaginatorList(paginator, saleCommissionVo);
		return pageResult;
	}

import org.apache.commons.lang.StringUtils;

/**
 * bootstarp Paginator分頁引數
 * <p>
 * order=asc&limit=10&offset=30
 * 
 * @author ruiliang
 * @date 2017/03/08
 */
public class Paginator {

	private String order;// 排序方式
	private int limit;// 限制取多少行
	private int offset;// 起始行,忽略前面行數
	private String sort;// 排序名稱
	private Object bean;

	public String getOrder() {
		return order;
	}

	public void setOrder(String order) {
		this.order = order;
	}

	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}

	public int getOffset() {
		return offset;
	}

	public void setOffset(int offset) {
		this.offset = offset;
	}

	public String getSort() {
		return sort;
	}

	public String getSortAppendOrderBy() {
		if (!StringUtils.isBlank(sort)) {
			if (!StringUtils.isBlank(order)) {
				StringBuffer sb = new StringBuffer();
				sb.append(sort);
				sb.append(" ");
				sb.append(order);
				sort = sb.toString();
			}
		}
		return sort;
	}

	public void setSort(String sort) {
		this.sort = sort;
	}

	public Object getBean() {
		return bean;
	}

	public void setBean(Object bean) {
		this.bean = bean;
	}

	// @Deprecated
	// public <T> Page<T> toPageJSTL(Page<T> page) {
	// if (page == null) {
	// page = new Page<T>();
	// }
	//
	// if (!StringUtils.isBlank(sort)) {
	// if (!StringUtils.isBlank(order)) {
	// sort = (sort + " " + order);
	// }
	// page.setOrderBy(sort);
	// }
	//
	// if (offset <= 0) {
	// offset = 1;
	// }
	// page.setPageNo(offset);
	// page.setPageSize(limit);
	// return page;
	// }

}




package com.ihavecar.hirecar.common.persistence;

/**
 * PaginatorResult 分頁返回結果
 * 
 * @author ruiliang
 *
 */
public class PaginatorResult {

	private Object rows;
	private long total;

	public Object getRows() {
		return rows;
	}

	public void setRows(Object rows) {
		this.rows = rows;
	}

	public long getTotal() {
		return total;
	}

	public void setTotal(long total) {
		this.total = total;
	}

}
mybatis 語句
	<!-- 搜尋條件判斷 -->
	<sql id="searchField">
		<where>
			a.del_flag = 0 
			<if test="bean.commissionDate != null and bean.commissionDate != ''">
				<![CDATA[
				AND a.commission_date >= DATE_ADD(CONVERT(#{bean.commissionDate}, DATE),interval -day(CONVERT(#{bean.commissionDate}, DATE))+1 day)
				AND a.commission_date < DATE_ADD(CONVERT(#{bean.commissionDate}, DATE)-day(CONVERT(#{bean.commissionDate}, DATE))+1,interval 1 month)
				]]>
			</if>
			<if test="bean.teamId != null and bean.teamId>0">
				AND u.office_id =#{bean.teamId}
			</if>
		</where>
	</sql>
	
	<select id="findPaginatorSummary" resultType="SaleCommissionSummary" parameterType="com.ihavecar.hirecar.common.persistence.Paginator">
		SELECT 
			<include refid="saleCommissionSummaryColumns"/>
		FROM sale_commission_summary a
		<include refid="saleCommissionSummaryJoins"/>
		<include refid="searchField" />
		<choose>
			<when test="bean !=null and sort != null and sort != ''">
				ORDER BY ${sort}  
<!-- 				<if test="order != null and order != ''"> -->
<!-- 				   #{order} -->
<!-- 				</if> -->
		
			</when>
			<otherwise>
				ORDER BY a.update_date DESC
			</otherwise>
		</choose>
		LIMIT
		#{offset},#{limit}
	</select>
	
	
	<select id="getCount" resultType="long" parameterType="com.ihavecar.hirecar.common.persistence.Paginator"	>
		SELECT 
			count(*)
		FROM sale_commission_summary a
		<include refid="saleCommissionSummaryJoins"/>
		<include refid="searchField" />
	</select>

---------------------補充說明程式碼,spirng dao  postgresql 處理方式 ,我回頭第二次用的時候,也有點看不懂的原因-----------

/**
	 * 分頁請求日誌列表
	 * 
	 * @param paginator
	 * @param vo
	 * @return
	 */
	@Override
	public PaginatorResult getPaginatorList(Paginator paginator, ChartsQueryVo vo) {
		PaginatorResult result = new PaginatorResult();
		String table = "x8_crash_log";
		if (StringUtils.isNotBlank(vo.getGameMark())) {
			table = vo.getGameMark() + "_crash_log";
		}
		// 獲取總記錄數
		result.setTotal(getLogTotal(vo));
		// 引數
		List<Object> paramArray = new LinkedList<Object>();
		// 條件組裝
		StringBuffer sqlWhere = getSQLString(vo);// 完成
		StringBuffer sql = new StringBuffer(512);
		sql.append("SELECT id,flag fla,dt,log FROM  ");
		sql.append(table);
		sql.append(sqlWhere);
		// 排序
		if (StringUtils.isNotBlank(paginator.getSort())) {
			if ("logType".equals(paginator.getSort())) {
				sql.append(" order by ");
				sql.append(" flag ");
				sql.append(paginator.getOrder());
			}
			if ("time".equals(paginator.getSort())) {
				sql.append(" order by ");
				sql.append(" dt ");
				sql.append(paginator.getOrder());
			}
		} else {
			sql.append(" order by dt desc");
		}
		// 分頁
		sql.append(" LIMIT ");
		sql.append(paginator.getLimit());
		sql.append(" offset ");
		sql.append(paginator.getOffset());
		log.info("sql:>>>\n{}\n param={}", sql.toString(), paramArray.toArray());
		List<CrashLog> data = crashLogDao.selectObjectList(sql.toString(), rowMapper_log);
		// 處理長文字的
		if (data != null && data.size() > 0) {
			for (CrashLog log : data) {
				if (StringUtils.isNotBlank(log.getLog()) && log.getLog().length() > 200) {
					String log_text = log.getLog().substring(0, 200);
					String href = "  <a href='business/device/device_crash/log_detail".intern();
					href += "?id=";
					href += log.getId();
					href += "' target='blank' style='color: blue; cursor: pointer;'>詳情</a>".intern();
					log.setLog(log_text + href);
				}
			}
		}
		result.setRows(data);
		return result;
	}

	/**
	 * 獲取總記錄數
	 * 
	 * @param vo
	 * @return
	 */
	public int getLogTotal(ChartsQueryVo vo) {
		String table = "x8_crash_log";
		if (StringUtils.isNotBlank(vo.getGameMark())) {
			table = vo.getGameMark() + "_crash_log";
		}
		// 引數
		List<Object> paramArray = new LinkedList<Object>();
		// 條件組裝
		StringBuffer sqlWhere = getSQLString(vo);// 完成
		StringBuffer sql = new StringBuffer(512);
		sql.append("SELECT count(*) FROM  ");
		sql.append(table);
		sql.append(sqlWhere);
		log.info("sql:>>>\n{}\n param={}", sql.toString(), paramArray.toArray());
		int total = crashLogDao.selectForRows(sql.toString());
		return total;
	}

	private RowMapper<CrashLog> rowMapper_log = new RowMapper<CrashLog>() {
		@Override
		public CrashLog mapRow(ResultSet rs, int rowNum) throws SQLException {
			CrashLog bean = new CrashLog();
			bean.setId(rs.getLong(("id")));
			bean.setTime(rs.getString("dt"));
			bean.setLogType(rs.getString("fla"));
			bean.setLog(rs.getString("log"));
			return bean;
		}
	};



private StringBuffer getSQLString(ChartsQueryVo vo) {
		// 條件語句
		StringBuffer sbWhere = new StringBuffer();
		if (vo != null) {
			// 伺服器
			// if (vo.getServer() != null && vo.getServer() > 0) {
			// sbWhere.append(" and server_id=");
			// sbWhere.append(vo.getServer());
			// }

			// 日期
			if (StringUtils.isNotBlank(vo.getDt1())) {// 如果不為空,
				sbWhere.append(" and dt>='");
				sbWhere.append(vo.getDt1());
				sbWhere.append("'");
			}

			if (StringUtils.isNotBlank(vo.getDt2())) {// 如果不為空,
				sbWhere.append(" and dt<='");
				sbWhere.append(vo.getDt2());
				sbWhere.append(" 23:59:59'");
			}
			// 平臺
			if (StringUtils.isNotBlank(vo.getOs()) && !"-1".equals(vo.getOs())) {
				sbWhere.append(" and os='");
				sbWhere.append(vo.getOs().toLowerCase());
				sbWhere.append("'");
			}

			if (StringUtils.isNotBlank(vo.getType()) && !"-1".equals(vo.getType())) {
				sbWhere.append(" and app_v='");
				sbWhere.append(vo.getType());
				sbWhere.append("'");
			}
			// 1 JAVA 奔潰日誌、2 C奔潰日誌、3 Lua錯誤日誌
			if (vo.getCommQueryInt() > 0) {
				sbWhere.append(" and flag=");
				sbWhere.append(vo.getCommQueryInt());
			}

		}
		if (StringUtils.isNotBlank(sbWhere.toString())) {
			// 刪除 and 前4位
			sbWhere.delete(0, 5);
			sbWhere.insert(0, " where ");
		}
		// 轉陣列
		return sbWhere;
	}


相關推薦

bootstrap table 例子

頁面js: var $table=$("#table4"); function queryParamsForHandover(params){var nparams={"pagesize":5,"pageno": (params.offset/5)+1};return nparams; } /*

Bootstrap Table例子

html <div style="width:95%;float:left;" > --> <table class="rl-page-table ui celled structured table span11" table

bootstrap-table數據前臺不顯示

ams class 記錄 pagelist str scrip ole 等待 loop 問題:後臺返回數據{"total":52,"rows":[{"ztname":"2007年新會計準則科目(李相)","ztid":"003bf550-afa5-47b2-aa43-2e1

bootstrap table 只顯示不顯示總數等數據

分頁 總頁數 ati pull bsp hal AI pla blog 搜了下沒找到解決方案,就用CSS來解決了。 把paginationDetailHAlign:"right",使pagination-detail的class為.pull-right.paginatio

基於bootstrap table資料及行內編輯和匯出資料(一)

第一步,匯入相應的css和js檔案      <link href="~/Content/bootstrap.min.css" rel="stylesheet" />     <!-----swich按鈕需要的css檔案-->     <

Bootstrap Table重新整理,使formatter的內容無法儲存解決方法

由於專案需要,需要運用Bootstrap Table在最後一列渲染一個input框填寫資訊! 效果是每列填寫後,點選分頁,或搜尋時使資料保留,但是由於Bootstrap Table每次進行搜尋或者分頁會重新formatter, 導致資料每次都會消失,我想到的解決方法,是通過每次文字框輸

bootstrap-table跳到指定頁面下拉框

一、前言      bootstrap-table是一款表格外掛,他能快速的將資料用表格的形式展示,還包括了搜尋、排序、分頁等功能。最近在一個專案中開始使用它,發現其中分頁沒有直接跳轉指定頁面的功能,

bootstrap-table小結

1.bootstrap-table使用後臺分頁時,請求方式為post的時候,必須新增contentType: “application/x-www-form-urlencoded”,引數,get請求時可以不需要; 2.注意controller介面的引數要與之對

Bootstrap-table+彙總統計

特別說明 使用Bootstrap-table分頁和彙總統計! 我是自己模擬的JSON資料,用data接受,如果是從後臺url介面拿的的資料請用url接受 設定bootstrapTable的js中 showFooter:true,這樣才能顯示錶格底部彙總欄 在colum

mybatis pagehelp Springmvc+Mybatis+pagehelper5.1.2+bootstrap table查詢

1.修改Mybatis配置檔案 <!-- MyBatis配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

bootstrap-table ,超細緻!新手寫的個人的看法和理解。

我最近也是剛剛開始寫部落格,目的就是記錄給自己看的。 bootstrap-table 分頁 無意是挺煩的。 網上也有,但是不是那麼簡單。其實我就是一個新人。我也看不懂他們寫的。 <table data-toggle="table" data-mobile-respon

bootstrap-table模板和獲取表中的ID

1.dao層    MyBatis對映    mapper.xml中        <select id="getTcdt" parameterType="com.ls.entity.Mydata" resultMap="BaseResultMap">     

Angularjs+Bootstrap實現指令

效果圖 博客 要求 config 大小 cti 說明 cal 自己   本插件的開發目的主要給前端同學使用,本人是專註於後臺開發的,對css樣式不熟悉,但逼於前端要求做一個共公組件方便日常開發,所以這個插件在樣式上可能不適合大部分人,喜歡的拿走吧,不喜歡的也請別噴。 一

bootstrap-paginator示例 源碼 MVC

jquer inittab 加載 rbo 創建 etime tps name item 準備 1.數據:bootstrap包(含分頁插件bootstrap-paginator.js) 2.技術方案:ajax動態加載分頁、部分視圖、BLL取數 代碼 模板頁 @{

ssm整合bootstrap

java ssm pageHelper 分頁 bootstrap 分頁是我們經常會碰到的需求之一,今天我們就使用企業中很常用的mybatis分頁插件pageHelper來給大家做一個ssm整合bootstrap分頁的案例先看效果圖:一:建立數據庫student:學生表student年級表g

Bootstrap table全選

AR Nid size ret 裏的 true cti reat return 此代碼是針對於bootstrap table中分頁的跨頁全選。   以下是整個bootstrap的定義    <script type="text/javascript"

Bootstrap 路徑標簽和徽章組件

bootstrap一.路徑組件路徑組件也叫做面包屑導航。//面包屑導航<ol class="breadcrumb"><li><a href="#">首頁</a></li><li><a href

Laravel 5+ Bootstrap 4

最近的project裡,發現需要修改Laravel自帶的Bootstrap 4分頁器。要使用自帶的BS4分頁,我們需要將分頁器模板匯出到resources/views/vendor資料夾下: $ php artisan vendor:publish --tag=laravel-pag

關於layui table的實現

這是我做的一個demo 使用layui table 分頁我饒了不少圈子,主要的鍋只能怪自己太懶 先上layui官方文件:  剛開始我忽略了這一句話,我以為layui已經寫好了分頁,只需要我傳入引數就行[手動滑稽] ,所以希望看到這篇帖子的像我一樣的小白,請打消這

django 例子

django 分頁例子 安裝 python3.6 -m pip install django-pure-pagination==0.3.0 設定 settings.py INSTALLED_APPS = [ 'pure_pagination', ] PAGINATION_SETTINGS =