創建bootstrap的表格(含日期控件)

創建bootstrap的表格(含日期控件)

引入準備文件

  • bootstrap/css/bootstrap.min.css
  • bootstrap-datetimepicker/css/bootstrap-datepicker.css
  • jQuery/jquery-1.11.3.min.js
  • bootstrap-datetimepicker/js/bootstrap-datepicker.min.js
  • bootstrap-datetimepicker/locales/bootstrap-datepicker.zh-CN.min.js
  • bootstrap/js/bootstrap.min.js
  • bootstrap/snippet/bootloading.js
  • bootstrap-table/bootstrap-table.min.js
  • bootstrap-table/bootstrap-table-zh-CN.min.js

html代碼

<div class="myconsult">
        <form  id="searchForm" class="form-inline clearfix" role="form">
            <div class="form-group item">
                <label for="name">&nbsp;&nbsp;預約對象:</label> 
                <input type="text" class="form-control" id="searchName" placeholder="請輸入預約對象">
            </div>
            <div class="form-group">
                <label for="">&nbsp;&nbsp;預約時間:</label> 
                <div class="input-group input-medium date-picker input-daterange" data-date-format="yyyy-mm-dd">
                    <input id="startTime" name="startTime" class="form-control" style="font-size: 13px; width:140px;" type="text" value="" placeholder="開始時間"> 
                    <span class="input-group-addon"></span> 
                    <input id="endTime" name="endTime" class="form-control" style="font-size: 13px; width:140px;" type="text" value="" placeholder="結束時間"> 
                </div>
            </div>
            <div class="form-group">
                <label for="">&nbsp;&nbsp;狀態</label> 
                <select class="form-control" id="searchStatus">
                    <option value="">全部</option>
                    <option value="0">預約成功</option>
                    <option value="1">預約失敗</option>
                </select>
            </div>
            <div class="form-group">
                <button id="searchBtn" type="button" class="btn btn-primary">查詢</button>
            </div>
            <div class="form-group">
                <button id="resetBtn" type="button" class="btn btn-primary">重置</button>
            </div>
        </form>
        <div class="my_folk">
            <table id="tb" border="0" cellspacing="0" cellpadding="0" class="table flok_table">
                <thead>
                    <tr>
                        <th>序號</th>
                        <th>預約對象</th>
                        <th>預約時間</th>
                        <th>預約地點</th>
                        <th>預約內容</th>
                        <th>狀態</th>
                    </tr>
                </thead>
            </table>
        </div>
    </div>

js代碼

//加載日期控件
var option = {
language : "zh-CN",
format : 'yyyy-mm-dd',
autoclose : true,// 選中之後自動隱藏日期選擇框
clearBtn : true// 清除按鈕
}
$('#startTime').datepicker(option);
$('#endTime').datepicker(option);

//加載表格,由於bootstrap的刷新也在這,所以先銷燬一下表格在加載表示刷新
$("#tb").bootstrapTable('destroy');
var portalUserInfo=new Object();
if (window.sessionStorage) {
    //從緩存獲取用戶信息
    portalUserInfo =JSON.parse(window.sessionStorage.getItem('portalUser'));
}
var userid=portalUserInfo.userId;
var inputSearchName=document.getElementById('searchName');
var inputSearchStatus=document.getElementById('searchStatus');
var inputEndTime=document.getElementById('endTime');
var inputStartTime=document.getElementById('startTime');
var name="";
var status="";
var endTime="";
var startTime="";

if(inputSearchName==null||inputSearchName==""||inputSearchName==undefined){
    name="";
}else{
    name=document.getElementById('searchName').value;
}
if(inputSearchStatus==null||inputSearchStatus==""||inputSearchStatus==undefined){
    status="";
}else{
    status=document.getElementById('searchStatus').value;
}
if(inputEndTime==null||inputEndTime==""||inputEndTime==undefined){
    endTime="";
}else{
    endTime=document.getElementById('endTime').value;
}
if(inputStartTime==null||inputStartTime==""||inputStartTime==undefined){
    startTime="";
}else{
    startTime=document.getElementById('startTime').value;
}
//正式加載表格
$("#tb").bootstrapTable({
toggle: "tb",
url:  "../../jhtx/getRemindOrders.do",
pagination: "true",
pageSize: 10,
pageList: [10,20],
showHeader :true,
striped :true,//是否顯示行間隔色
cache: false,  //是否使用緩存,默認爲true,所以一般情況下需要設置一下這個屬性(*)
sidePagination: "server",//表示後臺分頁(分頁方式:client客戶端分頁,server服務端分頁(*))
        paginationPreText: "上一頁",
        paginationNextText: "下一頁",
        queryParamsType : "limit",
        //參數
        queryParams: function (params) {
            return {
            limit:params.limit,
            offset:params.offset,
            startTime:startTime,
            endTime:endTime,
            userid:userid,
            name:name,
            status:status
            };
        },
columns: [{
field: 'Number',
title: '序號',
width: '30',
align: 'center',
formatter: function (value, row, index) {
return index+1;
}
},{
field: 'name',
title: '預約對象',
width: '50',
align: 'center'
},{
field: 'serviceTime',
title: '預約時間',
width: '60',
align: 'center'
},{
field: 'orgName',
title: '預約地點',
width: '60',
align: 'center'
},{
field: 'serviceTypeName',
title: '預約內容',
width: '60',
align: 'center'
},{
field: 'orderStatus',
title: '狀態',
width: '30',
align: 'center',
formatter:function(value, row, index){
var status = "未知狀態";
if (value == "0") {
status="預約成功";
}else if(value=="1"){
status="預約失敗";
}else{
status="未知狀態";
}
return status;  
}
}]
}); 

