Bootstrap Table 使用教程进阶篇 之 服务器端导出选中数据

  • A+
所属分类:Bootstrap Table

Bootstrap Table 使用教程进阶篇 之 服务器端导出选中数据

Html

  1. <div class="fixed-table-toolbar">  
  2.     <div class="columns columns-right btn-group pull-right">  
  3.         <form id="Ms" method="post" action="/Index/MSExcel">  
  4.             <button class="btn btn-default btn-outline" type="submit"  onclick="Excel()">导出</button>  
  5.             <input type="text" id="T_ID" name="T_ID"/>  
  6.         </form>  
  7.     </div>  
  8.     <div class="pull-right search">  
  9.         <input id="Query" class="form-control input-outline" placeholder="搜索" type="text">  
  10.     </div>  
  11. </div>  
  12. <table id="Table"></table>  

JavaScript

  1. var search = '';  
  2. $('#Query').bind('keydown', function (e) {  
  3.     if (e.keyCode == "13") {  
  4.         search = $('#Query').val();  
  5.         $('#Table').bootstrapTable('refresh', { silent: true, url: 'JsonTable', query: { searchText: search } });  
  6.     }  
  7. });  
  8. $('#Table').bootstrapTable({  
  9.     toolbar: '#toolbar',//一个jQuery 选择器,指明自定义的toolbar  
  10.     toolbarAlign: 'right',  
  11.     minimumCountColumns: '2',//当列数小于此值时,将隐藏内容列下拉框。  
  12.     pagination: true,//设置为 true 会在表格底部显示分页条  
  13.     idField: 'ID',//指定主键列  
  14.     pageList: '[10, 25, 50, 100, ALL]',//如果设置了分页,设置可供选择的页面数据条数。设置为All 则显示所有记录。  
  15.     queryParams: queryParam,//  
  16.     sidePagination: 'server',//设置在哪里进行分页,可选值为 'client' 或者 'server'。设置 'server'时,必须设置 服务器数据地址(url)或者重写ajax方法  
  17.     url: 'JsonTable',//服务器数据的加载地址  
  18.     method: 'get',  
  19.     columns: [{  
  20.         checkbox: true,  
  21.     },{  
  22.         field: 'ID',  
  23.         title: '系统ID'  
  24.     }, {  
  25.         field: 'C1',  
  26.         title: ''  
  27.     }]  
  28. });  
  29. function queryParam(Params) {  
  30.     var P = {  
  31.         pageSize: Params.limit,  
  32.         offset: Params.offset,  
  33.         sortOrder: Params.order,  
  34.         searchText: search  
  35.     };  
  36.     return P;  
  37. }  
  38. function Excel() {  
  39.     var CountT = $('#Table').bootstrapTable('getSelections');  
  40.     if (CountT != "") {  
  41.         var T_ID = "";  
  42.         for (i = 0; i < CountT.length; i++) {  
  43.             T_ID += CountT[i].ID + "|"  
  44.         }  
  45.         document.getElementById("T_ID").value = T_ID;  
  46.     }  
  47. }  

Controller

  1. public ActionResult JsonTable(int pageSize, int offset, string sortOrder,string searchText) {  
  2.     int total = 0;  
  3.     List<BOOTSTRAPTABLE> rows = null;  
  4.     string json = "";  
  5.     if (searchText != "")  
  6.     {  
  7.         total = db.BOOTSTRAPTABLE.Where(a => a.ID.Contains(searchText) || a.C1.Contains(searchText)).Count();  
  8.         rows = db.BOOTSTRAPTABLE.Where(a => a.ID.Contains(searchText) || a.C1.Contains(searchText)).OrderByDescending(b => b.ID).Skip(offset).Take(pageSize).ToList();  
  9.         json = JsonConvert.SerializeObject(new { total = total, rows = rows });  
  10.     }  
  11.     else {  
  12.         total = db.BOOTSTRAPTABLE.Count();  
  13.         rows = db.BOOTSTRAPTABLE.OrderByDescending(b => b.ID).Skip(offset).Take(pageSize).ToList();  
  14.         json = JsonConvert.SerializeObject(new { total = total, rows = rows });  
  15.     }  
  16.     return Content(json, "text/json");  
  17. }  
  18. public void MSExcel() {  
  19.     string []TableID = Request.Params["T_ID"].Split('|');  
  20.     List<AA> TableDate = new List<AA>();  
  21.     HSSFWorkbook workbook = new HSSFWorkbook();  
  22.     ISheet sheet = workbook.CreateSheet("导出演示");  
  23.     for (int i = 0; i < TableID.Length; i++) {  
  24.         string T_ID = TableID[i];  
  25.         var Date = from t1 in db.BOOTSTRAPTABLE  
  26.                     where t1.ID == T_ID  
  27.                     select new AA  
  28.                     {  
  29.                         ID = t1.ID,  
  30.                         C1=t1.C1  
  31.                     };  
  32.         TableDate.AddRange(Date.ToList());  
  33.     }  
  34.     string[] TitleR = { "ID""姓名" };  
  35.     IRow Row = sheet.CreateRow(0);  
  36.     for (int J = 0; J < TitleR.Count(); J++)  
  37.     {  
  38.         var TitleCell = Row.CreateCell(J);  
  39.         TitleCell.SetCellValue(TitleR[J]);  
  40.     }  
  41.     int ii = 1;  
  42.     foreach (var item in TableDate)  
  43.     {  
  44.         if (ii <= TableDate.Count)  
  45.         {  
  46.             Row = sheet.CreateRow(ii);  
  47.             ICell cell = Row.CreateCell(0);  
  48.             cell.SetCellValue("" + item.ID);  
  49.             cell = Row.CreateCell(1);  
  50.             cell.SetCellValue(item.C1);  
  51.         }  
  52.         ii++;  
  53.     }  
  54.     MemoryStream ms = new MemoryStream();  
  55.     workbook.Write(ms);  
  56.     ms.Seek(0, SeekOrigin.Begin);  
  57.     Response.AddHeader("Content-Disposition""attachment; filename=导出演示.xls");  
  58.     Response.BinaryWrite(ms.ToArray());  
  59.     workbook = null;  
  60.     ms.Close();  
  61.     ms.Dispose();  
  62.     Response.Write(true);  
  63. }  
  64. private class AA{  
  65.     public string ID { getset; }  
  66.     public string C1 { getset; }  
  67. }  
钰玺

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: