Bootstrap table 分頁 In asp.net MVC

来源:http://www.cnblogs.com/lenovo_tiger_love/archive/2017/09/04/7474403.html
-Advertisement-
Play Games

中文翻譯文檔: http://blog.csdn.net/rickiyeat/article/details/56483577 版本說明: Jquery v2.1.1 Bootstrap V3.3.7 bootstrap-table V1.11.1 一、視圖頁 1 <!DOCTYPE html> 2 ...


中文翻譯文檔:

http://blog.csdn.net/rickiyeat/article/details/56483577

版本說明:

Jquery v2.1.1

Bootstrap V3.3.7

bootstrap-table V1.11.1

一、視圖頁

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>測試</title>
 6     <link href="/Content/bootstrap.min.css" rel="stylesheet">
 7     <link href="/Content/bootstrap-table.min.css" rel="stylesheet">
 8     <script src="/Scripts/modernizr-2.8.3.js"></script>
 9 </head>
10 <body>
11     <div class="container">
12         <div class="row">
13             <div id="test_toolbar" class="btn-group">
14                 <button id="btnEdit" type="button" class="btn btn-default">
15                     <span class="fa fa-pencil-square-o" aria-hidden="true"></span>批量顯示
16                 </button>
17                 <button id="btnDelete" type="button" class="btn btn-default">
18                     <span class="fa fa-trash-o" aria-hidden="true"></span>批量刪除
19                 </button>
20             </div>
21             <table id="test_Table" class="table-striped table-hover" data-reorderable-columns="true"></table>
22         </div>
23     </div>
24     <script src="/Scripts/jquery/jquery-2.1.1.min.js"></script>
25     <script src="/Scripts/bootstrap.min.js"></script>
26     <script src="/Scripts/respond.min.js"></script>
27     <script src="/Scripts/bootstrap-table.min.js"></script>
28     <script src="/Scripts/bootstrap-table-zh-CN.js"></script>
29     <script src="~/Scripts/js/Activity/Comment.js"></script>
30     <script>
31         $(function () {
32 
33         //1.初始化Table
34         var oTable = new TableInit();
35         oTable.Init();
36 
37         //2.初始化Button的點擊事件
38         var oButtonInit = new ButtonInit();
39         oButtonInit.Init();
40 
41     });
42     </script>
43 </body>
44 </html>
View Code

 二、處理腳本

  1 var TableInit = function () {
  2     var oTableInit = new Object();
  3 
  4     //初始化Table
  5     oTableInit.Init = function () {
  6         $('#test_Table').bootstrapTable({
  7             url: "test",
  8             method: 'get',
  9             datatype: 'json',
 10             contentType: "application/x-www-form-urlencoded",
 11             toolbar: '#test_toolbar',
 12             striped: false, //是否顯示行間隔色
 13             cache: false,
 14             pagination: true,
 15             sortable: false,
 16             sortName: 'AddDate',
 17             sortOrder: "asc",
 18             queryParams: oTableInit.queryParams,
 19             sidePagination: "server",
 20             pageNumber: 1,
 21             pageSize: 20,
 22             pageList: [20, 30, 50, 100],
 23             paginationPreText: '上一頁',
 24             paginationNextText: '下一頁',
 25             search: false,
 26             strictSearch: false,
 27             showColumns: false,
 28             showRefresh: true,
 29             minimumCountColumns: 2,
 30             clickToSelect: true,//單擊行選中
 31             height: 600,
 32             idField: "Id",
 33             uniqueId: "Id", //唯一標識列
 34             showToggle: false,
 35             cardView: false,
 36             detailView: false,
 37             showHeader: true,
 38             singleSelect: false,//是否單選
 39             checkboxHeader: true,
 40             columns: [
 41                 { checkbox: true },
 42             {
 43                 title: '序號', field: 'No', width: '50', align: 'center', formatter: function (value, row, index) {
 44                     return index + 1;
 45                 }
 46             },
 47             { field: 'Id', title: 'Id', visible: false },
 48             {
 49                 field: 'Operate',
 50                 title: '操作',
 51                 width: '100',
 52                 halign: 'center',
 53                 align: 'center',
 54                 formatter: function (value, row, index) {
 55                     var strHtml = "<a title='編輯' onclick='btnEdit(\"" + row.Id + "\")'  href='javascript:void(0);'><i class='fa fa-pencil fa-fw'></i></a> &nbsp;";
 56                     strHtml += "<a title='刪除' onclick='btnDelete(\"" + row.Id + "\")' href='javascript:void(0);'><i class='fa fa-trash-o'></i></a>";
 57                     return strHtml;
 58                 }
 59             },//或者
 60                 {
 61                     field: 'Operate', title: '操作', width: '80', halign: 'center', align: 'left',
 62                     events: operateEvents,
 63                     formatter: function (value, row, index) {
 64                         var strHtml = "<a class='upload' title='上傳'  href='javascript:void(0);'><i class='fa fa-upload fa-fw'></i></a>&nbsp;";
 65                         strHtml += "<a class='remove' title='刪除'  href='javascript:void(0);'><i class='fa fa-trash-o fa-fw'></i></a>";
 66                         return strHtml;
 67                     }
 68                 }
 69             ]
 70         });
 71     };
 72 
 73     //傳遞後臺的參數
 74     oTableInit.queryParams = function (params) {
 75         //參數對應表格參數
 76         /* 方式一 var temp1 = {
 77              rows: this.pageSize,
 78              page: this.pageNumber,
 79              sort: this.sortName,
 80              order: this.sortOrder
 81          };*/
 82 
 83         //序列化表單數據
 84         var searchWhere = $("#activity_SearchForm").serializeFormToJson();
 85         //方式二
 86         var temp = {
 87             limit: params.limit,   //頁面大小
 88             offset: params.offset / params.limit,  //頁碼
 89             searchWhere: JSON.stringify(searchWhere)//JSON字元串參數
 90         };
 91         return temp;
 92     };
 93     oTableInit.responseHandler = function (res) {
 94         if (res) {
 95             return {
 96                 "rows": res.result,
 97                 "total": res.totalCount
 98             };
 99         } else {
100             return {
101                 "rows": [],
102                 "total": 0
103             };
104         }
105     };
106     return oTableInit;
107 };
108 
109 var ButtonInit = function () {
110     var oInit = new Object();
111 
112     oInit.Init = function () {
113 
114         //清空查詢條件
115         $("#btnClear").click(function () {
116            //...
117         });
118 
119         //查詢
120         $("#btnSearch").click(function () {
121             $("#test_Table").bootstrapTable('refresh');
122         });
123 
124         //批量顯示
125         $("#btnEdit").click(function () {
126             var selectRow = $("#test_Table").bootstrapTable('getSelections');
127             if (selectRow.length <= 0) {
128                 $.modalAlert("請先選中要操作的數據行。", "warning");
129             }
130 
131             var ids = new Array();
132             $.each(selectRow, function (i, row) {
133                 ids[i] = row["Id"];
134             });
135 
136             $.confirmForm({
137               //...
138             });
139         });
140 
141         //批量刪除
142         $("#btnDelete").click(function () {
143             var selectRow = $("#test_Table").bootstrapTable('getSelections');
144             if (selectRow.length <= 0) {
145                 $.modalAlert("請先選中要操作的數據行。", "warning");
146             }
147 
148             var ids = new Array();
149             $.each(selectRow, function (i, row) {
150                 ids[i] = row["Id"];
151             });
152 
153             $.deleteForm({
154             //...
155             });
156         });
157     };
158     return oInit;
159 };
160 
161 //編輯
162 var btnEdit = function (key) {
163   //...
164 }
165 
166 //刪除
167 var btnDelete = function (key) {
168    //...
169 }
170 
171 //行事件或採用以下方式
172 
173 //操作監聽事件
174 window.operateEvents = {
175     //刪除數據行
176     'click .remove': function (e, value, row, index) {
177         $('#test_Table').bootstrapTable('remove', { field: 'Id', values: [row['Id']] });
178     },
179     //上傳
180     'click .upload': function (e, value, row, index) {
181        //...
182     }
183 };
View Code

