嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

bootstrap table實現(xiàn)x-editable的行單元格編輯及解決數(shù)據(jù)Empty和支持多樣式

2018-9-6    seo達人

如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

前言

  • 最近在研究bootstrap table的表格的單元格編輯功能,實現(xiàn)點擊單元格修改內(nèi)容,其中包括文本(text)方式修改,下拉選擇(select)方式修改,日期(date)格式修改等。
  • 本文著重解決x-editable編輯的數(shù)據(jù)動態(tài)添加和顯示數(shù)據(jù)為Empty的問題,還有給表格單元格的內(nèi)容設置多樣式,使得顯示多樣化。
  • 由于官網(wǎng)給的demo的數(shù)據(jù)都是html文件里寫好的,select類型的不能動態(tài)添加(所以網(wǎng)上的大多都是官網(wǎng)的類似例子,本篇博客就是在這種情況下以自己的經(jīng)驗分享給大家,有問題可以留言哦),一旦動態(tài)添加就會出現(xiàn)顯示數(shù)據(jù)為Empty,我表格原本是有數(shù)據(jù)的,但是一用這個插件就把數(shù)據(jù)變成Empty了,這可不是我想要的,所以筆者就自行解決了這個問題。

對比網(wǎng)上的例子

  • 比如以下這種數(shù)據(jù)不是Empty的例子,但是是由于在html中寫死了數(shù)據(jù)(awesome),不適合動態(tài)添加。
<a href="#" id="username" data-type="text" data-pk="1">awesome</a> <script> $(function(){ $('#username').editable({
        url: '/post',
        title: 'Enter username' });
}); </script>
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 另外一種就是使用bootstrap table動態(tài)添加的,但是select類型就會出現(xiàn)數(shù)據(jù)為Empty的情況。
$('#db_dependences').bootstrapTable({
        method:'POST',
        dataType:'json',
        contentType: "application/x-www-form-urlencoded",
        cache: false,
        striped: true, //是否顯示行間隔色 sidePagination: "client", //分頁方式:client客戶端分頁,server服務端分頁(*) showColumns:true,
        pagination:true,
        minimumCountColumns:2,
        pageNumber:1, //初始化加載第一頁,默認第一頁 pageSize: 10, //每頁的記錄行數(shù)(*) pageList: [10, 15, 20, 25], //可供選擇的每頁的行數(shù)(*) uniqueId: "id", //每一行的唯一標識,一般為主鍵列 showExport: true,                    
        exportDataType: 'all',
        exportTypes:[ 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'], //導出文件類型 onEditableSave: function (field, row, oldValue, $el) { $.ajax({
                success: function (data, status) { if (status == "success") {
                        alert("編輯成功");
                    }
                },
                error: function () { alert("Error");
                },
                complete: function () { }
            });
        },
        data: [{
            id: 1,
            name: '張三',
            sex: '男',
            time: '2017-08-09' }, {
            id: 2,
            name: '王五',
            sex: '女',
            time: '2017-08-09' }, {
            id: 3,
            name: '李四',
            sex: '男',
            time: '2017-08-09' }, {
            id: 4,
            name: '楊朝來',
            sex: '男',
            time: '2017-08-09' }, {
            id: 5,
            name: '蔣平',
            sex: '男',
            time: '2017-08-09' }, {
            id: 6,
            name: '唐燦華',
            sex: '男',
            time: '2017-08-09' }],
        columns: [{
            field: 'id',
            title: '序號' }, {
            field: 'name',
            title: '姓名',
            editable: {
                type: 'text',  
                validate: function (value) { if ($.trim(value) == '') { return '姓名不能為空!';  
                    }  
                }
            } 
        }, {
            field: 'sex',
            title: '性別',
            editable: {
                type: 'select',
                pk: 1,
                source: [
                    {value: 1, text: '男'},
                    {value: 2, text: '女'},
                ]
            }
        },  {
            field: 'time',
            title: '時間',
            editable: {
                type: 'date',
                format: 'yyyy-mm-dd',    
                viewformat: 'yyyy-mm-dd',    
                datepicker: {
                    weekStart: 1 }
            } 
        }]
    });
    
  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101

結(jié)果圖如下:

這里寫圖片描述

由于開源,很快就找到原因,由于formatter我們沒有寫這個function導致調(diào)用的默認的formatter,默認的沒有把表格的值傳入html中,bootstrap-table-editable.js源碼如下,初始定義_dont_edit_formatter為false,我們沒有實現(xiàn)noeditFormatter的function就會執(zhí)行第二個if語句,其中的標簽中沒有對內(nèi)容賦值,導致最后顯示結(jié)果為它默認的Empty:

