基于BootstrapTable的简单应用

Bootstrap Table基于Bootstrap的jQuery表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。

本文将以一个基于BootstrapTable控件的图书列表查询功能为实例(如图1)。注意本实例使用了ASP.NET MVC。

图1

页面代码:

@{
    Layout = null;
    ViewBag.Title = "基于BootstrapTable的简单应用";
}

<!--添加相关样式引用-->
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/bootstrap-table.min.css" rel="stylesheet" />

<div class="container body-content" style="padding-top:20px;">
    <div class="panel panel-default">
        <div class="panel-heading">查询条件</div>
        <div class="panel-body">
            <form class="form-inline">
                <div class="row">
                    <div class="col-sm-4">
                        <label class="control-label">图书名称:</label>
                        <input id="txtTitle" type="text" class="form-control">
                    </div>
                    <div class="col-sm-4">
                        <label class="control-label">图书作者:</label>
                        <input id="txtAuthor" type="text" class="form-control">
                    </div>
                    <div class="col-sm-4">
                        <label class="control-label">出版社:</label>
                        <input id="txtPublish" type="text" class="form-control">
                    </div>
                </div>

                <div class="row text-right" style="margin-top:20px;">
                    <div class="col-sm-12">
                        <input class="btn btn-primary" type="button" value="查询" onclick="SearchData()">
                        <input class="btn btn-default" type="button" value="批量删除" onclick="BtchDeleteBook()">
                    </div>
                </div>
            </form>
        </div>
    </div>
    
    <table id="table"></table>
</div>

<!--添加相关脚本引用-->
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="~/Scripts/bootstrap-table.min.js"></script>
<script src="~/Scripts/bootstrap-table-zh-CN.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#table').bootstrapTable({
            url: '@Url.Action("SearchBookInfo", "Home")',
            queryParamsType: '',              //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
            queryParams: queryParams,
            method: "post",
            pagination: true,
            pageNumber: 1,
            pageSize: 2,
            pageList: [10, 20, 50, 100],
            sidePagination: "server",         //分页方式:client客户端分页,server服务端分页(*)
            striped: true,                    //是否显示行间隔色
            cache: false,
            uniqueId: "BookId",               //每一行的唯一标识,一般为主键列
            height:300,
            paginationPreText: "上一页",
            paginationNextText: "下一页",
            columns: [
                { checkbox: true },
                { title: '序号', width: 50, align: "center", formatter: function (value, row, index) { return index + 1; } },
                { title: '图书名称', field: 'Title' },
                { title: '图书作者', field: 'Author' },
                { title: '销售价格', field: 'Price' },
                { title: '出版社', field: 'Publish' },
                {
                    title: '出版时间', field: 'PublishDate', formatter: function (value, row, index) {
                        if (value == null)
                            return "";
                        else {
                            var pa = /.*\((.*)\)/;
                            var unixtime = value.match(pa)[1].substring(0, 10);
                            return getShortTime(unixtime);
                        }
                    }
                },
                {
                    title: '操作', field: 'BookId', formatter: function (value, row, index) {
                        var html = '<a href="javascript:EditBook('+ value + ')">编辑</a>';
                        html += ' <a href="javascript:DeleteBook(' + value + ')">删除</a>';
                        return html;
                    }
                }
            ]
        });
    });

    //查询条件
    function queryParams(params) {
        return {
            pageSize: params.pageSize,
            pageIndex: params.pageNumber,
            Title: $.trim($("#txtTitle").val()),
            Author: $.trim($("#txtAuthor").val()),
            Publish: $.trim($("#txtPublish").val()),
        };
    }

    //查询事件
    function SearchData() {
        $('#table').bootstrapTable('refresh', { pageNumber: 1 });
    }

    //编辑操作
    function EditBook(bookId){
        alert("编辑操作,图书ID:" + bookId);
    }

    //删除操作
    function DeleteBook(bookId) {
        if (confirm("确定删除图书ID:" + bookId + "吗?"))
        {
            alert("执行删除操作");
        }
    }

    //批量删除
    function BtchDeleteBook(){
        var opts = $('#table').bootstrapTable('getSelections');
        if (opts == "") {
            alert("请选择要删除的数据");
        }
        else {
            var idArray = [];
            for (var i = 0; i < opts.length; i++) {
                idArray.push(opts[i].BookId);
            }
            if (confirm("确定删除图书ID:" + idArray + "吗?")) {
                alert("执行删除操作");
            }
        }
    }

    function getTime(/** timestamp=0 **/) {
        var ts = arguments[0] || 0;
        var t, y, m, d, h, i, s;
        t = ts ? new Date(ts * 1000) : new Date();
        y = t.getFullYear();
        m = t.getMonth() + 1;
        d = t.getDate();
        h = t.getHours();
        i = t.getMinutes();
        s = t.getSeconds();
        // 可根据需要在这里定义时间格式
        return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + (h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
    }

    function getShortTime(/** timestamp=0 **/) {
        var ts = arguments[0] || 0;
        var t, y, m, d, h, i, s;
        t = ts ? new Date(ts * 1000) : new Date();
        y = t.getFullYear();
        m = t.getMonth() + 1;
        d = t.getDate();
        // 可根据需要在这里定义时间格式
        return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d);
    }