contorller代碼

這裏的重點就在它獲取的參數limit,offset是已經計算好的,而不是想esayUI只獲取到第幾頁(page),頁的數據量(pageSize);
返回的數據倒是跟esayUI相同 :total–符合條件的總數據量,rows:本次查到的數據;

@RequestMapping ("/getRemindOrders")
@ResponseBody
public String getRemindOrders (HttpServletResponse response, HttpServletRequest request{
        // 參數容器
        Map <String, Object> paraMap = new HashMap <String, Object> ();
        // 返回數據的容器
        Map <String, Object> resultMap = new HashMap <String, Object> ();
        UserFamily userFamily = new UserFamily ();
        RemindOrder remindOrder = new RemindOrder ();
        Long userid = 0L;
        // 獲得用戶id
        String useridStr = request.getParameter ("userid");
        if (!StringUtils.isBlank (useridStr))
        {
            userid = Long.parseLong (useridStr);
        }
        // 模擬數據,在獲取分頁參數失敗的情況下代替
        int limit = 10;
        int offset = 0;
        try
        {
            if (!StringUtils.isBlank (request.getParameter ("offset")))
            {
                // 開始
                offset = Integer.parseInt (request.getParameter ("offset")) + 1;
            }
            if (!StringUtils.isBlank (request.getParameter ("limit")))
            {
                // 結束
                limit = offset + Integer.parseInt (request.getParameter ("limit")) - 1;
            }
            String name = request.getParameter ("name");
            String status = request.getParameter ("status");
            // 搜索開始時間
            String start = request.getParameter ("startTime");
            // 搜索結束時間
            String end = request.getParameter ("endTime");
            // 查詢我的家人
            if (StringUtils.isNotEmpty (useridStr))
            {
                userFamily.setUserId (userid);
                // 查詢認證過的家屬相關信息
                userFamily.setIsRealAuth ("1");
            }
            UserDto user = (UserDto) request.getSession ().getAttribute (LoginConstants.LOGIN_USER);
            String identification = user.getPortalUserInfo ().getIdentification ();

            // 獲取家人的相關信息
            List <UserFamily> userFamilyList = userFamilyService.queryUserFimalyByPage (userFamily, 0, -1);
            // 添加自己
            userFamily.setIdentification (identification);
            userFamilyList.add (userFamily);
            // 設置查詢參數
            remindOrder.setName (name != null ? name : "");
            remindOrder.setOrderStatus (status != null ? status : "");
            remindOrder.setStartTime (start != null ? start : "");
            remindOrder.setEndTime (end != null ? end : "");
            paraMap.put ("startNumber", offset);
            paraMap.put ("endNumber", limit);
            paraMap.put ("allFamily", userFamilyList);
            paraMap.put ("remindOrder", remindOrder);
            List <RemindOrder> list = null;
            int count = 0;
            count = remindOrderService.findRemindCountOfFamily (paraMap);
            if (count != 0)
            {
                list = remindOrderService.findRemindByConditionOfFamilyWithPage (paraMap);
            }
            resultMap.put ("rows", list);
            resultMap.put ("total", count);
        }
        catch (Exception e)
        {
            _logger.error ("查詢數據失敗!", e);
            resultMap.put ("rows", null);
            resultMap.put ("total", 0);
        }
        JsonConfig config = new JsonConfig ();
        config.registerJsonValueProcessor (Date.class, new JsonDateValueProcessor ("yyyy-MM-dd HH:mm:ss"));
        return JSONObject.fromObject (resultMap, config).toString ();
    }

效果圖

這裏說一下:如果數據根本不需要第二頁時,這裏的分頁器是不顯示的.
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章