日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JQuery Datatables editor 在编辑前刷新数据

發布時間:2025/3/11 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JQuery Datatables editor 在编辑前刷新数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

在同一時間,可能很多人在編輯修改同一數據,這會導致在一個人還在在修改的過程中另一人在完成了修改并保存了數據。editor在button插件的擴展中可以有效的緩解這個問題:自定義一個編輯按鈕,此編輯按鈕實現 點擊按鈕后,首先刷新數據,然后再彈出模態框的功能。詳細信息點擊這里查看官網說明


使用效果如下圖所示:

點擊刷新并編輯 按鈕,按鈕會有一個加載狀態的動畫效果,此刻正在刷新數據,刷新完成后彈出編輯框?。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??


JS代碼如下圖所示:

$.fn.dataTable.ext.buttons.editRefresh = {extend: 'edit',text: '刷新并編輯',action: function (e, dt, node, config) {this.processing(true);var selectedRowsIds = dt.rows({ selected: true }).ids();//獲取每行在前端自動生成的id數組var selectedRows = dt.rows({ selected: true }).data();//獲取選中數據var length = selectedRows.length;//得到選中數據的數組的長度var selectedRowsNames = "";for (var i = 0; i < length; i++) {selectedRowsNames += selectedRows[i].Name;if (i != length - 1){selectedRowsNames += ",";}}var that = this;var url = config.editor.ajax().edit.url;//獲得editor中更新出操作的URL$.ajax({url: url,type: 'post',dataType: 'json',data: {refresh: 'rows',names:selectedRowsNames,ids: selectedRowsIds.toArray().join(','),},success: function (json) {// On success update rows with datafor (var i = 0 ; i < json.data.length ; i++) {dt.row('#' + json.data[i].DT_RowId).data(json.data[i]);}dt.draw(false);// And finally trigger editing on those rows$.fn.dataTable.ext.buttons.edit.action.call(that, e, dt, node, config);}});}};

然后在datatable 的 button屬性中添加一個按鈕即可,代碼如下圖所示:

{ extend: 'editRefresh', editor: editor },

?說明:

? 1、在ajax中需要將每行的id (datatable默認的是存id字段是DT_RowId?) 傳到后端,因為在成功回調函數里,會根據id刷新數據。本文中id是在前端動態生成的,單獨返回給后端沒什么用,必須加上另外一個屬性,本文中我隨便取了Name這個屬性。在實際項目中可以自定義id,并且用那些前后端都能識別的字符串,那樣就只需要傳一個id到后端就可以了。

?

?

總結

以上是生活随笔為你收集整理的JQuery Datatables editor 在编辑前刷新数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。