グリッド行の値に応じて、エディタグリッド内のコンボエディタの特定の項目を無効にしようとしています。グリッド内の値に応じてコンボエディタの項目を無効にする
以下のコードの問題は、コンボが最初に使用されたときにコンボ項目を正しく無効にすることですが、後で同じままにすることです。
コンボをクリックすると、フォーカスイベントが常に発生し、サイクルが実行され、r.dataが更新されますが、最初の表示後にコンボ項目が表示される方法は変更されません。
誰かがこれを修正する方法を教えてくれますか?
Thx。
SWK
var lifecycle_combo = new Ext.form.ComboBox({
typeAhead : true,
mode : 'local',
triggerAction : 'all',
valueField : 'value',
lazyRender : true,
displayField : 'text',
store : ref_lifecycle_store,
listeners : {
focus: function(combo, gr, index){
var lfc=usergrid.activeEditor.record.data.ref_lifecycle;
ref_lifecycle_store.each(function(r){
switch(lfc)
{
case 'anonymized':
if (r.id!='deleted')
r.data.selectable=false;
break;
case 'deleted':
r.data.selectable=false;
break;
default:
if (r.id=='logged_in' || r.id=='some_closed' || r.id=='all_closed')
r.data.selectable=false;
else
r.data.selectable=true;
}
});
},
beforeselect : function(combo, r, index) {
return r.get('selectable');
}
},
tpl: '<tpl for=".">' +
'<div ext:qtip="{tip}" class="x-combo-list-item ' +
'<tpl if="selectable == false">' +
'x-combo-list-item-unselectable' +
'</tpl>' +
'">{text}</div>' +
'</tpl>'
});
そのExtJs 3.4。フィルタリングに関するアイデアをありがとう。この時点で私は無効にすることを好むだろうが、私は最終的に無効にすることができなければ、フィルタリングを検討する。 – SunWuKung