extjs3菜鳥教程的簡單介紹

本文目錄一覽:

本人現在學習ExtJS,誰有ExtJS的入門教程視頻,(清晰版的)適合初次接觸ExtJS的學員使用。

oc已全部翻譯完成視頻總4個視頻免費下載

鏈接:

提取碼:64s9

oc已全部翻譯完成視頻 總4個視頻|OC教程04:速建+講解.mp4|OC教程03:如何給機器人添加紋理與着色.mp4|OC教程02:場景管理.mp4|OC教程01:塗鴉的投射原理與應用.mp4

extjs 中 日期選擇起怎麼用?

Extjs中日期NumberField如果沒有默認值的話,默認值就是當天。

你的問題是:

1在頁面顯示時要將第一個NumberField的minValue改成當天new Date()

2 第一個NumberField值改變後修改第二個的minValue為第一個的value的下一天。

3 無限的話,數據庫中可以存NULL或任意一個你特定的值都可以

轉:新手如何學習ExtJS 4

最近運營ExtJS交流群的時候,感觸頗深,我感覺作為一個老手,我有必要介紹一下如何學習這種基礎性問題。新手如何學習ExtJS4?如何入門ExtJS4?如何快速學習ExtJS4?1.仔細閱讀新手教程新手教程是指ExtJS官方文檔中Guides那一系列文章,因為是英文的,新手閱讀起來可能有障礙,為此我特意翻譯了這一系列教程,根據使用頻度我已經差不多把最常用到的教程翻譯完了,後續還將繼續翻譯。

通讀這一系列教程後,你會對ExtJS的基本使用方法有個框架性的了解,你會大體上知道如何實現常用功能。現在我把所有已翻譯的教程列舉在此,記住,認真的讀一定對你有幫助。ExtJS 4 入門ExtJS 4 類系統(Class System)介紹ExtJS MVC架構講解ExtJS 4 布局和容器ExtJS 4 組件詳解ExtJS 4 數據(包)詳解ExtJS 4 Grids 詳解ExtJS 4 表單ExtJS 4 樹2.把官方文檔中的所有Demo都瀏覽一遍做這個事情是為了了解官方Demo中實現了哪些功能,當自己要做一個功能時,有例子照着做是最快的,瀏覽一遍就會對現有的Demo有個大概印象,當你沒有頭緒的時候你的大腦會在後台查找之前的印象的,仔細瀏覽一遍,沒有錯。3.熟讀API Docs(API文檔)最近遇到很多人問問題,把一段自己想當然寫出來的代碼貼上來問為什麼不對,事實上你仔細查一下API文檔就知道,你這種用法ExtJS根本就不支持,當然不對。

使用搜索的好處是:通常可以較快速的解決一些無頭緒的問題

Extjs怎麼實現下拉框多選

1、擴展js類庫,在項目中建立一個 js文件,命名為:xxx.js  其代碼為

if (‘function’ !== typeof RegExp.escape)   

{  

    RegExp.escape = function (s)   

    {  

        if (‘string’ !== typeof s)   

        {  

            return s;  

        }  

        return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, ‘\\$1’);  

    };  

}  

  

Ext.ns(‘Ext.form’);  

  

