zoukankan      html  css  js  c++  java
  • Bootstrap表格添加搜索栏

    在学习了表格的分页后,本文尝试在表格顶部加入搜索栏,用来筛选表格的数据,先看一下效果:

    未进行搜索时,有394条记录:

    在输入乘车码“1”和订单号“20150120”后,只有28条记录:

    此处使用了两个筛选条件:乘车码和订单号进行了模糊查询,从而大大减少了表格的记录数,以达到搜索的目的。

    HTML页面代码如下:

    <div id="toolbar">
        <div class="my-container">
            <label class="myLabel-content">乘车码:</label>
            <div class="myText-content">
                <input id="busNo" type="text" class="form-control" placeholder="输入乘车码">
            </div>
        </div>
        <div class="my-container">
            <label class="myLabel-content">订单号:</label>
            <div class="myText-content">
                <input id="orderId" type="text" class="form-control" placeholder="输入订单号">
            </div>
        </div>
        <div class="myBtn-content">
            <button id="search" type="button" class="btn btn-primary">搜索</button>
            <button id="reset" type="button" class="btn btn-default">重置</button>
        </div>
    </div>
    <table id="testTable" data-toggle="table" data-height="530"
           data-striped="true" data-classes="table table-hover" data-toolbar="#toolbar"
           data-side-pagination="server" data-pagination="true" data-page-list="[10,20,50,100]">
        <thead>
            <tr>
                <th class="col-md-3" data-field="BusNo" data-align="center">乘车码</th>
                <th class="col-md-5" data-field="OrderId" data-align="center">订单号</th>
                <th class="col-md-4" data-field="OrderDate" data-align="center" data-formatter="FormatDateTime">订单日期</th>
            </tr>
        </thead>
    </table>
    View Code

    可以注意到:在table中并没有URL,因为在查询的过程中参数可以是变化的,会在JavaScript中对URL做动态的绑定。JavaScript代码如下:

    $(function () {
                $('#testTable').bootstrapTable('refresh', { url: '/Home/GetPaginationData2' });
                $('#search').click(function () {
                    var busNo = $('#busNo').val();
                    var orderId = $('#orderId').val();
                    $('#testTable').bootstrapTable('refresh', { url: '/Home/GetPaginationData2?orderId=' + orderId + '&busNo=' +busNo });
                });
                $('#reset').click(function() {
                    $('#busNo').val('');
                    $('#orderId').val('');
                    $('#testTable').bootstrapTable('refresh', { url: '/Home/GetPaginationData2' });
                });
            });
    View Code

    其中三个函数对表格的URL进行了设定:

      1. 初始化页面时;

      2. 点击“搜索”按钮,对URL添加了两个参数:“orderId”和“busNo”,稍后在后台代码中会对这两个参数进行处理;

      3. 点击“重置”按钮,将清空查询条件,重新查询表格数据。

    后台代码如下:

    public JsonResult GetPaginationData2(string orderId, string busNo)
            {
                var offset = Request.Params["offset"] == null ? 0 : int.Parse(Request.Params["offset"]);
                var limit = Request.Params["limit"] == null ? 10 : int.Parse(Request.Params["limit"]);
    
                using (var context = new TestEntities())
                {
                    int count;
                    var q = (from a in context.Tickets
                        join b in context.Order on a.OrderId equals b.Id
                        select new
                        {
                            BusNo = a.BusNumber,
                            OrderId = b.Id,
                            OrderDate = b.OrderDateTime,
                        }).Where(
                            t => (string.IsNullOrEmpty(orderId) || t.OrderId.Contains(orderId)) &&
                                (string.IsNullOrEmpty(busNo) || t.BusNo.Contains(busNo)))
                        .Distinct()
                        .Pagination(offset, limit, out count);
                    var data = q.ToList();
                    return Json(new {rows = data, total = count}, JsonRequestBehavior.AllowGet);
                }
            }
    View Code

    下面是程序中会引用的CSS样式,供参考:

    .my-container {
        float: left;
        display: inline-block;
        margin-right:30px;
    }
    
    .myLabel-content ,.myText-content,.myBtn-content{
        float: left;
        display: inline-block;
        margin-left: 10px;
    }
    .myLabel-content,.myText-content input[type='text'],.myBtn-content .btn {
        height: 30px;
        font-size: 12px;
    }
    .myBtn-content .btn {
        margin-bottom: 10px;
    }
    View Code
  • 相关阅读:
    2.16 C++类与new和delete操作符
    2.15 C++常量指针this
    2.14 C++析构函数
    2.13 C++拷贝构造函数
    2.12 C++ explicit关键字详解
    2.11 C++转型构造函数
    2.10 C++利用构造函数限制对象的创建
    2.9 C++使用默认参数的构造函数
    2.8 C++参数初始化表
    linux 查看进程启动路径
  • 原文地址:https://www.cnblogs.com/ChrisLee2011/p/4290541.html
Copyright © 2011-2022 走看看