本文目錄一覽:
extjs是什麼??用來做什麼的?麻煩不要複製,通俗點,3Q
extjs 是sencha的一套富客戶端的框架,版本差別比較大 2,3和4版本差別大。
4版是採用了mvc的開發思想。extjs可以簡單的實現表格,以及form表單組件,它還有一些擴展,有布局管理器,有事件管理器,它同時具有dom操作功能,對拖拽等都進行封裝,比如我們要做一個表格 用html要寫table tr td 還要寫樣式,extjs如果想做一個表格 很簡單 直接new一個表格對象 GridPanel 就可以,然後在創建這個表格的時候,可以傳遞這個表格需要的數據就可以,數據與表格的列會有對應的關係。你可以查看extjs提供的例子就知道。當然在他提供的這些組件裡面,肯定不可能滿足我們的所有需求的,可以對extjs進行組件擴展。他的擴展也很簡單。我上家公司就採用了extjs來做後台管理,我們是基於extjs擴展了自己的一套框架,我一直負責維護這個框架,維護了1年多了,擴展了很多組件,所以對這個extjs比較熟悉。
Extjs框架是什麼
ExtJS是一個Ajax框架,是一個用javascript寫的,用於在客戶端創建豐富多彩的web應用程序界面。ExtJS可以用來開發RIA也即富客戶端的AJAX應用。因此,可以把ExtJS用在.Net、Java、Php等各種開發語言開發的應用中。
ExtJs最開始基於YUI技術,由開發人員JackSlocum開發,通過參考JavaSwing等機制來組織可視化組件,無論從UI界面上CSS樣式的應用,到數據解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術的精品。
Ext的UI組件模型和開發理念脫胎、成型於Yahoo組件庫YUI和Java平台上Swing兩者,並為開發者屏蔽了大量跨瀏覽器方面的處理。相對來說,EXT要比開發者直接針對DOM、W3C對象模型開發UI組件輕鬆。
extjs怎麼自定義函數
extjs的自定義事件主要分三步
1.在類中定義事件名稱:
Person = function(config) {
Person.superclass.constructor.call(this, config);
this.name = config.name || ”;
this.sex = config.sex || ”;
this.addEvents({
“nameChange”: true,
“sexChange”: true
});
};
2.實例化對象,並在該對象中定義事件的監聽函數
var person = new Person({
name: ‘binoruv’,
sex: ‘man’
});
person.on(“nameChange”, function() { alert(“Name has been changed to ” + this.name); });
person.on(“sexChange”, function() { alert(“Sex has been changed to ” + this.sex); });
3.觸發事件
Ext.extend(Person, Ext.util.Observable, {
//extend函數中可以自定義新的方法,也可以重寫原類的方法
setName: function(_name) {
if (this.name != _name) {
this.name = _name;
this.fireEvent(“nameChange”, this);
}
},
setSex: function(_sex) {
if (this.sex != _sex) {
this.sex = _sex;
this.fireEvent(“sexChange”, this);
}
}
});
person.setName(“binoruv”);
person.setSex(“woman”);
整個代碼如下:
script type=”text/javascript”
Person = function(config) {
/*
此處addEvents是調用Person父類Ext.util.Observable的方法
api中對Observable的描述:一個抽象基類(Abstract base class),為事件
機制的管理提供一個公共介面。子類應有一個”events”屬性來
定義所有的事件。
*/
Person.superclass.constructor.call(this, config);
this.name = config.name || ”;
this.sex = config.sex || ”;
this.addEvents({
“nameChange”: true,
“sexChange”: true
});
};
Ext.extend(Person, Ext.util.Observable, {
setName : function(_name) {
if (this.name != _name) {
this.name = _name;
this.fireEvent(“nameChange”, this);
}
},
setSex : function(_sex) {
if (this.sex != _sex) {
this.sex = _sex;
this.fireEvent(“sexChange”, this);
}
}
});
Ext.onReady(function() {
var person = new Person({
name: ‘binoruv’,
sex: ‘Man’
});
person.on(“nameChange”, function() { /*debugger;*/Ext.Msg.alert(“Message”,”Name has been changed to ” + this.name); });
person.on(“sexChange”, function() { /*debugger;*/Ext.Msg.alert(“Message”, “Sex has been changed to ” + this.sex); });
person.setName(“binoruv”);
person.setSex(“Woman”);
});
/script
原創文章,作者:TDAJU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330471.html