2018.4.11日更新,8號的時候我推薦去官網下載,可是那個版本不知道爲何我沒法使用 $table.bootstrapTable('getSelections'); 不管如何。。。而後我嘗試着更換了NuGet裏面的bootstrap-table,而後就能夠了.....須要一題的是,Nuget裏面有兩個bootstrap-table,只須要下載那個MVC的就能夠了,第一個沒卵用.....css
2018.4.8日更新,NuGet裏面的bootstrap-table插件版本過低了,因此能夠去官網下載,可是下載好的裏面有兩個文件夾,一個是src,一個是dist,這兩個裏面都有js,都有css,可是這裏須要注意的是,只能引用src文件夾下面的才能夠用!html
2018.3.30日更新,我使用個人這篇博客在個人筆記本上想實現這個功能,可是徹底沒有用,進不去bootstrapTable這個方法,並且徹底不知道哪裏錯了,而後在個人亂搞之下。。。成功了。。。jquery
注意sql
<script src="~/Scripts/bootstrap-table.js"></script> 錯誤 <script src="~/Scripts/bootstrap-table/bootstrap-table.js"></script> 正確
這兩個js是徹底不同的,上面那個沒有用的,只有下面的那個纔有用。。。。緣由是由於我在NuGet裏面下載了兩個bootstrap-table,帶MVC的那個能夠用,第一個不能用,因此引用也是錯誤的。數據庫
我會了EasyUI的方法,可是這個Bootstrap的一直不會,看了下某個項目裏的實現方式,竟然是讀出數據而後循環加<td>。。。。json
我又在網上搜索其它的方法,毫無例外的提到了bootstrapTable這個方法,這個方法分爲客戶端和服務器兩種方式,暫時我還不清楚兩種方式之間的區別,待研究。bootstrap
@*1、Jquery組件引用*@ <script src="~/Scripts/jquery-3.0.0.js"></script> @*2、bootstrap組件引用*@ <script src="~/Scripts/bootstrap.js"></script> <link href="~/Content/bootstrap.css" rel="stylesheet" /> @*3、bootstrap table組件以及中文包的引用*@ <script src="~/Scripts/bootstrap-table/bootstrap-table.js"></script> <link href="~/Content/bootstrap-table.css" rel="stylesheet" /> <script src="~/Scripts/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
Bootstrap的表格是須要一個插件的!!! 去NuGet下!緩存
@{ Layout = "~/Views/Shared/_Layout.cshtml"; } <div class="panel-body" style="padding-bottom:0px;"> <div id="toolbar" class="btn-group"> <button id="btn" type="button" class="btn btn-default"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>選課 </button> </div> <table id="table"></table> </div> <script> $(function () { //1.初始化Table var oTable = new TableInit(); oTable.Init(); //2.初始化Button的點擊事件 var oButtonInit = new ButtonInit(); oButtonInit.Init(); }) var TableInit = function () { var oTableInit = new Object(); //初始化Table oTableInit.Init = function () { $('#table').bootstrapTable({ url: '/SelectCourse/GetCourseTable', //請求後臺的URL(*) method: 'get', //請求方式(*) toolbar: '#toolbar', //工具按鈕用哪一個容器 striped: true, //是否顯示行間隔色 cache: false, //是否使用緩存,默認爲true,因此通常狀況下須要設置一下這個屬性(*) pagination: true, //是否顯示分頁(*) sortable: false, //是否啓用排序 sortOrder: "asc", //排序方式 queryParams: oTableInit.queryParams,//傳遞參數(*) sidePagination: "server", //分頁方式:client客戶端分頁,server服務端分頁(*) pageNumber: 1, //初始化加載第一頁,默認第一頁 pageSize: 10, //每頁的記錄行數(*) pageList: [5, 25, 50, 100], //可供選擇的每頁的行數(*) search: true, //是否顯示錶格搜索,此搜索是客戶端搜索,不會進服務端,因此,我的感受意義不大 strictSearch: true, showColumns: true, //是否顯示全部的列 showRefresh: true, //是否顯示刷新按鈕 minimumCountColumns: 2, //最少容許的列數 clickToSelect: true, //是否啓用點擊選中行 height: 500, //行高,若是沒有設置height屬性,表格自動根據記錄條數以爲表格高度 uniqueId: "ID", //每一行的惟一標識,通常爲主鍵列 showToggle: true, //是否顯示詳細視圖和列表視圖的切換按鈕 cardView: false, //是否顯示詳細視圖 detailView: false, //是否顯示父子表 columns: [{ fileid: 'state', checkbox: true, formatter: function (value, row, index) { //加複選框 //if (index === 2) { // return { // disabled: true, // checked: true // } //} console.info(value); return value; } }, { field: '課程編號', title: '課程編號', }, { field: '課程名', title: '課程名' }, { field: '授課老師', title: '授課老師' }, { field: '上課地點', title: '上課地點' }, { field: '上課時間', title: '上課時間' }, { field: '課程介紹', title: '課程介紹' }] }); }; oTableInit.queryParams = function (params) { var temp = { //這裏的鍵的名字和控制器的變量名必須一直,這邊改動,控制器也須要改爲同樣的 //limit: params.limit, //頁面大小 //offset: params.offset, //頁碼 departmentname: $("#txt_search_Coursename").val(), statu: $("#txt_search_Teacher").val(), search: params.search //加了這個,就可使用自帶的搜索功能了 }; return temp; }; return oTableInit; }; var ButtonInit = function () { var oInit = new Object(); var postdata = {}; oInit.Init = function () { //初始化頁面上面的按鈕事件 }; return oInit; }; $('#table').on('click-row.bs.table', function (e, row, $element) { $('.success').removeClass('success'); $($element).addClass('success'); }); var $table = $('#table'), //可寫可不寫 $button = $('#btn'); $button.click(function () { //由於這個,你能夠編輯表格了! var result = $table.bootstrapTable('getSelections'); alert('getSelections: ' + JSON.stringify($table.bootstrapTable('getSelections'))); var ids = []; for (var i = 0; i < result.length; i++) { var item = result[i]; //ids.push(item.授課老師); } alert(ids); }) </script>
方法1.寫死json字符串,這個能夠做爲測試,實際項目都是從json文本或數據庫取得數據服務器
public ActionResult list() { string json = "{\"total\":2,\"rows\":[{\"id\":\"1\",\"name\":\"Vae\",\"time\":\"2017\",\"state\":\"0\"},{\"id\":\"2\",\"name\":\"蜀雲泉\",\"time\":\"2017\",\"state\":\"很好\"}]}"; return Content(json); }
這裏須要注意,要total和rows這兩個東東,並且這個貌似是服務器端特有的,客戶端沒有total,具體的東西要去GitHub上找官方示例,我暫且擱置。ide
方法2.從數據庫取數據
public ActionResult GetCourseTable(string departmentname, string statu, string search)
{
if (search !="")
{
sql = $"select* from Course where 課程名 like '%{search}%' or 授課老師 like '%{search}%'";
}
DataTable dt= sqlHelper.SqlConnectionInformation(sql);
var rows = JsonConvert.SerializeObject(dt);
string json = $"{{\"total\":{dt.Rows.Count},\"rows\":{rows}}}";
return Content(json);
}
參數那裏,寫了search,就能夠用自帶的功能了,你只須要寫個sql就好了,而後取數據存入DataTable,而後JsonConvert序列化成json格式的,完事。
效果圖: