1. 程式人生 > >ExtJS 4.2 Date元件擴充套件:新增清除按鈕

ExtJS 4.2 Date元件擴充套件:新增清除按鈕

/*!
* 在原有的Date元件上新增【清除】按鈕
*/
Ext.define('Js.ux.DatePicker', {
    override: 'Ext.picker.Date',
    renderTpl: [
        '<div id="{id}-innerEl" role="grid">',
            '<div role="presentation" class="{baseCls}-header">',
                 // the href attribute is required for the :hover selector to work in IE6/7/quirks
                '<a id="{id}-prevEl" class="{baseCls}-prev {baseCls}-arrow" href="#" role="button" title="{prevText}" hidefocus="on" ></a>',
                '<div class="{baseCls}-month" id="{id}-middleBtnEl">{%this.renderMonthBtn(values, out)%}</div>',
                 // the href attribute is required for the :hover selector to work in IE6/7/quirks
                '<a id="{id}-nextEl" class="{baseCls}-next {baseCls}-arrow" href="#" role="button" title="{nextText}" hidefocus="on" ></a>',
            '</div>',
            '<table id="{id}-eventEl" class="{baseCls}-inner" cellspacing="0" role="grid">',
                '<thead role="presentation"><tr role="row">',
                    '<tpl for="dayNames">',
                        '<th role="columnheader" class="{parent.baseCls}-column-header" title="{.}">',
                            '<div class="{parent.baseCls}-column-header-inner">{.:this.firstInitial}</div>',
                        '</th>',
                    '</tpl>',
                '</tr></thead>',
                '<tbody role="presentation"><tr role="row">',
                    '<tpl for="days">',
                        '{#:this.isEndOfWeek}',
                        '<td role="gridcell" id="{[Ext.id()]}">',
                            // the href attribute is required for the :hover selector to work in IE6/7/quirks
                            '<a role="presentation" hidefocus="on" class="{parent.baseCls}-date" href="#"></a>',
                        '</td>',
                    '</tpl>',
                '</tr></tbody>',
            '</table>',
            '<tpl if="showToday">',
                '<div id="{id}-footerEl" role="presentation" class="{baseCls}-footer">',
                    '{%this.renderTodayBtn(values, out)%}',
                    '{%this.renderClearBtn(values, out)%}',
                    '</div>',
            '</tpl>',
        '</div>',
        {
            firstInitial: function (value) {
                return Ext.picker.Date.prototype.getDayInitial(value);
            },
            isEndOfWeek: function (value) {
                // convert from 1 based index to 0 based
                // by decrementing value once.
                value--;
                var end = value % 7 === 0 && value !== 0;
                return end ? '</tr><tr role="row">' : '';
            },
            renderTodayBtn: function (values, out) {
                Ext.DomHelper.generateMarkup(values.$comp.todayBtn.getRenderTree(), out);
            },
            renderMonthBtn: function (values, out) {
                Ext.DomHelper.generateMarkup(values.$comp.monthBtn.getRenderTree(), out);
            },
            renderClearBtn: function (values, out) { // 清除按鈕
                Ext.DomHelper.generateMarkup(values.$comp.clearBtn.getRenderTree(), out);
            }
        }
    ],

    beforeRender: function () {
        var me = this;
        me.callParent();
        // 建立按鈕 
        me.clearBtn = new Ext.button.Button({
            ownerCt: me,
            ownerLayout: me.getComponentLayout(),
            text: '清除',
            tooltip: '清除日期',
            tooltipType: 'title',
            handler: me.selectClear,
            scope: me
        });
    },

    // Do the job of a container layout at this point even though we are not a Container.
    // TODO: Refactor as a Container.
    finishRenderChildren: function () {
        var me = this;
        me.callParent();
        me.clearBtn.finishRender();
    },

    /**
    * Sets the value of the date field
    * @param {Date} value The date to set
    * @return {Ext.picker.Date} this
    */
    setValue: function (value) {
        if (value == '') {
            this.value = value;
        } else {
            this.value = Ext.Date.clearTime(value, true);
            return this.update(this.value);
        }
    },

    /**
    * 清除按鈕點選
    */
    selectClear: function () {
        var me = this,
            btn = me.clearBtn,
            handler = me.handler;

        if (btn && !btn.disabled) {
            me.setValue('');
            me.fireEvent('select', me, me.value);
            if (handler) {
                handler.call(me.scope || me, me, me.value);
            }
            me.onSelect();
        }
        return me;
    },

    beforeDestroy: function () {
        var me = this;
        if (me.rendered) {
            Ext.destroy(
                me.clearBtn
            );
        }
        me.callParent();
    },
});

