zoukankan      html  css  js  c++  java
  • 基于BootstrapTable的简单应用

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

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

    @{  
        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: '序号',  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>  
    控制器代码:
    
    [csharp] view plain copy
    /// <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/

    转自:https://blog.csdn.net/pan_junbiao/article/details/72955066

  • 相关阅读:
    MVC中的统一验证机制~终极了(自己的改良版)
    基础才是重中之重~类是怎么执行的
    IE和火狐中模仿Click事件及提交到新窗口总结
    基础才是重中之重~你是否真正理解static对象
    VS远程调试(在IIS中打开网站,进入VS中的断点)
    iOS开发复选框类库SSCheckBoxView
    通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题
    读《微软研发:制胜策略》总结(1)
    hdu1081To The Max
    Red hat 5.4 安装Eclipse 出现的问题
  • 原文地址:https://www.cnblogs.com/zzwlong/p/8760768.html
Copyright © 2011-2022 走看看