The documentation for
setValue(String v) : Ext.form.Fieldsays:
Sets the specified value into the field. If the value finds a match, the corresponding record text will be displayed in the field. If the value does not match the data value of an existing item, and the valueNotFoundText config option is defined, it will be displayed as the default field text. Otherwise the field will be blank (although the value will still be set). Parameters: * value : String The value to match
However it doesn't say what does it mean by "value into the field". Atleast i got confused and was trying with all sorts of permutation/combination (this is what happens when you get stuck with something and don't know a way out). It did mean the value that you want to submit along with the form. So just in case some poor soul is stuck like me, here is the code on how to do it.
var jsonStore = new Ext.data.JsonStore({ storeId: 'my-json-store', // store configs autoDestroy: true, autoLoad: true, proxy: new Ext.data.HttpProxy({ url: /relative_backend_url, method: 'GET' }), // reader configs root: 'response', idProperty: 'elemId', fields: [ 'name', 'elemId', 'description' ] }); jsonStore.on('load', function(store, data){ Ext.each(data, function (elem){ if(elem['name'] == some_value_to_compare) { var combo = Ext.getCmp('my-json-combo'); combo.setValue(elem['elemId']); } }); // or if you already know the value of elemId, lets call it xValue for which you // want to show the element, go for combo.setValue(xValue) });
JSON response from the backend looks something like this:
{ "response": [{ "description": "Some long description", "name": "Name of the element", "elemId": "af02a9d6-a11c-11de-bcd5-b2e876978f0a" }], "success": true }
No comments:
Post a Comment