Roo/form/ComboBoxArray.js
[roojs1] / Roo / form / ComboBoxArray.js
index 745b49b..9119ab0 100644 (file)
@@ -103,7 +103,9 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
         this.combo.onRender(ct, position);
         
         // assigned so form know we need to do this..
-        this.store = this.combo.store;
+        this.store          = this.combo.store;
+        this.valueField     = this.combo.valueField;
+        this.displayField   = this.combo.displayField ;
         
         
         this.combo.wrap.addClass('x-cbarray-grp');
@@ -266,16 +268,38 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
     setValue: function(v) // not a valid action - must use addItems..
     {
          
-        Roo.log(v);
-        Roo.log(this.hiddenEl.dom.value);
-        Roo.log(this.el.dom.value);
         
-        var _this = this;
-        Roo.each(v, function(l) {
-            _this.addItem(l);
-        });
+        if (this.store.isLocal) {
+            // then we can use the store to find the values..
+            // comma seperated at present.. this needs to allow JSON based encoding..
+            this.hiddenField.el.value  = v;
+            var v_ar = [];
+            Roo.each(v.split(','), function(k) {
+                var li = this.store.query(this.store.valueField, k);
+                if (!li.length) {
+                    return;
+                }
+                add = {};
+                add[this.store.valueField] = k;
+                add[this.store.displayField] = li.item(0).data[this.store.displayField];
+                
+                this.addItem(add);
+            }, this) 
+            
+                
+            
+        }
+        
         
     },
+    setFromData: function(v)
+    {
+        Roo.log(v);
+      
+        
+    },
+    
+    
     validateValue : function(value){
         return Roo.form.ComboBoxArray.superclass.validateValue.call(this, this.getValue());