Asp.net MVC 中利用jquery datatables 實現(xiàn)數(shù)據(jù)分頁顯示功能
更新時間:2017年06月23日 09:03:50 作者:暖楓無敵
這篇文章主要介紹了Asp.net MVC 中利用jquery datatables 實現(xiàn)數(shù)據(jù)分頁顯示功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
1、Controller中的方法代碼如下:
由于方法中的存儲過程沒有帶分頁參數(shù),所以還可以有繼續(xù)優(yōu)化的空間。
/// <summary> /// 獲取測點列表 /// </summary> /// <returns></returns> [HttpPost] public JsonResult GetMeasurePointList(string TreeID, string TreeType, int sEcho, int iDisplayStart, int iDisplayLength) { DataTable dtResult = new DataTable(); string sql = string.Format("EXEC P_GET_ZXJG_TagList '{0}','{1}'", TreeID, TreeType); dtResult = QuerySQL.GetDataTable(sql); dtResult.Columns.Add("XuHao", typeof(string)); dtResult.Columns.Add("StrValueTime", typeof(string)); for (int i = 0; i < dtResult.Rows.Count; i++) { dtResult.Rows[i]["XuHao"] = (i + 1).ToString(); dtResult.Rows[i]["StrValueTime"] = Convert.ToDateTime(dtResult.Rows[i]["F_ValueTime"]).ToString("yyyy-MM-dd HH:mm:ss"); } int iTotalRecords = 0; int iTotalDisplayRecords = 0; List<DataRow> queryList = dtResult.AsEnumerable().ToList(); iTotalRecords = queryList.Count(); queryList = queryList.Skip(iDisplayStart).Take(iDisplayLength).ToList(); iTotalDisplayRecords = queryList.Count(); var temp = from p in queryList select new { XuHao = p.Field<string>("XuHao").ToString(), F_Description = p.Field<string>("F_Description").ToString(), StrValueTime = p.Field<string>("StrValueTime").ToString(), F_Value = p.Field<decimal>("F_Value").ToString(), F_Unit = p.Field<string>("F_Unit").ToString(), F_AlmLow = p.Field<decimal>("F_AlmLow").ToString(), F_AlmUp = p.Field<decimal>("F_AlmUp").ToString() }; return Json(new { draw = sEcho, recordsFiltered = iTotalRecords, recordsTotal = iTotalDisplayRecords, data = temp.ToList() }, JsonRequestBehavior.AllowGet); }
2、cshtml視圖頁面中代碼如下:
function InitData() { var dataTable = $('#tbMeasurePointList').DataTable({ "scrollY": "hidden", "scrollCollapse": false, "dom": 'tr<"bottom"lip><"clear">', language: { lengthMenu: '',//左上角的分頁大小顯示。 search: '<span class="label label-success">搜索:</span>',//右上角的搜索文本,可以寫html標簽 loadingRecords: '數(shù)據(jù)加載中...', paginate: { //分頁的樣式內(nèi)容。 previous: "上一頁", next: "下一頁", first: "", last: "" }, zeroRecords: "暫無數(shù)據(jù)",//table tbody內(nèi)容為空時,tbody的內(nèi)容。 //下面三者構成了總體的左下角的內(nèi)容。 info: "<span class='pagesStyle'>總共<span class='recordsStyle'> _TOTAL_ 條,計 _PAGES_ </span>頁,當前顯示 _START_ -- _END_ 條記錄 </span>",//左下角的信息顯示,大寫的詞為關鍵字。初始_MAX_ 條 infoEmpty: "0條記錄",//篩選為空時左下角的顯示。 infoFiltered: ""http://篩選之后的左下角篩選提示, }, "lengthChange": false, "ordering": false, "iDisplayLength": 10, "searching": false, destroy: true, //Cannot reinitialise DataTable,解決重新加載表格內(nèi)容問題 "serverSide": true, "sAjaxSource": "@Url.Action("GetMeasurePointList", "OnlineMonitor")", "fnServerData": function (sSource, aoData, fnCallback) { aoData.push({ "name": "TreeID", "value": $("#hidTreeID").val() }); aoData.push({ "name": "TreeType", "value": $("#hidTreeType").val() }); $.ajax({ "dataType": 'json', "type": "POST", "url": sSource, "data": aoData, "success": fnCallback }); }, "aoColumns": [ { "mDataProp": "XuHao", "width": "50" }, { "mDataProp": "F_Description", "width": "400" }, { "mDataProp": "StrValueTime", "width": "200" }, { "mDataProp": "F_Value", "width": "100" }, { "mDataProp": "F_Unit", "width": "100" }, { "mDataProp": "F_AlmLow", "width": "100" }, { "mDataProp": "F_AlmUp", "width": "100"} ], "createdRow": function (row, data, index) { $(row).children('td').eq(0).attr('style', 'text-align: center;'); $(row).children('td').eq(1).attr('style', 'text-align: left;'); $(row).children('td').eq(2).attr('style', 'text-align: center;'); $(row).children('td').eq(3).attr('style', 'text-align: right;'); $(row).children('td').eq(4).attr('style', 'text-align: center;'); $(row).children('td').eq(5).attr('style', 'text-align: right;'); $(row).children('td').eq(6).attr('style', 'text-align: right;'); } }); }
3、實際顯示效果如下圖所示:
以上所述是小編給大家介紹的Asp.net MVC 中利用jquery datatables 實現(xiàn)數(shù)據(jù)分頁顯示,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
.NET Framework中定時器timer的單線程與多線程使用講解
這篇文章主要介紹了.NET Framework中定時器timer的單線程與多線程使用講解,單線程定時器在性能方面不如多線程,但是可以做到線程安全,需要的朋友可以參考下2016-04-04asp.net Repeater分頁實例(PageDataSource的使用)
Asp.net提供了三個功能強大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分頁功能。相對DataGrid,DataList和Repeater控件具有更高的樣式自定義性,所以很多時候我們喜歡使用DataList或Repeater控件來顯示數(shù)據(jù)2013-04-04ASP.NET Core實現(xiàn)自定義WebApi模型驗證詳解
這篇文章主要給大家介紹了關于ASP.NET Core實現(xiàn)自定義WebApi模型驗證的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用ASP.NET Core具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-08-08