column.formatter = function(value, row, index) { var result = column._formatter ? column._formatter(value, row, index) : value;

                $.each(column, processDataOptions);

                $.each(editableOptions, function(key, value) {
                    editableDataMarkup.push(' ' + key + '="' + value + '"');
                }); var _dont_edit_formatter = false; if (column.editable.hasOwnProperty('noeditFormatter')) {
                    _dont_edit_formatter = column.editable.noeditFormatter(value, row, index);
                } if (_dont_edit_formatter === false) { return ['<a href="javascript:void(0)"', ' data-name="' + column.field + '"', ' data-pk="' + row[that.options.idField] + '"', ' data-value="' + result + '"',
                        editableDataMarkup.join(''), '>' + '</a>' ].join('');
                } else { return _dont_edit_formatter;
                }

            };
    
  • 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

由于要實現(xiàn)多樣式,則把上面的代碼改變,并在使用的時候?qū)崿F(xiàn)noeditFormatter:function(value){…}就是了。將上面的代碼改為如下(此為我自己改的,你可以根據(jù)自己的需要做修改):

column.formatter = function(value, row, index) { var result = column._formatter ? column._formatter(value, row, index) : value;

                $.each(column, processDataOptions);

                $.each(editableOptions, function(key, value) {
                    editableDataMarkup.push(' ' + key + '="' + value + '"');
                }); var _dont_edit_formatter = false; if (column.editable.hasOwnProperty('noeditFormatter')) { var process = column.editable.noeditFormatter(value, row, index); if(!process.hasOwnProperty('class')){
                        process.class = '';
                    } if(!process.hasOwnProperty('style')){
                        process.style = '';
                    }
                    _dont_edit_formatter = ['<a href="javascript:void(0)"', ' data-name="'+process.filed+'"', ' data-pk="1"', ' data-value="' + process.value + '"', ' class="'+process.class+'" style="'+process.style+'"', '>' + process.value + '</a>' ].join('');
                } if (_dont_edit_formatter === false) { return ['<a href="javascript:void(0)"', ' data-name="' + column.field + '"', ' data-pk="' + row[that.options.idField] + '"', ' data-value="' + result + '"',
                        editableDataMarkup.join(''), '>' + value + '</a>' ].join('');
                } else { return _dont_edit_formatter;
                }

            };
    
  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

結(jié)果如下:

這里寫圖片描述

這里寫圖片描述

然后是bootstrap table的使用js文件,在其中實現(xiàn)noeditFormatter函數(shù)。返回的result必須包含filed和value,class和style可以不需要,class可以額外用其它插件之類,比如badge,style是增加樣式(背景,顏色,字體等)。

