datatables+json+ajax以json輸出和刪除
直接上乾貨:
首先:引入datatables.js和jquery.js和bootstrap.jsp等一些檔案:
如:
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="datatables-plugins/dataTables.bootstrap.css" rel="stylesheet">
<link href="datatables-responsive/dataTables.responsive.css" rel="stylesheet">
<script src="vendor/jquery/jquery.min.js"></script>
<script src="datatables/js/jquery.dataTables.min.js"></script>
<script src="datatables-plugins/dataTables.bootstrap.min.js"></script>
<script src="datatables-responsive/dataTables.responsive.js"></script>
1.html
2.javascript<div class="row"> <div class="col-lg-12"> <div class="panel panel-default"> <div class="panel-body"> <table class="table table-bordered" id="ht-dataTables"> <thead> <tr> <th>id</th> <th>aaa</th> <th>bbb</th> <th>ccc</th> <th>ddd</th> <th>eee</th> </tr> </thead> </table> <!-- /.table-responsive --> </div> <!-- /.panel-body --> </div> <!-- /.panel --> </div> <!-- /.col-lg-12 --> </div>
<script type="text/javascript"> $(function () { //提示資訊 var lang = { "sProcessing": "處理中...", "sLengthMenu": "每頁 _MENU_ 項", "sZeroRecords": "沒有匹配結果", "sInfo": "當前顯示第 _START_ 至 _END_ 項,共 _TOTAL_ 項。", "sInfoEmpty": "當前顯示第 0 至 0 項,共 0 項", "sInfoFiltered": "(由 _MAX_ 項結果過濾)", "sInfoPostFix": "", "sSearch": "搜尋:", "sUrl": "", "sEmptyTable": "表中資料為空", "sLoadingRecords": "載入中...", "sInfoThousands": ",", "oPaginate": { "sFirst": "首頁", "sPrevious": "上頁", "sNext": "下頁", "sLast": "末頁", "sJump": "跳轉" }, "oAria": { "sSortAscending": ": 以升序排列此列", "sSortDescending": ": 以降序排列此列" } }; //初始化表格 var table = $("#ht-dataTables").dataTable({ language:lang, //提示資訊 autoWidth: false, //禁用自動調整列寬 stripeClasses: ["odd", "even"], //為奇偶行加上樣式,相容不支援CSS偽類的場合 processing: true, //隱藏載入提示,自行處理 serverSide: true, //啟用伺服器端分頁 searching: false, //禁用原生搜尋 orderMulti: false, //啟用多列排序 order: [], //取消預設排序查詢,否則複選框一列會出現小箭頭 renderer: "bootstrap", //渲染樣式:Bootstrap和jquery-ui pagingType: "simple_numbers", //分頁樣式:simple,simple_numbers,full,full_numbers columnDefs: [{ "targets": 'nosort', //列的樣式名 "orderable": false //包含上樣式名‘nosort'的禁止排序 }], ajax: function (data, callback, settings) { //封裝請求引數 var param = {}; param.limit =data.length;//頁面顯示記錄條數,在頁面顯示每頁顯示多少項的時候 param.start = data.start;//開始的記錄序號 param.page = (data.start / data.length)+1;//當前頁碼 //ajax請求資料 $.ajax({ type: "GET", url: "tradeRecord_query", cache: false, //禁用快取 data: param, //傳入組裝的引數 dataType: "json", success: function (result) { //封裝返回資料 var returnData = {}; returnData.draw = data.draw;//這裡直接自行返回了draw計數器,應該由後臺返回 returnData.recordsTotal = result.recordsTotal;//返回資料全部記錄 returnData.recordsFiltered = result.recordsFiltered;//後臺不實現過濾功能,每次查詢均視作全部結果 returnData.data = result.data;//返回的資料列表 //console.log(returnData); //呼叫DataTables提供的callback方法,代表資料已封裝完成並傳回DataTables進行渲染 //此時的資料需確保正確無誤,異常判斷應在執行此回撥前自行處理完畢 callback(returnData); } }); }, //列表表頭欄位 columns: [ { "data": "id" ,"orderable":false}, { "data": "transType" }, { "data": "description" }, { "data": "engDisplay" }, { "data": "chinDisplay" }, { "data": null, "className": "center", "defaultContent": '<button type="button" id="editrow" data-toggle="modal" class="btn btn-outline btn-circle btn-sm purple"><i class="fa fa-edit"></i></button> <button id="delrow" class="btn btn-outline btn-circle dark btn-sm black"><i class="fa fa-trash-o"></i></button>' } ] }).api(); //此處需呼叫api()方法,否則返回的是JQuery物件而不是DataTables的API物件 }); //表資料刪除 $('#ht-dataTables').on( 'click','button#delrow',function (even) { even.preventDefault;//方法阻止元素髮生預設的行為(例如,當點選提交按鈕時阻止對錶單的提交)。 if(confirm("確定刪除該資訊?") == false){ return; }else{ /* 得到當前物件的值 */ var data = $("#ht-dataTables").DataTable().row( $(this).parents('tr') ).data(); $.ajax({ url: 'tradeRecord_delete', type: 'POST', dataType: 'json', data: {"id":data.id}, /* success是指後臺資料庫的表麼?如果是,先將success表中相關的資料封裝在list裡面,然後將list轉為json資料格式的字串返回到前臺。如果你用的是jQuery的ajax方法,那麼記得在前臺接受的時候一定要指定資料接受格式為json,否則你得到是一個json的字串,不是一個json的物件 */ success: function(data){ alert(data.success); if (data.success =="success" ){ alert('刪除成功!'); start = $("#ht-dataTables").dataTable().fnSettings()._iDisplayStart;//從第幾行開始顯示資料 total = $("#ht-dataTables").dataTable().fnSettings().fnRecordsDisplay();// alert(start); alert(total); window.location.reload(); if((total-start) == 1){ if (start > 0) { $("#ht-dataTables").dataTable().fnPageChange( 'previous', true);//已回到上一頁中 /* 注意$("#sorting-advanced").dataTable().fnPageChange( ‘previous‘); 是不行的,必需進行重新整理,否則頁面中顯示的iDisplayStart會從cookie中取得,還是刪除前的iDisplayStart */ } } } }, error:function(data){ alert(data.success); console.log(data); alert('伺服器無響應,請聯絡管理員!'); } }) } }); </script>
3.controller
@Override
@RequestMapping(value="tradeRecord_query",method=RequestMethod.GET)//list
@ResponseBody
public String beanList(int limit,int start,int page,HttpSession httpSession, Model m) {
System.out.println(limit+"--->"+start+"--->"+page);
@SuppressWarnings("unchecked")
List<TransactionTypeBean> list = (List<TransactionTypeBean>) this.service.find("beanList", "TransactionTypeBean", null);
System.out.println(start+"--->"+(start+limit)+"--->"+list.size());
System.out.println(list.get(0).getId()+"-------->");
List<TransactionTypeBean> pageList=null;
HashMap<String,Object> map = new HashMap<String,Object>();
if(list.size()<start+limit){
pageList=list.subList(start, list.size());
}else{
pageList=list.subList(start, (start+limit));
}
System.out.println(pageList.size()+"------->");
map.put("recordsTotal", list.size());
map.put("recordsFiltered", list.size());
map.put("data", pageList);
String s = this.jsonUtil.toJson(map);
return s;
}
@Override
@ResponseBody
@RequestMapping(value="tradeRecord_delete",method=RequestMethod.POST)//delete
public String beanDelete(TransactionTypeBean bean, HttpSession httpSession, Model m) throws Exception {
System.out.println(bean.getId()+"----------->");
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("success", "success");
try {
service.delete(bean);
} catch (Exception e) {
e.printStackTrace();
}
String data = this.jsonUtil.toJson(map);
return data;
}
有什麼疑問,和建議大家可以留言討論。
相關推薦
datatables+json+ajax以json輸出和刪除
直接上乾貨: 首先:引入datatables.js和jquery.js和bootstrap.jsp等一些檔案: 如: <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <lin
java痛苦學習之路[十二]JSON+ajax+Servlet JSON資料轉換和傳遞
1、首先客戶端需要引入 jquery-1.11.1.js 2、其次javaweb工程裡面需要引入jar包 [commons-beanutils-1.8.0.jar、commons-collections-3.1.jar、commons-lang-2.4.jar、commo
web前端之Ajax遍歷json後對每一條資料進行相應的修改和刪除
web前端之ajax遍歷json後對每一條資料進行相應的修改和刪除 function serviceUser(){ $('.ergodicPersonList').remove(); $.ajax({ url: "/b
通過在jquery中添加函數發送ajax請求來加載數據庫數據,以json的格式發送到頁面
this -1 結果集 ont js插件 顯示 可用 cti pat 通過在jquery中添加函數發送ajax請求來加載數據庫數據,以json的格式發送到頁面 從數據庫中查詢倉庫信息,顯示在下拉菜單中: 首先,引入js插件,這裏使用jquery-1.8.3.js &
JS和PHP之間以JSON格式傳輸
ray nbsp 單例 補充 接收 文本 語言 ext tex Json是一種的輕量級文本數據交換格式。它獨立於編程語言,可以用於在不用的編程語言之間進行數據的交互。 下面簡單例舉二個使用JSON進行數據通信的例子。 第一個例子: //Javascript以ajax發送數
Servlet如何獲取ajax中以json格式傳入的資料
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
類的方法以json格式輸出
1.新增model層,在model層建立User類 包名:com.huinongtx.demospringboot.model 類名:User 類內容: package com.huinongtx.demospringboot.model; /** * Created by de
python利用psutil模組獲取計算機系統資源並以json格式輸出
python3.6,windows下測試 一: 需要安裝psutil模組 easy_install.exe psutil 或者用下載psutil安裝包用pip install psutil命令安裝 psutil模組的資訊可參考: &nb
Android 以JSON格式儲存和載入本地檔案
本章主要講把一個物件以json格式儲存在沙盒中,然後又從沙盒中將json資料讀取出來。 每個應用的沙盒目錄都是裝置/data/data目錄的子目錄,且預設以應用包命名。例如,CriminalIntent應用的沙盒目錄全路徑為:/data/data/com.bi
java後臺以json字串的形式,將資料返回給$.ajax的問題總結
再利用$.ajax時,向後臺傳送資料,後臺拼接成字串的json返回給前臺頁面接收不到相應的值 後臺程式碼如下: @RequestMapping("/getPhonesById") public void getPhonesById(HttpServletReques
ajax query,後臺和Jsp頁面,使用json互動
加粗樣式 public void checkAccount(HttpServletRequest request,HttpServletResponse response) throws IOException { String account = request.get
json動態新增屬性和刪除屬性
轉自:https://blog.csdn.net/qq_36922927/article/details/78927394 1 新增屬性: var myObject={"name":"張三”} 如何新增屬性age,得到下面的效果呢? &
Django & JavaScript 用Ajax實現JSON數據的請求和響應
UNC else admin ros cat nbsp ejs -c var 【描述】 1.Server端定義了兩個字段:Article.title 和 Article.content 2.客戶端用JavaScript Ajax異步加載請求服務器的JSON數據 效果是點擊按
js 獲取excel檔案並以json形式輸出
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <
golang: 把sql結果集以json格式輸出
程式碼出處:http://stackoverflow.com/questions/19991541/dumping-mysql-tables-to-json-with-golang func getJSON(sqlString string) (string, error)
ajax獲取後臺資料,頁面Json資料按照json格式化輸出
樣式效果圖: 2.頁面程式碼: //查詢出對應的原始碼進行展示 function querySource(label) { var url = base_path+"console/cfg/querySource"; $.ajax({ url:
jquery拼接ajax 的json和字串拼接
jquery拼接字串ajax <form id="myForm" action="#"> <input name="name"/> <input name="age"/> <input ty
Servlet如何獲取ajax中以json格式傳入的資料?
$('#but_json_json').click(function(){ var j ={"name":"王","password":123456}; $.ajax(
Ajax傳輸Json和xml資料
ajax傳輸xml資料:只要把資料封裝成xml格式就可以實現傳輸,前臺js用responseXML接收xml引數,後臺讀取用流和dom4j來解析 前臺頁面 <%@ page language="java" import="java.util.*"
go語言中beego框架資料輸出和返回json詳解
beego框架中資料輸出 1.直接輸出字串 beego.Controller.Ctx.WriteString(“字串”) func (ctx *Context) WriteString(content string) { ctx.ResponseWrit