相關推薦

ExtJS 4.2 Date元件擴充套件新增清除按鈕

/*! * 在原有的Date元件上新增【清除】按鈕 */ Ext.define('Js.ux.DatePicker', { override: 'Ext.picker.Date', renderTpl: [ '<div id="{id}-innerEl"

ExtJS 4.2 Grid元件的單元格合併

ExtJS 4.2 Grid元件本身並沒有提供單元格合併功能,需要自己實現這個功能。  目錄 1. 原理 2. 多列合併 1. 原理 1.1 HTML程式碼分析 首先建立一個Grid元件,然後檢視下的HTML原始碼。 1.1.1 Grid元件 1.1.2 HTML程式碼 從這

ExtJS 4.2 評分元件

/*! * 評分元件 */ Ext.define('App.Demo.RatingStarFiledDemoTab', { extend: 'Ext.panel.Panel', layout: 'fit', closable: true, reload: fu

ExtJS 4.2 業務開發(三)資料新增和修改

Ext.define('App.ShipMgr.view.AddShipWindow', { extend: 'Ext.window.Window', layout: 'fit', constrain: true, // 是否只能在父容器的範圍內拖動 modal:

ExtJS 4.2 元件的查詢方式

元件建立了,就有方法找到這些元件。在DOM、Jquery都有各自的方法查詢元素/元件,ExtJS也有自己獨特的方式查詢元件、元素。本次從全域性查詢、容器內查詢、form表單查詢、通用元件等4個方面介紹元件的查詢方式。 目錄 2. 容器內查詢 1. 全域性查詢方式 全域性查詢方式指在整個

ExtJS 4.2 元件介紹

目錄 1. 介紹   1.1 說明   1.2 元件分類   1.3 元件名稱   1.4 元件結構 1. 介紹 1.1 說明 ExtJS的強大功能之一是提供了非常豐富的元件,包括grid(表格)、panel(面板)、form(表單)、button(按鈕)、progressBa

extjs 4.2 自定義主題,官方原文翻譯

網上文章都不詳細,自己看官方原文,成功自定義extjs 4.2和extjs 6.2兩個版本。本文是4.2 環境&工具 win7 已經配置了java環境(文中要求配置jre,) 官方原文 Ruby下載 我用的是2.4.4(看它長的特殊) sench

ExtJS 4.2 業務開發(一)主頁搭建

Ext.application({ name: 'AKApp', launch: function () { // 設定Viewport Ext.create('Ext.container.Viewport', { name

ExtJS 4.2 業務開發(二)資料展示和查詢

本篇開始模擬一個船舶管理系統,提供查詢、新增、修改船舶的功能,這裡介紹其中的資料展示和查詢功能。 目錄 1. 資料展示 2. 資料查詢 3. 線上演示 1. 資料展示 在這裡我們將模擬一個船舶管理系統,並提供查詢、新增、修改的功能。 大致的目錄結構如下: ShipMgrTab.js :

ExtJS 4.2 第一個程式

本篇介紹如何建立一個ExtJS應用程式。並通過建立目錄、匯入檔案、編寫程式碼及分析程式碼等步驟來解釋第一個ExtJS程式。 目錄 1. 建立程式   1.2 實際目錄   1.4 執行圖 2. 程式碼分析 1. 建立程式 1.1 建立目錄建議 根據官方建議,建立一個ExtJ

bootstrap-datetimepicker時間控制元件新增清除按鈕

一 前言使用datetimepicker控制元件時,本人的原則是簡約但功能要齊全,本來覺得挺不錯的,無奈需求變更...exm?需要新增一個清除的按鈕,而不是input框旁邊多一個叉...瑪德...翻來覆去,想到不失優雅的解決辦法就是改原始碼咯...既然決定了就實施吧~無奈攤手

DevExpress GridControl 控制元件行中新增編輯按鈕

以下為內容以圖片居多1234表示點選順序 先新增一行 操作和新增資料行一樣 開啟ColumnEdit  選擇new ButtenEdit  new上方會出現一個系統命名的button 命名可以更改必須在下發name中更改 是行的name            

element ui table元件擴充套件關於列表編輯按鈕的位置放置

最近在用vue做專案,主要是用的element ui的元件,在用的過程中發現有部分元件需要擴充套件,改原始碼太折騰,成本高,就想著如何節省成本來實現這些需求,由於專案時間緊張,有些實現來也沒來得及記錄一下,今天把table列表編輯按鈕功能實現也分享一下。 主要用

開源容器openshift學習筆記(2新增Registry元件

開篇之前如果沒有安裝openshift環境可以參考我的博文:centos7下安裝openshift 本系列部落格學習筆記參考《開源容器雲openshift》一書:下載連線:https://download.csdn.net/download/u012371097/10745382  

scikit-learn4.2. Feature extraction(特征提取,不是特征選擇)

for port ould 詞匯 ret sim hide pla pip http://scikit-learn.org/stable/modules/feature_extraction.html 帶病在網吧裏。。。。。。寫。求支持。。。 1、首先澄

yum install ntp 報錯Error: Package: ntp-4.2.6p5-25.el7.centos.2.x86_64 (base)

時報 existing -s pmd cond AC base update ntpdate redhat7 在安裝ntp時報如下錯誤 Error: Package: ntp-4.2.6p5-25.el7.centos.2.x86_64 (base) R

對於4.2日遇到問題的解答

如何 第一個 c項目 去掉 出現 log 代碼 prim 進行 第一個問題,路徑問題,在訪問一個路徑時應當如何進行訪問: 相對路徑與絕對路徑的定義: 帶有http(請求協議的路徑)開頭的路徑就是絕對路徑;   1相對路徑+參照路徑=絕對路徑,絕對路徑又分為以/開頭和不以/開

設置zabbix (3.4.2)添加監控項,觸發器,讓CPU使用超過85%就報警

oot 圖形 img -a 就會 title code 有一個 nts zabbix (3.4.2)添加監控項,觸發器,讓CPU使用超過85%就報警: zabbix自帶模板有一個 Template OS Linux模板。這個模板有監控CPU的監控項,如果沒有添加一個監控

基礎篇4.2)規範化3d軟件工程圖紙用模板

auto 有趣的 規範 方便 的人 mic 所在 bsp 內容 本章目的:給讀者一些標準模板,方便作圖時使用 這篇博文的分享內容作者會定時的更新 1.標準的工程圖模板 標準的工程圖模板可以幫助機械工程師更加偷懶地畫出更好的產品,如下圖所示: 作者以後會將

linux系統,CentOS7.2安裝ffmpeg擴充套件,PHP用FFmpeg擷取視訊第一幀作為視訊封面,並給圖片新增播放視訊按鈕

最近做公司的專案中,有使用者上傳視訊,後臺這邊接收視訊並上傳,獲取視訊第一幀作為視訊封面的功能,在網上查找了好多資料,並且安裝 了ffmpeg-php的PHP擴充套件,由於版本問題,安裝好幾個版本都不成功,最後放棄安裝擴充套件,後來執行程式碼發現不用安裝那個擴充套件也能實現截圖並上傳的功能,所以要擷