datatables.js 簡單使用--多選框和服務器端分頁

說明:datatables是一款jQuery表格插件。感覺EasyUI的datagrid更易用

內容:多選框和服務器端分頁

緣由:寫這篇博客的原因是datatables的文檔寫的不怎么樣,找東西很麻煩

環境:asp.net mvc ,? vs2015+sqlserver2012

顯示效果:

????

代碼:

?? html部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<table?id="tbUserList" class="table table-bordered table-hover">
????<thead?class="text-center ">
????????<tr>
????????????<th>
????????????????<input?type="checkbox" class="checkall" />
????????????</th>
????????????<th>ID</th>
????????????<th>菜單名稱</th>
????????????<th>菜單路徑</th>
????????????<th>排序</th>
????????????<th>添加日期</th>
????????</tr>
????</thead>
????<tfoot?class="text-center ">
????????<tr>
????????????<th>
????????????????<input?type="checkbox" class="checkall" />
????????????</th>
????????????<th>ID</th>
????????????<th>菜單名稱</th>
????????????<th>菜單路徑</th>
????????????<th>排序</th>
????????????<th>添加日期</th>
????????</tr>
????</tfoot>
</table>

?JS部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$(function?() {
????var?_dataTables = $('#tbUserList').DataTable({?????????????
????????"lengthChange":?false,
????????"searching":?false,
????????"ordering":?true,
????????"info":?true,
????????"autoWidth":?false,
????????"pageLength": 10,
????????"serverSide":?true,????????????
????????"ajax": {
????????????"url":?"/BasicManage/GetMenus",
????????????"type":"POST"
????????},
????????"columns": [
?????????????{
?????????????????"sClass":?"text-center",
?????????????????"data":?"ID",
?????????????????"render":?function?(data, type, full, meta) {
?????????????????????return?'<input type="checkbox"? class="checkchild"? value="'?+ data +?'" />';
?????????????????},
?????????????????"bSortable":?false
?????????????},
?????????????{?"data":?"ID"?},
?????????????{?"data":?"Name"?},
?????????????{?"data":?"MenuPage"?},
?????????????{?"data":?"SortNo"?},
?????????????{?"data":?"AddDateStr"?}?????????????????
????????]
????});

?JS部分簡單說明:

??? "serverSide": true啟動服務器端分頁

??? "pageLength": 10 每頁10條記錄,注意pageLength注意大小寫對應的值一定要是數字,,因為datatables的js里沒有對這項類型轉換,寫成字符串會出問題。

???? 看下面的源碼

?????

??? "ajax": 這個就不用說了,去哪取數據

??? ”columns“: 這個的文檔在這里 http://datatables.net/reference/option/columns

???????? 里面{}的順序對應表格中列的位置。

???????? ”data“:對應的是后臺傳過來數據的key

???????? 重點說第一個{},是用來在第一列加一列多選框的。

???????? ”sClass“:"text-center"? 設置的class名,多選框會居中顯示,可以去datatables的css里搜索這個class名看具體設置

???????? "data": "ID"? 這是要用到的數據,我把checkbox的value設置為ID,這樣方便取值

???????? ”render“ 這里就是要顯示的checkbox多選框了

如何實現全選

?????? 注意這里用prop

1
2
3
4
$(".checkall").click(function?() {
??????var?check = $(this).prop("checked");
??????$(".checkchild").prop("checked", check);
});

????獲取選中的某一個checkbox的值

??? if ($(".checkchild:checked").length > 1) ????????? { ?????????????? alert("一次只能修改一條數據"); ?????????????? return; ????????? }

??? var id = $(".checkchild:checked").val();

服務器后端如何傳數據

?????

1
2
3
4
5
6
7
8
9
10
public?JsonResult GetMenus()
???????{
???????????int?draw = Convert.ToInt32(Request["draw"]);
???????????int?start = Convert.ToInt32(Request["start"]);
???????????int?length = Convert.ToInt32(Request["length"]);
???????????int?totalCount = 0;
???????????MenuDAO Dao =?new?MenuDAO();
???????????var?menus = Dao.GetMvcMenus((start/length)+1, length,?out?totalCount);
???????????return?Json(new?{? draw= draw, recordsTotal= totalCount, recordsFiltered= totalCount, data = menus }, JsonRequestBehavior.AllowGet);
???????}

?說明: 前端會向后臺傳一些數據

?????? draw:這個不用關心,直接給它返回去就好了,注意要變成int類型

?????? start: 從第幾條記錄開始,從0開始計數,如果你每頁設置10條記錄,第一頁傳0,第二頁傳10,類推

?????? length: 每頁的記錄條數,對應的前端js設置的pageLength。

?????? 返回json :Json(new { draw= draw, recordsTotal= totalCount, recordsFiltered= totalCount, data = menus }, JsonRequestBehavior.AllowGet);

?????? recordsTotal,recordsFiltered這兩個都填總記錄數就行了,data里就是實際的數據

?????? menus是一個 IEnumerable<Menu>集合 ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387815.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387815.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387815.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python異常(高級) Exception

異常(高級) Exception 異常回顧:     try-except 語句 捕獲(接收)異常通知,把異常流程變為正常流程     try-finally 語句 執行必須要執行的語句.     raise 語句 發送異常通知,同時進入異常流程     assert 語句 發送AssertionError異常     with 語句 wi…

反射賦值

目前例子為NPOI Excel導入 入庫時調用 var file file1.PostedFile.InputStream;var fileExt System.IO.Path.GetExtension(file1.FileName);IWorkbook workbook;if (fileExt ".xlsx")workbook new XSSFWorkbook(file);elseworkbook new HSSFWorkbook(file);DB.D…

基于PCA(主成分分析)的人臉識別

代碼下載&#xff1a;基于PCA&#xff08;主成分分析&#xff09;的人臉識別 人臉識別是一個有監督學習過程&#xff0c;首先利用訓練集構造一個人臉模型&#xff0c;然后將測試集與訓練集進行匹配&#xff0c;找到與之對應的訓練集頭像。最容易的方式是直接利用歐式距離計算測…

從BMW Vision iNEXT 看寶馬如何進軍自動駕駛

安全很重要&#xff0c;空間也要很大&#xff0c;砍掉大量物理按鍵&#xff0c;內飾材料要環保&#xff0c;還要提供自動和主動兩套駕駛方案。這些描述僅是BMW Vision iNEXT&#xff08;下稱Vision iNEXT&#xff09;概念車的設計之冰山一角。 一款概念車當然無法完全代表未來…

CSS浮動(二)---Float

重新認識float 2.1. 誤解和“誤用” 既然提到“誤用”&#xff0c;各位看官就此想想&#xff0c;自己平日是怎么使用float的&#xff1f;另外&#xff0c;既然“誤用”加了引號&#xff0c;就說明這樣的使用并不是真正的誤用&#xff0c;而是誤打誤撞使用之后&#xff0c;帶…

Hadoop0.20.2版本在Ubuntu下安裝和配置

1、安裝JDK   &#xff08;1&#xff09;下載安裝JDK&#xff1a;確保計算機聯網之后命令行輸入下面命令安裝JDK   sudo apt-get install sun-java6-jdk   &#xff08;2&#xff09;配置計算機Java環境&#xff1a;打開/etc/profile&#xff0c;在文件最后輸入下面內容 …

云原生生態周報 Vol. 2

業界要聞 Kubernetes External Secrets 近日&#xff0c;世界上最大的域名托管公司 Godaddy公司&#xff0c;正式宣布并詳細解讀了其開源的K8s外部 Secrets 管理項目&#xff1a; Kubernetes External Secrets&#xff0c;簡稱KES。這個項目定義了ExternalSecrets API&#xff…

centos 7新機使用前操作

關閉防火墻 systemctl stop firewalld&#xff08;停服務&#xff09; systemctl status firewalld&#xff08;看狀態&#xff09; systemctl disable firewalld.service &#xff08;永久關閉&#xff09; selinux getenforce&#xff08;查狀態&#xff09; vi /etc/selinux…

ubuntu10.04+hadoop0.20.2平臺配置(完全分布式模式)

配置環境及有關工具&#xff1a;ubuntu10.04 、hadoop0.20.2 、 jdk1.6.0_29 我們的機器有三臺&#xff0c;一臺當作namenode、兩臺當作datanode&#xff1a; namenode&#xff1a;IP:192.168.0.25、機器名&#xff1a;kiddenzj &#xff08;這里的機器名要注意&#xff1a;機…

成佛、遠不止渡滄海

地之及東南&#xff0c;有一海&#xff0c;稱為“滄海”。滄海對面&#xff0c;就是仙家佛地。凡是能渡過滄海到達彼岸的人&#xff0c;就能立地成佛&#xff0c;修成正果。 于是&#xff0c;許許多多的人千里迢迢趕來&#xff0c;或乘帆船&#xff0c;或乘木筏&#xff0c;紛紛…

軟件架構演進

傳統架構到分布式架構詳解 軟件架構演進軟件架構的發展經歷了從單體架構、垂直架構、SOA架構到微服務架構的過程&#xff0c;博客里寫到了這四種架構的特點以及優缺點分析&#xff0c;個人學習之用&#xff0c;僅供參考&#xff01; 1.1.1 單體架構 特點&#xff1a;1、所有的…

hadoop0.20.0第一個例子

這是Hadoop學習全程記錄第2篇&#xff0c;在這篇里我將介紹一下如何在Eclipse下寫第一個MapReduce程序。 新說明一下我的開發環境&#xff1a; 操作系統&#xff1a;在windows下使用wubi安裝了ubuntu 10.10 hadoop版本&#xff1a;hadoop-0.20.2.tar.gz Eclipse版本&…

IDEA 修改JavaWeb的訪問路徑

問題描述 對于我這個剛剛使用IDEA不久的新手來說&#xff0c;能夠正常運行就不錯了,不過到了后面&#xff0c;可能會覺得IDEA給你分配的默認訪問路徑很不順手&#xff0c;比如訪問的時候需要通過: http://localhost:8080/web_war_exploded/ 來訪問&#xff0c;對于web_w…

防撞庫基本要求

專用安全要求 口令要求 設計要求說明 要求 是否滿足 密碼長度至少 8位字符&#xff0c;密碼復雜性要求至少包含以下4種類別中的2種&#xff1a;大寫字母、小寫字母、數字、特殊符號 必選 滿足 系統應具備對口令強度檢測的能力&#xff0c;并對用戶進行提示&#xff08;盡量不要…

odoo10 繼承(擴展)、模塊數據

一&#xff1a;繼承 在不改變底層對象的時候添加新的功能——這是通過繼承機制來實現的&#xff0c;作為在現有對象之上的修改層&#xff0c;這些修改可以發生在所有級別&#xff1a;模型&#xff0c;視圖和業務邏輯。不是直接修改現有模塊&#xff0c;而是創建一個新模塊以添加…

做一個vue的todolist列表

<template><div id"app"><input type"text" v-model"todo" ref"ip"/><button click"add()">新增</button><br/><br/><hr/><ul><li v-for"(item,key) in li…

hadoop+hive-0.10.0完全分布式安裝方法

hadoophive-0.10.0完全分布式安裝方法 1、jdk版本&#xff1a;jdk-7u60-linux-x64.tar.gz http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html 2、hive版本&#xff1a;hive-0.10.0.tar.gz https://archive.apache.org/dist/hive/hive-0…

關于gitgithub的操作

先馬克&#xff0c;回頭細看&#xff0c;然后整理一下 https://linux.cn/article-4292-1.html轉載于:https://www.cnblogs.com/mengjie1001/p/10076530.html

一種解決 MacBook 里的 App Store 無法登錄的問題

剛剛買回來的 2018 款帶有 touchbar 的 MacBook Pro 15 inc 在用 App Store 安裝 app 時一直無法登錄成功&#xff08;網絡鏈接都是好的&#xff09;&#xff0c;導致軟件都無法更新&#xff0c;折騰了挺一會的。 后來發現是要退出設置里的 iCloud 登錄&#xff0c;然后重新登錄…

第二次沖刺

1、今日各個成員的問題 組員問題張晉誌對mui的API看得不是很懂&#xff0c;無法順利的使用袁慶杰基礎不牢,編寫困難周建峰eclipse沒法創建web項目&#xff0c;按照網上的方法&#xff0c;check for updates 和 install new software 之后也沒用許家燁給單一功能知道如何實現但項…