国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

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

        2018-9-6    seo達(dá)人

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

        前言

        • 最近在研究bootstrap table的表格的單元格編輯功能,實(shí)現(xiàn)點(diǎn)擊單元格修改內(nèi)容,其中包括文本(text)方式修改,下拉選擇(select)方式修改,日期(date)格式修改等。
        • 本文著重解決x-editable編輯的數(shù)據(jù)動態(tài)添加和顯示數(shù)據(jù)為Empty的問題,還有給表格單元格的內(nèi)容設(shè)置多樣式,使得顯示多樣化。
        • 由于官網(wǎng)給的demo的數(shù)據(jù)都是html文件里寫好的,select類型的不能動態(tài)添加(所以網(wǎng)上的大多都是官網(wǎng)的類似例子,本篇博客就是在這種情況下以自己的經(jīng)驗(yàn)分享給大家,有問題可以留言哦),一旦動態(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服務(wù)端分頁(*) showColumns:true,
                pagination:true,
                minimumCountColumns:2,
                pageNumber:1, //初始化加載第一頁,默認(rèn)第一頁 pageSize: 10, //每頁的記錄行數(shù)(*) pageList: [10, 15, 20, 25], //可供選擇的每頁的行數(shù)(*) uniqueId: "id", //每一行的唯一標(biāo)識,一般為主鍵列 showExport: true,                    
                exportDataType: 'all',
                exportTypes:[ 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'], //導(dǎo)出文件類型 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導(dǎo)致調(diào)用的默認(rèn)的formatter,默認(rèn)的沒有把表格的值傳入html中,bootstrap-table-editable.js源碼如下,初始定義_dont_edit_formatter為false,我們沒有實(shí)現(xiàn)noeditFormatter的function就會執(zhí)行第二個if語句,其中的標(biāo)簽中沒有對內(nèi)容賦值,導(dǎo)致最后顯示結(jié)果為它默認(rèn)的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

        由于要實(shí)現(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文件,在其中實(shí)現(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服務(wù)端分頁(*) showColumns:true,
                pagination:true,
                minimumCountColumns:2,
                pageNumber:1, //初始化加載第一頁,默認(rèn)第一頁 pageSize: 10, //每頁的記錄行數(shù)(*) pageList: [10, 15, 20, 25], //可供選擇的每頁的行數(shù)(*) uniqueId: "id", //每一行的唯一標(biāo)識,一般為主鍵列 showExport: true,                    
                exportDataType: 'all',
                exportTypes:[ 'csv', 'txt', 'sql', 'doc', 'excel', 'xlsx', 'pdf'], //導(dǎo)出文件類型 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) { // 當(dāng)編輯狀態(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: '馬達(dá)',
                    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

        關(guān)于bootstrap table的導(dǎo)出及使用可以看我另外一篇博客

        下載和引用

        下載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

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

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

        這里寫圖片描述

        這里寫圖片描述

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

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


        日歷

        鏈接

        個人資料

        存檔

        主站蜘蛛池模板: 性xxxx视频播放| av第一福利网站| 苍梧县| 夜夜嗨av一区二区三区| 中国毛茸茸性xxxx| 电视剧对决免费全集在线观看| 久久亚洲精品中文字幕无男同| 丰满年轻岳欲乱中文字幕电视| 日本一区午夜艳熟免费| 欧美做爰一区二区三区| 无码国产精品一区二区免费虚拟vr | 欧美成人看片一区二区| 无码人妻精品一区二区三区不卡| 天天爱天天做天天爽夜夜揉| 中国免费毛片网络| 四虎影视4hu4虎成人| 盐津县| 阿合奇县| 久久五月精品中文字幕| 99热精品国产三级在线| 国产精品色拉拉| 丝袜+亚洲区| gogo全球大胆高清人体444| 麻豆国产av丝袜白领传媒| 日韩一区二区三区射精| 羞羞视频在线观看| 少女大人免费观看| 福利体验试看120秒| free性欧美精品videos| 一本久久伊人热热精品中文字幕 | 丰满少妇a级毛片| 中文人妻熟女乱又乱精品| 一本久久精品一区二区| 怀化市| 天堂网中文www在线| japanese少妇高潮潮喷| 两个人看的www视频高清在线| 男女超爽视频免费播放| 久久久久亚洲av成人片乱码| 另类国产精品一区二区| 野花韩国日本免费观看|