</script>

控制器代码:

/// <summary>
/// 查询图书信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public JsonResult SearchBookInfo(BookInfo param, int pageSize, int pageIndex)
{
    //获取图书列表
    List<BookInfo> bookList = GetBookList();

    //根据条件筛选数据
    if (!String.IsNullOrEmpty(param.Title))
    {
        bookList = bookList.Where(a => a.Title.Contains(param.Title)).ToList();
    }
    if (!String.IsNullOrEmpty(param.Author))
    {
        bookList = bookList.Where(a => a.Author.Contains(param.Author)).ToList();
    }
    if (!String.IsNullOrEmpty(param.Publish))
    {
        bookList = bookList.Where(a => a.Publish.Contains(param.Publish)).ToList();
    }

    //BootstrapTable的返回结果
    BootstrapTableResult<BookInfo> result = new BootstrapTableResult<BookInfo>();
    result.total = bookList.Count;
    result.rows = bookList;
    return Json(result);
}

/// <summary>    
/// 获取图书列表    
/// </summary>    
/// <returns></returns>    
public List<BookInfo> GetBookList()
{
    List<BookInfo> bookList = new List<BookInfo>();
    BookInfo book1 = new BookInfo()
    {
        BookId = 8,
        Title = "ASP.NET MVC 5高级编程",
        Author = "加洛韦",
        Publish = "清华大学出版社",
        PublishDate = new DateTime(2017, 08, 15),
        Price = 29.99
    };
    bookList.Add(book1);
    BookInfo book2 = new BookInfo()
    {
        BookId = 9,
        Title = "Java从入门到精通",
        Author = "明日科技",
        Publish = "清华大学出版社",
        PublishDate = new DateTime(2015, 09, 28),
        Price = 38.55
    };
    bookList.Add(book2);
    BookInfo book3 = new BookInfo()
    {
        BookId = 10,
        Title = "Oracle从入门到精通",
        Author = "秦靖",
        Publish = "机械工业出版社",
        PublishDate = new DateTime(2014, 10, 08),
        Price = 38.55
    };
    bookList.Add(book3);
    return bookList;
}

其他代码:

/// <summary>    
/// 图书信息实体类    
/// </summary>    
public class BookInfo
{
    public int BookId { set; get; }             //图书ID    
    public string Title { set; get; }           //图书名称    
    public string Author { set; get; }          //图书作者  
    public string Publish { set; get; }         //出版社
    public DateTime PublishDate { set; get; }   //出版时间    
    public Double Price { set; get; }           //销售价格    
}

 

/// <summary>
/// BootstrapTable返回结果类
/// </summary>
public class BootstrapTableResult<T>
{
    public int total { get; set; }      //总记录数
    public List<T> rows { get; set; }   //数据列表
}

Bootstrap Table资料网站:http://bootstrap-table.wenzhixin.net.cn/zh-cn/
 

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值