this.combo = Roo.factory(this.combo, Roo.form);
this.combo.onRender(ct, position);
+ this.combo.onResize(this.combo.width,0);
+ this.combo.initEvents();
// assigned so form know we need to do this..
this.store = this.combo.store;
this.items.each(function(f) {
f.remove();
});
+ this.el.dom.value = '';
if (this.hiddenEl) {
this.hiddenEl.dom.value = '';
}
setValue: function(v) // not a valid action - must use addItems..
{
- this.reset();
-
- if (this.store.isLocal) {
+ this.reset();
+
+
+
+ if (this.store.isLocal && (typeof(v) == 'string')) {
// then we can use the store to find the values..
// comma seperated at present.. this needs to allow JSON based encoding..
this.hiddenEl.value = v;
this.addItem(add);
}, this)
-
-
-
+
+ }
+ if (typeof(v) == 'object') {
+ // then let's assume it's an array of objects..
+ Roo.each(v, function(l) {
+ this.addItem(l);
+ }, this);
+
}
this.reset();
this.el.dom.value = v[this.displayField];
this.hiddenEl.dom.value = v[this.valueField];
+ if (typeof(v[this.valueField]) != 'string' || !v[this.valueField].length) {
+ return;
+ }
+ var kv = v[this.valueField];
+ var dv = v[this.displayField];
+ kv = typeof(kv) != 'string' ? '' : kv;
+ dv = typeof(dv) != 'string' ? '' : dv;
+
- var keys = v[this.valueField].split(',');
- var display = v[this.displayField].split(',');
+ var keys = kv.split(',');
+ var display = dv.split(',');
for (var i = 0 ; i < keys.length; i++) {
add = {};