我想構建一個插件,它將在Ext.Grid上運行並允許對其執行一些操作(添加新行,在某些事件上更新它們等)我的插件應該擴展哪種類型的組件取得最佳效果?ExtJS Grid的構建插件
回答
ExtJS的電網提供的添加功能兩種方式:
- 插件
- 特點
插件:插件爲組件提供自定義功能。 ExtJS 4引入了這個系統,開發人員可以將自定義功能注入到組件中。它使用網格類的plugins
屬性指定爲對象或對象數組。
基本上,一個插件是一個ExtJS類,通常不需要擴展任何ExtJS類。插件類的必需部分是,它應該有一個插件系統調用來初始化插件的方法init
。這個方法應該帶一個參數(這將是對你的網格的引用)。 init方法應該配置所有的自定義事件(如果有的話)或掛接方法來偵聽事件。
下面是一個示例骨架代碼:
Ext.define('Ext.ux.grid.MyPlugin', {
alias: 'plugin.ux.muplugin',
init: function(grid) {
// init events and add listeners...
},
customFunction: function(par1, par2) {
// some code...
},
});
特點:特徵是一種類型的插件,其僅可用於網格面板。功能的基類是Ext.grid.feature.Feature
。如果您計劃創建功能,則需要擴展此類。
這裏有一個例子:
Ext.define('Ext.grid.feature.MyFeature', {
extend: 'Ext.grid.feature.Feature',
alias: 'feature.myfeature',
// other methods..
});
這應該幫助您開始。
如果你研究給定的插件src/grid/plugin/*
,它們沒有專門擴展像Ext.form.field.*
那樣的基類。所以,imo,這必須與你需要達成的目標相關。
例如,既RowEditing
和CellEditing
延伸Editing
作爲其基類有編輯網格店的能力,而HeaderReorder
和HeaderResizer
只是擴展Ext.util.Observable
所以要實現共同的事件處理。
最好的辦法是擴展Ext.util.Observable
如果在Ext的任何給定類中沒有實現任何功能,那麼至少你仍然可以啓動一些事件。
插件不過是一組添加到Grid對象的函數。糾正我,如果我錯了;)
Sencha的文檔指出用戶實現的插件應該繼承自Ext.AbstractPlugin,根據@Asky的回答。請參閱http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.AbstractPlugin – mwoodman 2013-08-12 16:23:00
插件是跨組件共享的可重用功能。所有的EXTJS插件都應該繼承Ext.AbstractPlugin
- 1. ExtJs Grid多個相同的插件
- 2. extjs grid dnd插件不創造價值
- 3. Extjs grid combobox
- 4. Extjs grid sorting
- 5. ExtJS 3 grid autowidth
- 6. Extjs remoteSorting in grid
- 7. ExtJs 4 Grid Paging
- 8. Extjs Grid Panel Rowclick
- 9. 如何構建Eclipse的Apatana插件中的ExtJS項目
- 10. 有沒有類似於ExtJS Grid的jQuery插件?
- 11. grid CellEditing插件
- 12. Extjs 5 grid group Sorting
- 13. ExtJS Grid中的行編輯
- 14. extjs sdk構建未創建
- 15. 構建IntelliJ插件的Maven插件
- 16. Maven插件構建
- 17. Phonegap構建插件
- 18. 在ExtJS Grid Panel上滾動事件?
- 19. C#Grid Paging和ExtJS 4.1
- 20. ExtJS Grid不會排序
- 21. ExtJS Grid Paging行選擇
- 22. ExtJS Grid分頁不工作
- 23. ExtJS Grid Scrollbar跳轉ie8
- 24. Extjs 4 Grid查找列
- 25. Extjs Grid分頁欄問題
- 26. Extjs 4 Grid懸停效應
- 27. 與extjs grid並行執行
- 28. ExtJS Paging Grid不會前進
- 29. 從extjs grid輸出excel
- 30. ExtJS Grid不加載數據
謝謝。這就是我需要的。 – 2012-01-11 14:58:59
「AbstractPlugin類是用戶實現的插件應該繼承的基類,該類定義了組件使用的基本API插件...」 - http://docs.sencha.com/extjs/4.2.1 /#!/api/Ext.AbstractPlugin – mwoodman 2013-08-12 16:25:50
任何人都可以告訴我在哪裏實際創建插件文件以及如何將其包含在網格中? – Snowman 2014-06-16 09:31:53