Bootstrap框架----DataTables列表增加備註功能
我們在上一章節中已經學習了DataTables在BootStrap框架中的使用方式和初始化。
Bootstrap框架——DataTables列表示例
本章學習DataTables列表增加備註功能,可以通過點選按鈕後編輯備註傳送到後臺儲存入庫。
官網例子參考
環境準備
最終效果
實現方案
Java程式碼
新增RemarkLog實體
package com.test.domain.entity;
import java.io.Serializable;
import java.util.Date;
/**
* 備註記錄
*/
public class RemarkLog implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Date datetime; // 記錄日期
private String operator; // 操作員
private String remark; // 備註
public RemarkLog(){}
public RemarkLog(String remark, String operator) {
this(remark, operator, new Date());
}
public RemarkLog(String remark, String operator, Date datetime) {
this.operator = operator;
this.remark = remark;
this.datetime = datetime;
}
public Date getDatetime() {
return datetime;
}
public void setDatetime(Date datetime) {
this .datetime = datetime;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
Contacts增加remarks欄位和id欄位
package com.test.domain.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 聯絡人
*
*
*/
public class Contacts {
private String id;// 姓名
private String name;// 姓名
private String tel;// 電話
private int gender;// 性別
private Date creatTime;//建立時間
private List<RemarkLog> remarks = new ArrayList<RemarkLog>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public Date getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public List<RemarkLog> getRemarks() {
return remarks;
}
public void setRemarks(List<RemarkLog> remarks) {
this.remarks = remarks;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
IndexController中新增
@RequestMapping("/remark-add")
@ResponseBody
public Object addRemark(String id, String remark) {
if (StringUtils.isEmpty(id) || StringUtils.isEmpty(remark)) {
return JSONResult.error("未找到資料");
}
return addRemark("操作人", id, remark)
? JSONResult.success("成功")
: JSONResult.error("失敗");
}
public boolean addRemark(String operator, String id, String remark) {
return mongoTemplate.updateFirst(Query.query(Criteria.where("_id").is(id)),
new Update().push("remarks", new RemarkLog(remark, operator)).set("updateDate", DateUtils.now()),
Contacts.class).getN() > 0;
}
JSONResult實體
package com.test.web.message.response;
/**
* JSONResult
* 標準化的JSON響應
*
* <pre>
* {@link JSONResult#success(Object)}
* {@link JSONResult#error(String)}
* </pre>
*
*
*/
public class JSONResult {
/**
* 成功的程式碼
*/
public static final int CODE_SUCCESS = 0;
/**
* 錯誤的程式碼,可根據錯誤型別進行詳細分類
*/
public static final int CODE_ERROR = -1;
/**
* 空白的成功響應
*/
public static final JSONResult RESULT_SUCCESS_NO_DATA = new JSONResult(CODE_SUCCESS, null, null);
private int code;
private String msg;
private Object data;
/**
* 建立一個成功的響應
*
* @param data
* @return
*/
public static JSONResult success(Object data) {
return new JSONResult(CODE_SUCCESS, null, data);
}
/**
* 建立一個錯誤的響應
*
* @param msg
* @return
*/
public static JSONResult error(String msg) {
return new JSONResult(CODE_ERROR, msg, null);
}
/**
* @param code
* @param msg
* @param data
*/
public JSONResult(int code, String msg, Object data) {
this.code = code;
this.setMsg(msg);
this.data = data;
}
public int getCode() {
return code;
}
public JSONResult setCode(int code) {
this.code = code;
return this;
}
public Object getData() {
return data;
}
public JSONResult setData(Object data) {
this.data = data;
return this;
}
public String getMsg() {
return msg;
}
public JSONResult setMsg(String msg) {
this.msg = msg;
return this;
}
}
Jsp程式碼
html中增加對應列
<th width="8%" class="desktop">備註</th>
js
columns列中增加程式碼
{
"data": "id",
"class": "text-center",
"render": function (id, type, row, position) {
return '<span>' + (row.remarks.length ? row.remarks[row.remarks.length - 1].remark : '') + '</span> <a href="javascript:;" class="glyphicon glyphicon-pencil edit-comment" id="' + id + '"/>';
}
},
dataTables初始化方法後面增加點選事件
.on('click', '.edit-comment', function () {
var $span = $(this).hide().prev().hide();
var $input = $('<input type="text" class="form-control input-simple input-remark" name="remark"/>').val('');
$(this).before($input);
$input.focus(); // 讓文字框獲取焦點
}).on('keypress blur', '.input-remark', function (e) {
if (e.type == 'keypress') {
if (e.keyCode == 13) $(this).blur(); // 回車也觸發失焦事件
return;
}
var $input = $(this);
var endEdit = function (remark) {
remark ? $input.prev().text(remark).show() : $input.prev().show();
$input.next().show();
$input.remove();
};
if (!$input.val()) {
return endEdit();
}
$.ajax({
url: "/remark-add",
type: "POST",
data: {
id: $input.next().attr("id"),
remark: $input.val()
},
success: function (res) {
if (res.code) return alert('更新失敗');
endEdit($input.val());
},
error: function (err) {
alert('更新失敗: ' + err.status + ' ' + err.statusText);
}
});
});
相關推薦
Bootstrap框架----DataTables列表增加備註功能
我們在上一章節中已經學習了DataTables在BootStrap框架中的使用方式和初始化。 Bootstrap框架——DataTables列表示例 本章學習DataTables列表增加備註功能,可以通過點選按鈕後編輯備註傳送到後臺儲存入庫。 官網例子參考
Bootstrap框架----DataTables列表摺疊列
$(document).ready(function() { $('.datepicker').datetimepicker({ language : 'zh-CN', autoclose : true }); refreshTable();//重
NET快速資訊化系統開發框架 V3.2 -> “使用者管理”主介面使用多表頭展示、增加列印功能
RDIFrameowrk.NET 使用者管理是使用非常頻繁的模組,由於需要展示的欄位比較多,以前的展示方式顯得不是太規範,現3.2版本使用者管理主介面進行了全新的設計,資料列表展示使用了Dev家族全新的GridControl控制元件。對列的展示進行使用了多表頭展示的方式,同時新增了列印使用者
基於Metronic的Bootstrap開發框架--工作流模塊功能介紹
表單 arp 一個 修改 審批表 因此 之前 metronic bootstra 在很早之前的隨筆裏面,已經介紹了WInform框架中工作流模塊的功能,不過由於工作流模塊中界面處理部分比較麻煩,一直沒有在Bootstrap框架中進行集成,最近由於項目的關系,花了不少精力,把
NET快速資訊化系統開發框架 V3.2 -> “使用者管理”主介面使用多表頭展示、增加列印功能
private void LinkOnCreateMarginalHeaderArea(object sender, CreateAreaEventArgs e) { string titile = "使用者列表"; P
Python Web框架Django 入門(二)——增加APP功能模組
建立第一個APP專案 上一篇使用 django-admin.py 建立了HelloWorld 專案,在HelloWorld目錄下新增一個APP模組,命令如下: python manage.py startapp app 執行建立命令後文件目錄如下圖: 目錄說
利用VUE框架,實現列表分頁功能
原創作品轉載請註明出處 先來看一下效果圖: 功能描述: 1. 點選頁面序號跳轉到相應頁面; 2. 點選單左/單右,向後/向前跳轉一個頁面; 3. 點選雙左/雙右,直接跳轉到最後一頁/第一頁; 3. 一次顯示當前頁面的前三個與後三
簡單響應式Bootstrap框架中文官網頁面模板
str 頁面 nbsp 中文 技術分享 http images bsp ots 鏈接:http://pan.baidu.com/s/1o7MQ6RC 密碼:kee5簡單響應式Bootstrap框架中文官網頁面模板
bootstrap-自定義列表組
bootstrap-自定義列表組1.運行效果如圖所示2.實現代碼如下<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible
【JAVAEE學習筆記】hibernate04:查詢種類、HQL、Criteria、查詢優化和練習為客戶列表增加查詢條件
沒有 arrays getpara tex response 寫法 sum exceptio 提高 一、查詢種類 1.oid查詢-get 2.對象屬性導航查詢 3.HQL 4.Criteria 5.原生SQL 二、查詢-HQL語法 //學習HQL語法 public
整合django和bootstrap框架
word log ons 替換 shee head base 版本 fin 環境: python版本:2.7.8 django版本:1.7.1 bootstrap版本:3.3.0 首先github上面有兩個開源的項目用來整合django和bootstrap. ht
bootstrap框架 - jquery庫 - 引用地址
otc pan -s pac boot http trap strong 3.2 bootstrap框架: //netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css jquery庫: http:/
bootstrap筆記之——列表
gin clear 方式 而且 block 集中 spa ots hit 一、列表 1、無序列表<ul> 給無序列表添加一個類名“.list-unstyled”,這樣就可以去除默認的列表樣式的風格。除了項目編號之外,還將列表默認的左邊內距也清0了。
【轉】Bootstrap 框架 柵格布局系統底層設計原理
auto open 分析 大致 感覺 copy 效果 布局 str 如果你是初次接觸Bootstrap,你一定會為它的柵格布局感到敬佩。事實上,這個布局系統提供了一套響應式的布局解決方案。 既然這麽好用,那他是如何用CSS來實現的呢? 我特意去Bootstrap官方下載了源
BootStrap框架選擇
clean ash lte sta 點擊 -a ring 介紹 board 1. mentronic4.0 效果非常好,但是商業版收費 下面是一個.net的系統,基於mentronic4.0開發,感覺不錯 http://www.cnblogs.com/guozi
Springmvc+mybatis+restful+bootstrap框架整合
ssa 存儲 strong lan 介紹 int boot 客戶端 ogr Spring MVC工作流程圖 圖一 圖二 Spring工作流程描述 1. 用戶向服務器發送請求,請求被Spring 前端控制Servelt DispatcherServlet捕
在Bootstrap框架中,form-control的效果
bootstrap 使用 ots ron 效果 如果 成了 control 就是 在Bootstrap框架中,通過定制了一個類名`form-control`,也就是說,如果這幾個元素使用了類名“form-control”,將會實現一些設計上的定制效果。 1、寬度變成了100
Tornado框架實現圖形驗證碼功能
tor length turn 黑客 body world 工作流 params fun 圖形驗證碼是項目開發過程中經常遇到的一個功能,在很多語言中都有對應的不同形式的圖形驗證碼功能的封裝,python 中同樣也有類似的封裝操作,通過繪制生成一個指定的圖形數據,讓前端HTM
Bootstrap框架
img 大小寫 head thumb 鏈接 container 媒體查詢 直接 api Bootstrap介紹 Bootstrap是Twitter開源的基於HTML、CSS、JavaScript的前端框架。 它是為實現快速開發Web應用程序而設計的一套前端工具包。 它支持響
封裝selenium自動化框架中的截圖功能
odi cas cli 異常 函數 截圖 none __init__ 註意 對selenium自帶的截圖功能進行封裝: 以下為封裝的代碼,自定義一個.py文件即可,圖片路徑自己設置一個。 1 #coding:utf-8 2 3 class S