查詢下拉框只顯示年份(jquery年份插件)


 1 (function(){
 2     $.parser.plugins.push("yearbox");//注冊擴展組件
 3     $.fn.yearbox = function (options, param) {//定義擴展組件
 4         //當options為字符串時,說明執行的是該插件的方法。
 5         if (typeof options == "string") {
 6             return $.fn.combogrid.apply(this, arguments);
 7         }
 8         options = options || {};
 9         var currentYear = new Date().getFullYear();
10 
11         //當該組件在一個頁面出現多次時,this是一個集合,故需要通過each遍歷。
12         return this.each(function () {
13             var jq = $(this);
14 
15             //$.fn.combogrid.parseOptions(this)作用是獲取頁面中的data-options中的配置
16             var opts = $.extend({
17                 minYear: 1900, // 最小年份
18                 maxYear: 2099, // 最大年份
19                 initYear: currentYear, // 初始年
20                 initCount: 10, // 初始年個數
21                 value: currentYear// 默認選中的年份
22             }, $.fn.combogrid.parseOptions(this), options);
23 
24             var data = [];
25             for (var i = opts.initYear; i <= (opts.initYear + opts.initCount); i++) {
26                 data.push({id: i});
27             }
28 
29             //把配置對象myopts放到$.fn.combobox這個函數中執行。
30             var myopts = $.extend(true, {
31                    height: 26,
32                    width: 150,
33                 data: data,
34                 showHeader: false,
35                 fitColumns:true,
36                 border: false,
37                 idField: 'id',
38                 columns: [[
39                     {field: 'id', width: 150}
40                 ]]
41             }, opts);
42             $.fn.combogrid.call(jq, myopts);
43             var grid = $.fn.combogrid.call(jq, 'grid');
44             var gridPanel = $.fn.datagrid.call(grid, 'getPanel');
45            $(gridPanel).find('td').css('border', 'none');
46           $(gridPanel).find('.datagrid-body').on('scroll', function (e) {
47                if (!e.isTrigger && this.scrollTop === 0) { // 觸頂加載
48                  var currentMinYear = data[0].id;
49                 if (currentMinYear - 1 >= opts.minYear) {
50                       $.fn.datagrid.call(grid, 'insertRow', {
51                             index: 0,    // 索引從0開始
52                          row: {id: currentMinYear - 1}
53                       });
54                      var h = $(gridPanel).find('td').last().height();
55                        $(this).scrollTop(h);
56                   }
57                 } else if (this.scrollTop + this.clientHeight === this.scrollHeight) { // 觸底加載
58                     var currentMaxYear = data[data.length - 1].id;
59                   if (currentMaxYear + 1 <= opts.maxYear) {
60                        $.fn.datagrid.call(grid, 'appendRow', {
61                            id: currentMaxYear + 1
62                        });
63                     }
64                }
65                 $(gridPanel).find('td').css('border', 'none');
66             });
67         });
68     };
69 })();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。