国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery插件DataTable使用方法詳解(.Net平臺)

2019-11-19 18:20:40
字體:
來源:轉載
供稿:網友

上一篇隨筆提到了MvcPager,最近用到了一款前端JQ插件------DataTable(簡稱DT),很好用。

DT是一款前端插件,和后端完全分離開,就這點來看,我就特別喜歡。

一.使用DT,需要以下支持

js:jq+jquery.dataTables.min.js

 二、頁面上進行引入js,直接使用DT功能

前端代碼:

<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> <title>用戶列表</title> <link href="~/Content/Scripts/h-ui/css/H-ui.min.css" rel="stylesheet" /> <link href="~/Content/Scripts/h-ui.admin/css/H-ui.admin.css" rel="stylesheet" /> <link href="~/Content/Scripts/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" /> <style>  .page-container {   padding: 10px;  }  .operation {   background: #EFEEF0;   padding: 3px;  }  .search {   background: #EFEEF0;   padding: 5px;   margin-top: 5px;  }  .table {   margin-top: 10px;  }  .dataTables_info {   margin-left: 5px;  }  #table1_info {   padding: 0;  }  #table1_length {   margin-left: 15px;  } </style> <!--引入腳本解決兼容性(hack技術,必須放入head中)--> <!--[if lt IE 9]> <script src="~/Content/Scripts/html5_css3/html5shiv.min.js"></script> <script src="~/Content/Scripts/html5_css3/respond.min.js"></script> <script src="~/Content/Scripts/PIE-2.0beta1/PIE_IE678.js"></script> <![endif]--></head><body> <div class="page-container">  <div class="operation">   <a class="btn btn-danger radius" href="javascript:;"><i class="Hui-iconfont"></i> 批量刪除</a>   <a class="btn btn-primary radius" href="javascript:;"><i class="Hui-iconfont"></i> 添加用戶</a>  </div>  <div class="search">   <input type="text" id="nickname" class="input-text" style="width:100px;" placeholder="昵稱">   <button id="search" class="btn btn-success" type="submit"><i class="Hui-iconfont"></i> 查詢</button>  </div>  <div class="table">   <table id="table1" class="table table-border table-bordered table-bg table-hover">    <thead>     <tr class="text-c">      <th><input type="checkbox" name="" value=""></th>      <th>昵稱</th>      <th>賬號</th>      <th>密碼</th>      <th>添加時間</th>      <th>修改時間</th>      <th>是否禁用</th>      <th>操作</th>     </tr>    </thead>   </table>  </div> </div></body></html><script src="~/Content/Scripts/jquery-2.0.3.min.js"></script><script src="~/Content/Scripts/datatables/1.10.13/jquery.dataTables.min.js"></script><script src="~/Content/Scripts/h-ui/js/H-ui.js"></script><script src="~/Content/Scripts/h-ui.admin/js/H-ui.admin.js"></script><script type="text/javascript"> var table1 = null; $(function() {  table1=initializeTable();  $("#search").click(function() {   table1.ajax.reload();  }); });  function initializeTable() {//初始化table  var table = $("#table1").DataTable({   /****************************************表格數據加載****************************************************/   "serverSide": true,   "ajax": {//ajax請求數據源    "url": "/UserInfo/Manager/Search",    "type": "post",    "data": function (data) {//添加額外的數據給服務器     data.pageIndex = (data.start / data.length) + 1;     data.nickname = $("#nickname").val().trim();    }   },   "columns": [//列綁定    { "defaultContent": "" },    { "data": "Nickname" },    { "data": "LoginName" },    { "data": "LoginPassword" },    { "data": "AddTime" },    { "data": "ModifyTime" },    { "data": "IsForbidden" },    { "defaultContent": "" }   ],   "columnDefs": [//列定義    {     "targets": [0],     "data": "UserInfoId",     "render": function (data, type, full) {//全部列值可以通過full.列名獲取,一般單個列值用data PS:這里的render是有多少列就執行多少次方法。。。不知道為啥      return "<input type='checkbox' value='" + data + "' name='UserInfoId'>";     }    },    {     "targets": [4],     "data": "AddTime",     "render": function (data, type, full) {//全部列值可以通過full.列名獲取,一般單個列值用data PS:這里的render是有多少列就執行多少次方法。。。不知道為啥      if (data == null || data.trim() == "") { return ""; }      else { var date = new Date(parseInt(data.slice(6))); return date.getFullYear() + "/" + date.getMonth() + "/" + date.getDate(); }     }    },    {     "targets": [5],     "data": "ModifyTime",     "render": function (data, type, full) {//全部列值可以通過full.列名獲取,一般單個列值用data PS:這里的render是有多少列就執行多少次方法。。。不知道為啥      if (data == null || data.trim() == "") { return "/"; }      else { var date = new Date(parseInt(data.slice(6))); return date.getFullYear() + "/" + date.getMonth() + "/" + date.getDate(); }     }    },    {     "targets": [6],     "data": "IsForbidden",     "render": function (data, type, full) {//全部列值可以通過full.列名獲取,一般單個列值用data PS:這里的render是有多少列就執行多少次方法。。。不知道為啥      if (data) { return "是"; }      else { return "否"; }     }    },    {     "targets": [7],     "data": "UserInfoId",     "render": function (data, type, full) {//全部列值可以通過full.列名獲取,一般單個列值用data PS:這里的render是有多少列就執行多少次方法。。。不知道為啥      return "<a style='text-decoration:none' class='ml-5 f-14' onclick=article_edit('資訊編輯','article-add.html','" + data + "') href='javascript:;' title='編輯'><i class='Hui-iconfont'></i></a>" +       "<a style='text-decoration:none' class='ml-5 f-14' onclick=article_del(this,'" + data + "') href='javascript:;' title='刪除'><i class='Hui-iconfont'></i></a>";     }    },    { "orderable": false, "targets": [0, 7] },// 是否排序    //{ "visible": false, "targets": [3, 5] }//是否可見   ],   "rowCallback": function (row, data, displayIndex) {//行定義    $(row).attr("class", "text-c");   },   "initComplete": function (settings, json) { //表格初始化完成后調用   },   /****************************************表格數據加載****************************************************/   /****************************************表格樣式控制****************************************************/   "dom": "t<'dataTables_info'il>p",//表格布局   "language": {//語言國際化    "lengthMenu": "每頁 _MENU_ 條",    "zeroRecords": "沒有找到記錄",    "info": "當前顯示 _START_ 到 _END_ 條,共 _TOTAL_條",    "infoEmpty": "無記錄",    "paginate":    {     "first": "首頁",     "previous": "前一頁",     "next": "后一頁",     "last": "末頁"    }   },   "pagingType": "full_numbers",//分頁格式   "processing": true,//等待加載效果   "ordering": false,//排序功能   /****************************************表格樣式控制****************************************************/  });  return table; }</script>

 后端代碼:

/****************Controller后臺代碼******************/public ActionResult Search(DataTable dt,string nickname)  {   int total;   int pageSize = dt.length;   int pageIndex = dt.pageIndex;   IQueryable<Model.UserInfo> userInfoIq=CurrentBllSession.UserInfoBll.GetIQueryableBySearchPage(pageIndex,pageSize,out total,nickname);   List<Model.UserInfo> userInfoList = userInfoIq.ToList();   dt.recordsTotal = total;   dt.recordsFiltered = total ;   dt.data = userInfoList;   return Json(dt);  }/**************************Bll服務代碼************************/ public IQueryable<UserInfo> GetIQueryableBySearchPage(int pageIndex,int pageSize,out int total,string nickname)  {   IQueryable<UserInfo> userInfoIq= CurrentDal.GetIQueryable();   if (!string.IsNullOrEmpty(nickname))   {    userInfoIq=userInfoIq.Where(a => a.Nickname.Contains(nickname));   }   total=userInfoIq.Count();   userInfoIq=userInfoIq.OrderByDescending(a => a.AddTime);   userInfoIq=userInfoIq.Skip((pageIndex - 1)*pageSize).Take(pageSize);//分頁前必須排序,不然EF報錯   return userInfoIq;  }
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;namespace ViewModel{ /// <summary> /// JqueryDataTable插件交互的DT格式的數據(DT參數區分大小寫) /// </summary> public class DataTable {  /// <summary>  /// 請求次數(前端==》后端)  /// </summary>  public int draw { get; set; }  /// <summary>  /// 總記錄數(前端《==后端)  /// </summary>  public int recordsTotal { get; set; }  /// <summary>  /// 過濾后的總記錄數(前端《==后端)  /// </summary>  public int recordsFiltered { get; set; }  /// <summary>  /// 記錄開始索引(前端==》后端)  /// </summary>  public int start { get; set; }  /// <summary>  /// PageIndex(前端==》后端)  /// </summary>  public int pageIndex { get; set; }  /// <summary>  /// PageSize(前端==》后端)  /// </summary>  public int length { get; set; }  /// <summary>  /// 集合分頁數據(前端《==后端)  /// </summary>  public IList data { get; set; }  }}

這樣就搞定了。。。是不是很簡單(● ̄(エ) ̄●)

主站蜘蛛池模板: 林口县| 五指山市| 轮台县| 阿合奇县| 焦作市| 久治县| 鄂尔多斯市| 林甸县| 凉山| 和田市| 芮城县| 宁国市| 精河县| 南丰县| 全南县| 刚察县| 会同县| 巨野县| 赣州市| 神池县| 扬州市| 西城区| 南投县| 山西省| 罗甸县| 金湖县| 通辽市| 隆回县| 西平县| 醴陵市| 濉溪县| 南部县| 平阳县| 新乐市| 塔河县| 两当县| 万山特区| 惠东县| 喀什市| 六安市| 邛崃市|