- A+
所属分类:Bootstrap Table
Html
- <div class="fixed-table-toolbar">
- <div class="columns columns-right btn-group pull-right">
- <form id="Ms" method="post" action="/Index/MSExcel">
- <button class="btn btn-default btn-outline" type="submit" onclick="Excel()">导出</button>
- <input type="text" id="T_ID" name="T_ID"/>
- </form>
- </div>
- <div class="pull-right search">
- <input id="Query" class="form-control input-outline" placeholder="搜索" type="text">
- </div>
- </div>
- <table id="Table"></table>
JavaScript
- var search = '';
- $('#Query').bind('keydown', function (e) {
- if (e.keyCode == "13") {
- search = $('#Query').val();
- $('#Table').bootstrapTable('refresh', { silent: true, url: 'JsonTable', query: { searchText: search } });
- }
- });
- $('#Table').bootstrapTable({
- toolbar: '#toolbar',//一个jQuery 选择器,指明自定义的toolbar
- toolbarAlign: 'right',
- minimumCountColumns: '2',//当列数小于此值时,将隐藏内容列下拉框。
- pagination: true,//设置为 true 会在表格底部显示分页条
- idField: 'ID',//指定主键列
- pageList: '[10, 25, 50, 100, ALL]',//如果设置了分页,设置可供选择的页面数据条数。设置为All 则显示所有记录。
- queryParams: queryParam,//
- sidePagination: 'server',//设置在哪里进行分页,可选值为 'client' 或者 'server'。设置 'server'时,必须设置 服务器数据地址(url)或者重写ajax方法
- url: 'JsonTable',//服务器数据的加载地址
- method: 'get',
- columns: [{
- checkbox: true,
- },{
- field: 'ID',
- title: '系统ID'
- }, {
- field: 'C1',
- title: ''
- }]
- });
- function queryParam(Params) {
- var P = {
- pageSize: Params.limit,
- offset: Params.offset,
- sortOrder: Params.order,
- searchText: search
- };
- return P;
- }
- function Excel() {
- var CountT = $('#Table').bootstrapTable('getSelections');
- if (CountT != "") {
- var T_ID = "";
- for (i = 0; i < CountT.length; i++) {
- T_ID += CountT[i].ID + "|"
- }
- document.getElementById("T_ID").value = T_ID;
- }
- }
Controller
- public ActionResult JsonTable(int pageSize, int offset, string sortOrder,string searchText) {
- int total = 0;
- List<BOOTSTRAPTABLE> rows = null;
- string json = "";
- if (searchText != "")
- {
- total = db.BOOTSTRAPTABLE.Where(a => a.ID.Contains(searchText) || a.C1.Contains(searchText)).Count();
- rows = db.BOOTSTRAPTABLE.Where(a => a.ID.Contains(searchText) || a.C1.Contains(searchText)).OrderByDescending(b => b.ID).Skip(offset).Take(pageSize).ToList();
- json = JsonConvert.SerializeObject(new { total = total, rows = rows });
- }
- else {
- total = db.BOOTSTRAPTABLE.Count();
- rows = db.BOOTSTRAPTABLE.OrderByDescending(b => b.ID).Skip(offset).Take(pageSize).ToList();
- json = JsonConvert.SerializeObject(new { total = total, rows = rows });
- }
- return Content(json, "text/json");
- }
- public void MSExcel() {
- string []TableID = Request.Params["T_ID"].Split('|');
- List<AA> TableDate = new List<AA>();
- HSSFWorkbook workbook = new HSSFWorkbook();
- ISheet sheet = workbook.CreateSheet("导出演示");
- for (int i = 0; i < TableID.Length; i++) {
- string T_ID = TableID[i];
- var Date = from t1 in db.BOOTSTRAPTABLE
- where t1.ID == T_ID
- select new AA
- {
- ID = t1.ID,
- C1=t1.C1
- };
- TableDate.AddRange(Date.ToList());
- }
- string[] TitleR = { "ID", "姓名" };
- IRow Row = sheet.CreateRow(0);
- for (int J = 0; J < TitleR.Count(); J++)
- {
- var TitleCell = Row.CreateCell(J);
- TitleCell.SetCellValue(TitleR[J]);
- }
- int ii = 1;
- foreach (var item in TableDate)
- {
- if (ii <= TableDate.Count)
- {
- Row = sheet.CreateRow(ii);
- ICell cell = Row.CreateCell(0);
- cell.SetCellValue("" + item.ID);
- cell = Row.CreateCell(1);
- cell.SetCellValue(item.C1);
- }
- ii++;
- }
- MemoryStream ms = new MemoryStream();
- workbook.Write(ms);
- ms.Seek(0, SeekOrigin.Begin);
- Response.AddHeader("Content-Disposition", "attachment; filename=导出演示.xls");
- Response.BinaryWrite(ms.ToArray());
- workbook = null;
- ms.Close();
- ms.Dispose();
- Response.Write(true);
- }
- private class AA{
- public string ID { get; set; }
- public string C1 { get; set; }
- }