Ext.form.MultiSelect = Ext.extend(Ext.form.ComboBox,   

{  

    checkField: ‘checked’,  

    multi: true,  

    separator: ‘,’,  

    initComponent: function ()   

    {  

        if (!this.tpl)   

        {  

            this.tpl = ‘tpl for=”.”‘ + ‘div class=”x-combo-list-item”‘  

                    + ‘img src=”‘ + Ext.BLANK_IMAGE_URL + ‘” ‘  

                    + ‘class=”ux-MultiSelect-icon ux-MultiSelect-icon-‘  

                    + ‘{[values.’ + this.checkField + ‘?”checked”:”unchecked”‘  

                    + ‘]}”‘  

                    + ‘{[values.’ + this.displayField + ‘]}’  

                    + ‘/div’  

                    + ‘/tpl’;  

        }  

  

        Ext.form.MultiSelect.superclass.initComponent.apply(this, arguments);  

  

        this.on(  

        {  

            scope: this,  

            beforequery: this.onBeforeQuery,  

            blur: this.onRealBlur  

        });  

  

        this.onLoad = this.onLoad.createSequence(function ()   

        {  

            if (this.el)   

            {  

                var v = this.el.dom.value;  

                this.el.dom.value = ”;  

                this.el.dom.value = v;  

            }  

        });  

    },  

    initEvents: function ()   

    {  

        Ext.form.MultiSelect.superclass.initEvents.apply(this, arguments);  

        this.keyNav.tab = false;  

    },  

    beforeBlur: function ()   

    {  

    },  

    postBlur: function ()   

    {  

    },  

  

    clearValue: function ()   

    {  

        this.value = ”;  

        this.setRawValue(this.value);  

        this.store.clearFilter();  

        this.store.each(function (r)   

        {  

            r.set(this.checkField, false);  

        }, this);  

        if (this.hiddenField)   

        {  

            this.hiddenField.value = ”;  

        }  

        this.applyEmptyText();  

    },  

    getCheckedDisplay: function ()   

    {  

        var re = new RegExp(this.separator, “g”);  

        return this.getCheckedValue(this.displayField).replace(re, this.separator + ‘ ‘);  

    },  

    getCheckedValue: function (field)   

    {  

        field = field || this.valueField;  

        var c = [];  

        var snapshot = this.store.snapshot || this.store.data;  

        snapshot.each(function (r)   

        {  

            if (r.get(this.checkField))   

            {  

                c.push(r.get(field));  

            }  

        }, this);  

  

        return c.join(this.separator);  

    },  

    onBeforeQuery: function (qe)   

    {  

        qe.query = qe.query.replace(new RegExp(RegExp.escape(this.getCheckedDisplay()) + ‘[ ‘ + this.separator + ‘]*’), ”);  

    },  

    onRealBlur: function ()   

    {  

        this.list.hide();  

        var rv = this.getRawValue();  

        var rva = rv.split(new RegExp(RegExp.escape(this.separator) + ‘ *’));  

        var va = [];  

        var snapshot = this.store.snapshot || this.store.data;  

  

        Ext.each(rva, function (v)   

        {  

            snapshot.each(function (r)   

            {  

                if (v === r.get(this.displayField))   

                {  

                    va.push(r.get(this.valueField));  

                }  

            }, this);  

        }, this);  

        this.setValue(va.join(this.separator));  

        this.store.clearFilter();  

    },  

    onSelect: function (record, index)   

    {  

        if (this.fireEvent(‘beforeselect’, this, record, index) !== false)   

        {  

            record.set(this.checkField, !record.get(this.checkField));  

  

            if (this.store.isFiltered())   

            {  

                this.doQuery(this.allQuery);  

            }  

  

            if (this.multi)   

            {  

                if (record.get(“key”) == “—”  record.get(this.checkField))   

                {  

                    this.setValue(“—“);  

                }  

                else   

                {  

                    this.setValue(this.getCheckedValue());  

                }  

            }  

            else   

            {  

                this.clearValue();  

                this.value = record.get(this.valueField);  

                this.setRawValue(record.get(this.displayField));  

                this.list.hide();  

            }  

  

            this.fireEvent(‘select’, this, record, index);  

        }  

    },  

    setValue: function (v)   

    {  

        if (v)   

        {  

            v = ” + v;  

            if (this.valueField)   

            {  

                this.store.clearFilter();  

                this.store.each(function (r)   

                {  

                    var checked = !(!v.match(‘(^|’ + this.separator + ‘)’  

                                + RegExp.escape(r.get(this.valueField))  

                                + ‘(‘ + this.separator + ‘|$)’));  

                    r.set(this.checkField, checked);  

                }, this);  

                this.value = this.getCheckedValue();  

                this.setRawValue(this.getCheckedDisplay());  

                if (this.hiddenField)   

                {  

                    this.hiddenField.value = this.value;  

                }  

            }  

            else   

            {  

                this.value = v;  

                this.setRawValue(v);  

                if (this.hiddenField)   

                {  

                    this.hiddenField.value = v;  

                }  

            }  

            if (this.el)   

            {  

                this.el.removeClass(this.emptyClass);  

            }  

        }  

        else   

        {  

            this.clearValue();  

        }  

    },  

    selectAll: function ()   

    {  

        this.store.each(function (record)   

        {  

            record.set(this.checkField, true);  

        }, this);  

        this.doQuery(this.allQuery);  

        this.setValue(this.getCheckedValue());  

    },  

    deselectAll: function ()   

    {  

        this.clearValue();  

    }  

});  

Ext.reg(‘multiSelect’, Ext.form.MultiSelect);

2、在ext-all.css文件最後,加入css樣式

.ux-MultiSelect-icon { width:16px; height:16px; float:left; background-position: -1px -1px ! important; background-repeat:no-repeat ! important; }  

.ux-MultiSelect-icon-checked { background: transparent url(../images/default/menu/checked.gif); }  

.ux-MultiSelect-icon-unchecked { background: transparent url(../images/default/menu/unchecked.gif); }

3、使用

    var DepartUserStore=new Ext.data.Store(  

     {  

            proxy: new Ext.data.HttpProxy(  

            {  

                    url:’/Web/Manage/DeskTop/JSON/ScheduleManager/GetSimpleDepartUserInfo.aspx’  

            }),  

            //讀取Json  

            reader: new Ext.data.JsonReader(  

            { totalProperty: “totalCount”, root: “root” },   

            [  

                    {name:’UserId’,type:’int’},  

                    {name:’UserName’,type:’string’}  

            ])  

    });  

      

    var DepartUserCbox = new Ext.form.MultiSelect(  

    {  

            fieldLabel: ‘    姓名’,  

            labelStyle: ‘width:80px’,  

            width: 150,  

            editable: false,  

            id: ‘DepartUserDS’,  

            hiddenName:’DepartUserIdDS’,  

            store: DepartUserStore,  

            emptyText: ‘–請選擇–‘,  

            allowBlank: false,   

            blankText: ‘請選擇’,   

            mode:’remote’,  

            displayField: ‘UserName’,  

            valueField: ‘UserId’,  

            triggerAction: ‘all’,  

            selectOnFocus: true,  

            listWidth: 200  

    });  

      

    DepartUserStore.on(‘load’, function ()   

    {  

            DepartUserCbox.selectAll(); //全選  

    }); 

    

    DepartUserStore.load();

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156992.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:58
下一篇 2024-11-18 01:58

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29

發表回復

登錄後才能評論