dimanche 11 mai 2014

Combobox filter issue

this.choiceSetStore = Ext.create('HO.store.ChoiceCategoryData', {

filters: [

{id:'ActiveRecord',property:'Active',operator:'eq',value:1,disabled:false}

]

});

this.SubChoiceSetStore = Ext.create('HO.store.ChoiceCategoryData', {

filters: [

{ id: 'ActiveRecord2', property: 'Active', operator: 'eq', value: 1, disabled: false }

]

});

this.items=[

{

xtype: 'combobox',

id: 'ChoiceCategoryData',

fieldLabel: 'Is Part of This Choice Sets',

name: 'ChoiceCategoryData',

store: this.choiceSetStore,

valueField: 'Id',

displayField: 'ChoiceCategoryName',

editable: false,

emptyText: 'Choice Set',

typeAhead: false,

multiSelect: true,

queryMode: 'local',

forceSelection: false,

listeners: {

afterRender: function (me, eOpts, erec) {

var getVal = editView.getRecord();

if (getVal == undefined)

{ return; }

else {

var perms = getVal.raw.ChoiceCategoryData;

if (perms == undefined) {

return;

}

var permsArray = new Array();

for (var i = 0; i

if (perms[i]) permsArray.push(perms[i].Id);

}

this.setValue(permsArray);

}

},

setRawValue: function (value) {

console.log('setRawValue: ' + value);

var me = this;

value = Ext.value(me.transformRawValue(value), '');

var splitstr = value.split(',');

Ext.each(splitstr, function (str) {

if (Ext.isNumeric(str)) {

value.replace(str, '');

}

});

if (value == '[Multiple]') {

me.rawValue = null;

} else {

me.rawValue = value;

}

// Some Field subclasses may not render an inputEl

if (me.inputEl) {

me.inputEl.dom.value = value;

}

return value;

},

select: function (thisCombo, records, eOpts) {

var currentView = thisCombo.up('panel'),

cmbChoiceSet = currentView.down("combobox[name=ChoiceCategoryMenuItem]"),

choiceSetArray = [];

if (records) {

Ext.each(records, function (item, index, allItems) {

choiceSetArray.push(parseInt(item.data.Id));

});

}

// cmbChoiceSet.clearValue();

var ChoiceSetStore = cmbChoiceSet.getStore();

ChoiceSetStore.filterBy(function (item, id) {

if (Ext.Array.contains(choiceSetArray, parseInt(item.data.Id))) {

return false;

} else

return true;

});

}

}

}, {

xtype: 'combobox',

id: 'ContainChoiceSet',

fieldLabel: 'Has these Sub-Choice Sets',

name: 'ChoiceCategoryMenuItem',

store: this.SubChoiceSetStore,

valueField: 'Id',

displayField: 'ChoiceCategoryName',

editable: false,

emptyText: 'Contain Choice Set',

afterLabelTextTpl: 'This Choice Sets appear whenever this choice is selected. ',

typeAhead: false,

multiSelect: true,

queryMode: 'local',

forceSelection: false,

listeners: {

afterRender: function (me, eOpts, erec) {

var getVal = editView.getRecord();

if (getVal == undefined)

{ return; }

else {

var perms = getVal.raw.ChoiceCategoryMenuItem;

if (perms == undefined) {

return;

}

var permsArray = new Array();

for (var i = 0; i

if (perms[i]) permsArray.push(perms[i].Id);

}

this.setValue(permsArray);

}

},

setRawValue: function (value) {

// console.log('setRawValue: ' + value);

var me = this;

value = Ext.value(me.transformRawValue(value), '');

var splitstr = value.split(',');

Ext.each(splitstr, function (str) {

if (Ext.isNumeric(str)) {

value.replace(str, '');

}

});

if (value == '[Multiple]') {

me.rawValue = null;

} else {

me.rawValue = value;

}

// Some Field subclasses may not render an inputEl

if (me.inputEl) {

me.inputEl.dom.value = value;

}

return value;

},

select: function (thisCombo, records, eOpts) {

var currentView = thisCombo.up('panel'),

cmbChoiceSet = currentView.down("combobox[name=ChoiceCategoryData]"),

choiceSetArray = [];

if (records) {

Ext.each(records,function (item, index, allItems) {

choiceSetArray.push(parseInt(item.data.Id));

});

}

// cmbChoiceSet.clearValue();

var ChoiceSetStore = cmbChoiceSet.getStore();

ChoiceSetStore.filterBy(function (item, id) {

if (Ext.Array.contains(choiceSetArray, parseInt(item.data.Id))) {

return false;

} else

return true;

});

}

}

},

];


Aucun commentaire:

Enregistrer un commentaire