• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

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

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

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

    前言

    • 最近在研究bootstrap table的表格的單元格編輯功能,實現(xià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)驗分享給大家,有問題可以留言哦),一旦動態(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,我們沒有實現(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

    由于要實現(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服務(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

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

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

    這里寫圖片描述

    這里寫圖片描述

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

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


    日歷

    鏈接

    個人資料

    存檔

    主站蜘蛛池模板: 国内免费av在线播放| 精久国产一区二区三区四区| 日本丰满熟妇在线观看| 国产福利一区二区在线观看| 精品动漫一区二区无遮挡| 久久久www成人免费无遮挡大片| 国内精品视频区在线2021| 国产ww久久久久久久久久| 中文字幕无码一区二区三区四区| 99久热这里只有精品视频免费观看 | 佛学| 日本精品videossex黑人| 国产福利微拍精品一区二区 | 夜夜福利| 99久久国产成人免费网站| 欧美精品三级| 伊人久久大香线蕉成人综合网| 亚洲欧洲日本精品专线| 92精品成人国产在线观看| 扒开未发育的小泬视频| 国产一区在线播放av| 国产在线精品香蕉麻豆| 东乌| 99久久国产综合精品女同 | 精品免费视频| 精品无码专区久久久水蜜桃| 久草香蕉视频在线观看| 国产一级二级三级精品| 色狠狠色噜噜AV一区| 国产在线精品一区二区在线看| 岳池县| 超碰色导航| 亚洲中文字幕AV在天堂| 成年网站免费视频A在线双飞| 在线A久青草视频在线观看 | 免费女人高潮流视频在线观看| 巫山县| 国产福利美女小视频| 国产精品一区二区国产主播| 中文岛国精品亚洲一区| 精品久久久久久久免费影院大全|