1

意味がないように聞こえますが、動作させると意味があります...

私がやろうとしているのは、コンボに何もしないようにすることです...それで、選択したレコードリストにレコードが追加されないようにすることができました。しかし、私はそれがアイテムを青く塗るのを止める方法を見つけることができません。私がやろうとしていることを理解する最良の方法は、ExtJS Docsページのライブプレビューをチェックし、ドロップダウンリストでアイテムを選択すると、selectedRecordsリストに追加されないのに、どのように青色になるかを確認することです。

ExtJSDocsページへのURLは次のとおりです...

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.field.ComboBox

ツールに慣れていない方は、そこにあるコードエディタを探し、このコードを貼り付けて、[ライブプレビュー]をクリックしてください。

// The data store containing the list of states
var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data : [
        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
    ]
});

// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    displayField: 'name',
    valueField: 'abbr',
    multiSelect:true,
    renderTo: Ext.getBody(),
    onListSelectionChange:function(){
        console.log('Do nothing');
    } 
});
4

1 に答える 1

2

これはあなたが探しているものですか?

onListSelectionChange:function(){
    this.picker.getSelectionModel().deselectAll();
} 

ここで動作することを確認してください:http://jsfiddle.net/lontivero/5Ftrf/1/

更新 以前に選択したアイテムをそのままにしておきたい場合は、これを試してみてください。それは新しい選択だけを防ぎます。

onListSelectionChange:function(){
        var lastSelected = this.picker.getSelectionModel().lastSelected;
        itemNode = this.picker.getNode(lastSelected || 0);
        if (itemNode) {
            this.picker.getSelectionModel().deselect(lastSelected );
        }        
} 

jsfiddleの場合:http://jsfiddle.net/lontivero/5Ftrf/2/

于 2012-12-16T17:54:09.663 に答える