2010-02-10 19 views
5

मेरे पास एक एक्स्टजेस ग्रिड है:मैं ExtJS में घटकों का पुन: उपयोग कैसे करूं?

var grid = new Ext.grid.GridPanel({ 
    ... 
}); 

मैं इस ग्रिड का पुनः उपयोग करने में सक्षम होना चाहता हूं ताकि मैं इसे कई उदाहरण प्राप्त कर सकूं कि सभी स्वतंत्र रूप से कार्य करते हैं। ऐसा करने का एकमात्र तरीका Ext.extend का उपयोग कर है, या कोई और तरीका है? मुझे इसे विस्तारित करने की ज़रूरत नहीं है, मुझे बस इसके कई उदाहरण बनाने में सक्षम होना चाहिए।

उत्तर

5

तुम सच में सिर्फ दो ग्रिड उदाहरणों की जरूरत है, तो दूसरा बनाने के रूप में अपर स्टेज कहा।

आप एक से अधिक ग्रिड के बीच एक config साझा करने के लिए की जरूरत है, तो आपको एक अलग जे एस उद्देश्य यह है कि आप तो हर बार जब आप एक बनाने के ग्रिड निर्माता में पारित के रूप में config बचा सकता है।

var myCfg = { ... }; 
var grid1 = new Ext.GridPanel(Ext.apply(myCfg, { /* other options */ })); 
var grid2 = new Ext.GridPanel(Ext.apply(myCfg, { /* other options */ })); 

आप अपने अनुप्रयोग भर में या अनेक एप्लिकेशन में एक विशेष विन्यास के साथ ग्रिड का पुन: उपयोग करने के लिए जा रहे हैं, तो फिर एक उपवर्ग जाना सबसे अच्छा तरीका हो सकता है।

This tutorial कार्यक्षमता का पुन: उपयोग करने के लिए कई अलग-अलग तरीकों की समीक्षा करता है और यह तय करने के लिए एक अच्छा प्रारंभिक बिंदु होगा कि आपकी आवश्यकताओं के अनुरूप सर्वोत्तम दृष्टिकोण क्या है (यदि आपको दो बुनियादी उदाहरणों से परे कुछ चाहिए)।

+0

मैं कभी-कभी ऐसा करता हूं। पहले कॉन्फ़िगरेशन को परिभाषित करें, फिर एकाधिक ऑब्जेक्ट्स बनाने के लिए इसका पुन: उपयोग करें। –

+0

धन्यवाद, मुझे अपने आप पर ट्यूटोरियल मिला जिसने मेरे प्रश्न का उत्तर दिया, लेकिन आपने इसे यहां लिंक किया। –

0

Ext.Component # cloneConfig() शायद?

0

आप बस नई वस्तुओं का दृष्टांत कर सकते हैं?

var anotherGrid = new Ext.grid.GridPanel({ 
    ... 
}); 
0

Ext subclassing के लिए सभ्य समर्थन है। इसका मतलब है आप मानक ग्रिड का विस्तार करने और दृष्टांत है कि कर सकते हैं:

Ext.reg('foobargrid', Foo.BarGrid); 

var pane = new Ext.TabPanel({ 
    items: [{xtype: 'foobargrid'}] 
}); 

संपादित Misread प्रश्न:

Foo = {}; 
Foo.BarGrid = function(config) { 
    Foo.BarGrid.superclass.constructor.call(this, config); //call the default grid constructor 
} 

Ext.extend(Foo.BarGrid, Ext.grid.GridPanel, { 
    //grid config 
}); 

var grid = new Foo.BarGrid({/*minimal config*/}); 

आप अपने स्वयं के xtype और उपयोग कि new के बजाय यह ing रजिस्टर कर सकते हैं। चूंकि आप स्पष्ट रूप से Ext.extend कॉन्फ़िगरेशन को साझा करते हुए जानते हैं, जैसा कि bmoeskau द्वारा सुझाया गया है, केवल आपके लिए चाल कर सकता है।

संबंधित मुद्दे