$('#db_dependences').bootstrapTable({
        method:'POST',
        dataType:'json',
        contentType: "application/x-www-form-urlencoded",
        cache: false,
        striped: true, //是否顯示行間隔色 sidePagination: "client", //分頁方式:client客戶端分頁,server服務端分頁(*) showColumns:true,
        pagination:true,
        minimumCountColumns:2,
        pageNumber:1, //初始化加載第一頁,默認第一頁 pageSize: 10, //每頁的記錄行數(shù)(*) pageList: [10, 15, 20, 25], //可供選擇的每頁的行數(shù)(*) uniqueId: "id", //每一行的唯一標識,一般為主鍵列 showExport: true,                    
        exportDataType: 'all',
        exportTypes:[ 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'], //導出文件類型 onEditableSave: function (field, row, oldValue, $el) { $.ajax({
                success: function (data, status) { if (status == "success") {
                        alert("編輯成功");
                    }
                },
                error: function () { alert("Error");
                },
                complete: function () { }
            });
        }, //      onEditableHidden: function(field, row, $el, reason) { // 當編輯狀態(tài)被隱藏時觸發(fā) //          if(reason === 'save') { //              var $td = $el.closest('tr').children(); //          //    $td.eq(-1).html((row.price*row.number).toFixed(2)); //          //    $el.closest('tr').next().find('.editable').editable('show'); //編輯狀態(tài)向下一行移動 //          } else if(reason === 'nochange') { //              $el.closest('tr').next().find('.editable').editable('show'); //          } //      }, data: [{
            id: 1,
            name: '張三',
            sex: '男',
            time: '2017-08-09' }, {
            id: 2,
            name: '王五',
            sex: '女',
            time: '2017-08-09' }, {
            id: 3,
            name: '李四',
            sex: '男',
            time: '2017-08-09' }, {
            id: 4,
            name: '楊朝來',
            sex: '男',
            time: '2017-08-09' }, {
            id: 5,
            name: '蔣平',
            sex: '男',
            time: '2017-08-09' }, {
            id: 6,
            name: '唐燦華',
            sex: '男',
            time: '2017-08-09' }, {
            id: 7,
            name: '馬達',
            sex: '男',
            time: '2017-08-09' }, {
            id: 8,
            name: '趙小雪',
            sex: '女',
            time: '2017-08-09' }, {
            id: 9,
            name: '薛文泉',
            sex: '男',
            time: '2017-08-09' }, {
            id: 10,
            name: '丁建',
            sex: '男',
            time: '2017-08-09' }, {
            id: 11,
            name: '王麗',
            sex: '女',
            time: '2017-08-09' }],
        columns: [{
            field: 'id',
            title: '序號' }, {
            field: 'name',
            title: '姓名',
            editable: {
                type: 'text',  
                validate: function (value) { if ($.trim(value) == '') { return '姓名不能為空!';  
                    }  
                }
            } 
        }, {
            field: 'sex',
            title: '性別',
            editable: {
                type: 'select',
                pk: 1,
                source: [
                    {value: 1, text: '男'},
                    {value: 2, text: '女'},
                ],
                noeditFormatter: function (value,row,index) { var result={filed:"sex",value:value,class:"badge",style:"background:#333;padding:5px 10px;"}; return result;
                }
            }
        },  {
            field: 'time',
            title: '時間',
            editable: {
                type: 'date',
                format: 'yyyy-mm-dd',    
                viewformat: 'yyyy-mm-dd',    
                datepicker: {
                    weekStart: 1 },
                noeditFormatter: function (value,row,index) { var result={filed:"time",value:value,class:"badge",style:"background:#333;padding:5px 10px;"}; return result;
                }
            } 
        }]
    });
    
  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143

關于bootstrap table的導出及使用可以看我另外一篇博客

下載和引用

下載x-editable,并如下引用。

<link href="js/bootstrap_above/x-editable-develop/dist/bootstrap-editable/css/bootstrap-editable.css" rel="stylesheet"> <script src="js/bootstrap_above/x-editable-develop/dist/bootstrap-editable/js/bootstrap-editable.js"></script> <script src="js/bootstrap_above/bootstrap-table-develop/dist/extensions/editable/bootstrap-table-editable.js"></script>
    
  • 1
  • 2
  • 3

然后講上訴的一些文件修改添加,就完成了。

另外項目的結(jié)果展示

這里寫圖片描述

這里寫圖片描述

其中的樣式都是自行在x-editable的基礎上添加的。如配置出問題,以下是源碼鏈接。

藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 平面設計服務


日歷

鏈接

個人資料