三、後端處理

 1         /// <summary>
 2         /// test
 3         /// </summary>
 4         /// <param name="limit">頁數據大小</param>
 5         /// <param name="offset">頁碼</param>
 6         /// <param name="searchWhere"></param>
 7         /// <returns></returns>
 8         [HttpGet]
 9         [AjaxOnly]
10         public JsonResult GetCommentGridJson(int limit, int offset, string searchWhere)
11         {
12             //總數
13             int rowCount = 0;
14             IList<T> list = null;
15             return Json(new { total = rowCount, rows = list });
16         }
17         
18         //返回JSON必須包含total,rows
View Code
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 避免ANR異常 不要在主線程中執行耗時的代碼,不然很容易出現anr錯誤。 原因: 解決方法: ...
  • android中進程的優先順序 ...
  • 內容觀察者實現簡訊監聽 通過內容觀察者監聽簡訊是否發生變化,如果發生變化,就用內容提供者讀取簡訊的內容。 原理: 當簡訊發生變化(比如說來簡訊),簡訊應用就會通知內容觀察者我的簡訊發生了變化,並把變化位置簡訊的uri傳過來,有uri之後,內容提供者就可以很方便的讀取簡訊內容了,不過肯定要保證許可權夠。 ...
  • 虛擬簡訊 ...
  • 內容提供者 參考: Android四大組件之內容提供者--ContentProvider - java小兵 - CSDN博客http://blog.csdn.net/wodewutai17quiet/article/details/46670597 Android四大組件之內容提供者--Conten ...
  • 在Android開發中難免會遇到大量的數據載入到ListView中進行顯示, 然後其中最重要的數據傳遞橋梁Adapter適配器是常用的,隨著市場的需 求變化ListView'條目中的內容是越來越多這就需要程式員來自定義適配器, 而關鍵的就是適配器的優化問題,適配器沒有優化好往往就會造成OOM (記憶體 ...
  • 本文主要介紹json最原始的解析與google提供的gson工具類解析 ①json解析 ②gson解析 1)首先在AndroidStudio中安裝一個GsonFormat插件 2)新建一個javaben類然後按下組合鍵alt+insert 把完整的json數據拷貝到編輯框中 3)添加gson的依賴包 ...
  • Android的版本有很多通常開發的時候對話框大多數使用自定義或是 Google提供的V4, V7 相容包來開發保持各個版本的對話框樣式統一,所以這裡使用的是V7 包里的AlertDialog。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...