2012-08-10 23 views
10

स्टोर में अतिरिक्त पैरा का उपयोग करें मेरे पास एक फॉर्म है। इस रूप में, मैं comboBox का उपयोग store के साथ कर रहा हूं।गतिशील रूप से

{ 
    xtype: 'combobox', 
    id: 'SubContractor', 
    name: 'SubContractor', 
    fieldLabel: 'Sub Contractors', 
    selectOnFocus: true, 
    editable: false, 
    displayField: 'FirstName', 
    store: 'jsonGetSubContractorsList', 
    typeAhead: true, 
    allowBlank: false, 
    typeAheadDelay: 20, 
    valueField: 'SubContractID', 
    width: 440, 
    labelWidth: 229 
} 

दुकान में, प्रॉक्सी में मैं स्थिर extraParams है, यह काम कर रहा है।

proxy: {    
    type: 'ajax', 
    url: '/admin/contract/subcontractors/jsonsubcontractorslist', 
    extraParams: { 
     cid : 34 
    }, 
    reader: { 
     type: 'json', 
     root: 'data' 
    } 
}, 

लेकिन मुझे नहीं मिलता है, मेरे स्टोर को गतिशील रूप से अनुबंध आईडी कैसे भेजना है।

उत्तर

20
store.getProxy().extraParams = { 
    foo: 'bar' 
}; 
store.load(); 
+0

या store.getProxy()। ExtraParams.cid = 34; –

+1

इस कोड को कहां लिखना है। कृपया – Navdeep

+2

में मदद करें, मैं यह भी कहूंगा, store.getProxy()। SetExtraParam ({...}) –

7

extjs4 के लिए, यह नहीं बल्कि है:

store.load({ 
    params:{ 
     'foo1': bar1, 
     'foo2': bar2 
    } 
}); 
+0

यह एक उत्कृष्ट उत्तर है। – MarthyM

1

क्रोम और एफएफ में भी इस काम करेगा:

store.proxy.extraParams.foo= 'bar'; 

लेकिन (इस समस्या को व्यक्तिगत रूप से किया था) IE8 में यह करने के लिए मिल गया है इवान

store.proxy.extraParams = {foo: 'bar'}; 
द्वारा उल्लिखित तरीका पैरामीटर पासिंग

. 
    . 
    proxy: { 
    type: 'ajax', 
    api: { 
     create: CONTEXT_PATH + '/mvc/odon/create', 
     read: CONTEXT_PATH + '/mvc/odon/list', 
     update: CONTEXT_PATH + '/mvc/odon/update', 
     destroy: CONTEXT_PATH + '/mvc/odon/delete' 
    }, 
    . 
    . 

: 10

Check this...

1

इस प्रयास करें

var storeDiagnostico= down('gridpanel').getStore();//Ext.create('store.odont.DStore'); 
     storeDiagnostico.getProxy().setExtraParam("idOdontologia", value); 
     storeDiagnostico.load(); 
0

क्षमा दोस्तों,

मैं और अधिक समय बिताया है सभी उपलब्ध विकल्पों और विभिन्न समझने के लिए। इस समस्या के बारे में बहुत सारे जवाब। मैंने उन्हें संक्षेप में बताया है और उम्मीद है कि उत्तर किसी की मदद करेगा।

जब आप एक दुकान बनाने (Ext जे एस 6.x.x में समर्थित, शायद पुराने संस्करणों में):

var store = Ext.create('YourStore', { 
    listeners: { 
     // Fires before a request is made. op is an Ext.data.Operation object 
     beforeload:function(store,op){ 
      // Set request parameters (without overriding other parameters) 
      op.setParams(Ext.apply(op.getParams()||{},{ 
       par1:'value' 
      })); 
     }, 
     ... 

जब आप एक दुकान के एक प्रॉक्सी परिभाषित करते हैं। के बाद से Ext जे एस 4.x.x समर्थित:

proxy: { 
    type: 'ajax', 
    url: 'rest/dse', 
    extraParams: { 
     par1: 'value' 
    } 

नोट: पैरामीटर इस मामले में कई बाद में प्रश्नों के लिए भेजा जाता है!

जब आप डेटा को स्पष्ट रूप से लोड करते हैं। (3.x.x के बाद से) Ext जे एस के सभी संस्करणों में समर्थित:

store.load({ 
    params: { par1: "value" } 
}); 

नोट: यह par1 '' या '' के अंदर डाल करने के लिए आवश्यक नहीं है।

वैकल्पिक उप विकल्प है, जिससे प्रॉक्सी और उसके extraParams विकल्प के लिए उपयोग का उपयोग करता है:

store.getProxy().extraParams = { 
    par1: 'value' 
}; 
store.load(); 

इस के साथ सावधान रहें। यह पैरामीटर कई बाद के प्रश्नों के लिए भेजा गया है!

जब आप एक स्टोर बनाते हैं। केवल एसटी जेएस 3.x संस्करण में समर्थित है।

var genres1 = new Ext.data.Store({ 
    baseParams: { 
     param1: 'value1', 
     param2: 'value2' 
    }, 
    // ... 
संबंधित मुद्दे