藍藍設計的小編 http://www.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 亚洲观看高清完整版在线观看| 欧美激情1区2区3区| 日韩视频免费观看高清在线视频| 久久久国产成人精品| 很黄很黄激情成人| 久久一区二区精品| 久久久久女教师免费一区| 国外成人免费视频| 欧美好骚综合网| 欧美精品日本| 亚洲专区一二三| 亚洲欧美三级在线| 在线观看亚洲视频啊啊啊啊| 欧美国产精品劲爆| 欧美人成在线| 欧美亚洲视频在线观看| 午夜伦欧美伦电影理论片| 樱花yy私人影院亚洲| 亚洲高清视频一区二区| 欧美日韩精品一区二区天天拍小说 | 亚洲砖区区免费| 国内久久精品视频| 亚洲精品视频在线观看免费| 国产精品久久一区二区三区| 久久免费偷拍视频| 欧美另类在线观看| 久久国产主播精品| 免费成人在线观看视频| 午夜视频在线观看一区二区| 久久久999| 中文在线不卡| 久久综合九色综合久99| 亚洲免费在线电影| 久久亚洲图片| 午夜精品短视频| 女人香蕉久久**毛片精品| 香蕉久久一区二区不卡无毒影院| 久久久久久久成人| 亚洲综合成人在线| 美女啪啪无遮挡免费久久网站| 亚洲一区精品视频| 欧美成黄导航| 老巨人导航500精品| 欧美图区在线视频| 亚洲高清免费在线| 黄色精品免费| 亚洲欧美视频在线观看| 亚洲人成啪啪网站| 久久国产免费| 欧美一区二区在线| 欧美日韩免费观看一区三区| 免费在线亚洲欧美| 国产日韩精品视频一区| 一区二区三区久久网| 亚洲精品一二三| 久久久久久亚洲精品不卡4k岛国| 欧美一区不卡| 欧美体内she精视频| 最新高清无码专区| 亚洲国产日韩欧美| 免费成人av在线看| 欧美xx69| 亚洲第一精品久久忘忧草社区| 午夜欧美视频| 久久国产精品99精品国产| 国产精品高清网站| 一区二区三区四区五区精品视频| 亚洲巨乳在线| 欧美精品国产一区| 91久久在线观看| 亚洲免费高清视频| 欧美精品在线播放| 亚洲精品在线视频观看| 日韩亚洲视频在线| 欧美揉bbbbb揉bbbbb| 日韩视频在线观看| 亚洲砖区区免费| 国产精品国产自产拍高清av| 亚洲视频精选| 欧美在线视频免费观看| 国产一区二区三区在线免费观看| 欧美一区二区三区在线观看| 久久高清福利视频| …久久精品99久久香蕉国产| 噜噜爱69成人精品| 亚洲精品影院在线观看| 亚洲天堂男人| 国产午夜精品一区二区三区欧美| 欧美亚洲免费在线| 美女在线一区二区| 亚洲伦理一区| 国产精品成人播放| 久久国产黑丝| 欧美激情一区二区三区高清视频| 亚洲美女精品久久| 国产精品毛片高清在线完整版| 午夜精品成人在线| 欧美福利视频一区| 中国成人在线视频| 国产精品视频999| 巨胸喷奶水www久久久免费动漫| 亚洲国产va精品久久久不卡综合| 在线亚洲欧美视频| 国产中文一区| 欧美日韩精品系列| 久久国产综合精品| 亚洲人成绝费网站色www| 欧美一级视频精品观看| 亚洲韩日在线| 国产精品永久免费视频| 免费观看在线综合| 中文一区字幕| 亚洲福利视频网| 欧美一区二粉嫩精品国产一线天| 在线成人亚洲| 国产精品一二三| 欧美成人午夜影院| 久久成人人人人精品欧| 日韩视频在线一区| 欧美成人一品| 久久不见久久见免费视频1| 亚洲精品一区二区网址| 国产一区二区三区免费不卡| 欧美日韩国产精品一区二区亚洲| 欧美中在线观看| 亚洲无亚洲人成网站77777| 亚洲大片免费看| 久久精品国产综合精品| 亚洲午夜在线| 日韩亚洲欧美成人| 亚洲国产综合视频在线观看| 国产婷婷色一区二区三区在线| 欧美日本在线| 欧美劲爆第一页| 美女主播精品视频一二三四| 欧美有码视频| 欧美一级播放| 午夜国产不卡在线观看视频| 一本色道久久综合亚洲二区三区| 亚洲国产精品一区二区三区| 久久人人超碰| 久久久久久婷| 久久精品毛片| 久久久久国产精品一区| 欧美一级日韩一级| 午夜精品久久久久久久99黑人| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲综合另类| 亚洲主播在线播放| 亚洲欧美卡通另类91av| 亚洲一区二区三区中文字幕| 一区二区三区高清| 一区二区三区精品久久久| 亚洲精品女av网站| 日韩视频免费观看高清完整版| 亚洲欧洲久久| 一本色道久久88精品综合| 亚洲精品在线二区| 在线视频欧美日韩| 亚洲影院高清在线| 西西人体一区二区| 久久久成人精品| 可以看av的网站久久看| 你懂的一区二区| 欧美福利在线| 日韩视频免费| 亚洲女女做受ⅹxx高潮| 欧美在线日韩在线| 开心色5月久久精品| 欧美高清你懂得| 欧美三区在线观看| 国产日韩欧美另类| 亚洲黄一区二区| 一本久久综合| 欧美在线一二三区| 欧美69wwwcom| 99在线精品免费视频九九视| 亚洲自拍三区| 免费黄网站欧美| 国产精品久久国产愉拍 | 男女精品网站| 欧美色欧美亚洲另类二区| 国产欧美日韩另类一区 | 欧美精品免费观看二区| 欧美午夜视频| 在线播放中文字幕一区| 一区二区久久久久久| 久久成人久久爱| 91久久精品www人人做人人爽 | 亚洲欧美中日韩| 欧美二区在线播放| 亚洲视频在线一区| 欧美成人网在线| 国产免费亚洲高清| 亚洲美女电影在线| 久热re这里精品视频在线6| 日韩一级大片在线| 老司机午夜精品视频在线观看| 国产精品久久一区二区三区| 亚洲三级网站|