summer框架做增刪改查-總結
1、datatable的顯示
function initTable(){ $('#wzcbkList').dataTable().fnDestroy(); $('#wzcbkList').dataTable({ "ordering": false,//排序 "searching": false,//表格自帶搜尋欄 "serverSide": true,//非同步請求必須設定 'bPaginate': true, //是否分頁 "sPaginationType": "full_numbers", //分頁樣式 //"bLengthChange": false, //是否啟用設定每頁顯示記錄數 //"iDisplayLength": 20, //預設每頁顯示的記錄數 "aLengthMenu": [10, 25, 50, 100], "bProcessing": true,//是否顯示正在處理的提示 如:設定非同步請求時,是否有等待框 //"sAjaxSource": basePath+'/wz/wzcbk!wzcbkList.action', //伺服器會預設使用cookie;使用該引數後,請求的每個連線都是新連線 "bStateSave": false, //儲存狀態到cookie ******很重要 , 當搜尋的時候頁面一重新整理會導致搜尋的消失。使用這個屬性設定為true就可避免了 "ajax": { url: basePath+'/wz/wzcbk!wzcbkList.action', type:"post", data: { "cbkmc": $('#cbkmc').combobox('getValue'), "cbkfzr": $('#cbkfzr').val() } }, "columnDefs":[ {"targets": [0],"visible": true,"render": function (data, type,row) { return "<input type=\"checkbox\" value=\""+data+"\">"; } }, {"targets": [7],"visible": true,"render": function (data, type,row) { return formatDate(new Date(data),"yyyy-MM-dd"); } } ], "columns": [ { "data":"cbkid"}, { "data": "cbkmc" }, { "data": "cbkkc" }, { "data": "cbkfzr" }, { "data": "lxdh" }, { "data": "lxdz" }, { "data": "email" }, { "data": "addtime" } ], "createdRow": function( row, data, dataIndex ) { $('td input[type="checkbox"]', row).iCheck({ checkboxClass: 'icheckbox_minimal-grey', radioClass: 'iradio_minimal-grey', increaseArea: '0%' // optional }); } });
難點:1)、資料分頁,後臺傳的json格式不對,需要注意:
dataMap.put("draw", draw);//分辨哪個頁面請求
dataMap.put("recordsTotal", total);//(過濾的條數)
dataMap.put("recordsFiltered", total); //分頁傳的引數,總條數,會自動根據當前頁分從幾到幾
dataMap.put("data", wzcbks);
2)、查詢下拉框的取不l值:
//有初始化的資料最好放在上面,防止資料未載入完 $('#cbkmc').combobox({ url : basePath+'/wz/wzcbk!queryWzcbk.action', valueField : 'cbkid', textField : 'cbkmc' }); $('#cbkmc').combobox('getValue')
2、檢視資料
var ids = getSelected($(tableId));
1) 前臺 獲取不了ids,主要是因為checkbox內未賦value值,data為空
"columnDefs":[
{"targets": [0],"visible": true,"render": function (data, type,row) {
return "<input type=\"checkbox\" value=\""+data+"\">";
}
},
{"targets": [7],"visible": true,"render": function (data, type,row) {
return formatDate(new Date(data),"yyyy-MM-dd");
}
}
]
2) view頁面顯示不了資料,注意後臺傳的json格式,{"result":"success","data":{"cbkid":"969","cbkkc":"222"}
// 這裡面的接收的id是indexBacend頁面拼的id
String id = getRequest().getParameter("id");
wzcbk = wzcbkService.selectByPrimaryKey(id);
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("data", wzcbk);
dataMap.put("result","success");
String json = mapper.writeValueAsString(dataMap);
log.info("查詢的物資儲備庫列表資料:"+json);
responseText(json);
3、刪除資料
糾結在於T_DEMO_WZCBK_SqlMap.xml內的sql語句,更改deltye來確定資料庫端的假刪除
<update id="updateByPrimaryKeyWithBLOBs" parameterClass="com.itic.appbase.demo.persistence.model.WzCbk" >
update T_DEMO_WZCBK
set
CBKMC = #cbkmc#,
CBKFZR = #cbkfzr#,
LXDH = #lxdh#,
LXDZ = #lxdz#,
EMAIL = #email#,
ADDTIME = #addtime#,
DELTYPE = #deltype#
where CBKID = #cbkid#
</update>
4、 修改資料
首先跟檢視一樣獲取某個id的一條資料並顯示在前端,在更改資料
5、總結
1)、資料庫的表設計不合理:
欄位通常設定為NVARCHAR2(20);
取值範圍根據實際情況來定;
id記得設定成為navchar(20);
date可以設定成Date也可以設定成為navchar(20);
具備AddTime欄位;
具備備註和多餘欄位
2)、重新建表,根據gen-mybatis生成dao和service時,要淡定地修改自己之前改動的地方