7

私は3つのコンボボックスを持っています。最初のボックスをクリックすると、2 番目のボックスが更新され、関連するデータが表示される必要があります。最初のコンボを選択すると、2 番目のボックスが完全に更新されます。ただし、同じ手順をもう一度試すと、2 番目のボックスの読み込みが停止しません (画像を参照)。

ここに画像の説明を入力

ここに私の見解からのコードがあります

{
    xtype: 'combobox',
    name: 'Clients',
    id: 'clients',
    displayField: 'Name',
    store: 'Clients',
    queryMode: 'local',
    mode: 'local',
    valueField: 'Id',
    fieldLabel: 'Clients'
},{
    xtype: 'combobox',
    name: 'Projects',
    id: 'projects',
    displayField: 'Name',
    editable: false, 
    store: 'Projects',
    queryMode: 'local',
    mode: 'local',
    valueField: 'Id',
    fieldLabel: 'Projects'
}

そして私のコントローラーから

stores: ['Projects', 'Clients', 'Jobs'],

init: function () {
    this.control({
        '#clients': {
            change: this.onClientSelect
        },
        'processlist button[action=copy]': {
            click: this.onCopyPart
        },
        '#processColourContainer #processColourGrid': {
            edit: this.onPurchaseOrderColourUpdate
        }
    });
},

onLaunch: function () {             
    var clients = this.getClientsStore();
    clients.load();             
},
onClientSelect: function (selModel, selection) {

    var projects = this.getProjectsStore();
    projects.load({
        url: '/Projects/Read/?clientId=' + selection,
        scope: this
    });    
},
4

4 に答える 4

10

既知のバグ:

http://www.sencha.com/forum/showthread.php?153490-Combo-Box-Store-Loading

これを追加すると、次のようになります。

store.on('load', function (store, records, successful, options) {
    if (successful && Ext.typeOf(combo.getPicker().loadMask) !== "boolean") {
        combo.getPicker().loadMask.hide();
    }
});
于 2012-02-22T12:27:08.293 に答える
2

コンボの「expand」イベントにフックするとうまく機能することがわかりました(ストアの「load」にフックすると、コンボのストアへのバインドが何らかの形で破壊され、あらゆる種類の恐ろしい、追跡が困難なエラーが発生しました)。

combo.on('expand', function (field, options) {
    if (Ext.typeOf(field.getPicker().loadMask) !== "boolean") {
        field.getPicker().loadMask.hide();
    }
}, this);

これは私のアプリケーションを壊すことなく私のために仕事をしました。

于 2012-09-18T14:11:05.727 に答える
2

本当に簡単な解決策は、listConfig構成をコンボ ボックスに追加することです。

{
    xtype:'combobox',
    fieldLabel: 'My Combo',
    listConfig: { loadingText: null, loadMask: false },
}
于 2014-01-29T16:35:44.437 に答える