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
  • 相关阅读:
    Python异常捕捉try except else finally有return时执行顺序探究
    为什么在Python的线程内调用sys.exit()时不退出?
    Hadoop集群上用户使用crontab时候失败
    记一次--------spark 读 mysql 报错no suitable driver
    通用权限sql设计
    union all 对结果进行分类展示
    雷达图
    常用语句
    oracle中计算两个日期的相差天数、月数、年数、小时数、分钟数、秒数等
    icell设计器发送邮件不成功
  • 原文地址:https://www.cnblogs.com/ChrisLee2011/p/4290541.html
Copyright © 2011-2022 走看看