2009-04-30 5 views
1

私はExtJsを使用してフォーム内のカスケードコンボを実行する際に、間違ったExtJを使用している間違いがあります。私は順番にそれらのいずれかをクリックすると、関連する1がデータ形式としてJSONを(使用してAJAXリクエストを作るに更新されます ExtJs Cascading-Combos Issue

  • 私は3つのコンボ、ゾーン、地域、都市を持って

    1. :これは状況です>地域 - - ので、私はそれが有用ではないと思う場合でも、シーケンスは、通常のシーケンスゾーンである>都市)は、それは非常に重要ではない場合でも
    2. 、私はASP.NET MVCバックエンド
    によ

    問題は、最初の操作として、子孫を最初にクリックしてから親をクリックすると発生します。たとえば、リージョンを開く前に開いて、ゾーンを開いて1つを選択すると、リージョンがいっぱいになることが期待されますが、何も起こりません。 この場合も、ajaxリクエストは正しく行われ、結果として得られるJsonデータは、「私がクリック注文(ゾーン - >リージョン)を尊重した場合」と同じ結果として返されます。

    最初にページに入力したときに正常にクリックすると、すべてうまくいくが、私が前に述べたようにクリック順を変更すると、決して動作しないもっと。

    我々はそれを行うために使用したコードは次のとおりです。任意の提案を事前に

    var RegionsStore = new Ext.data.JsonStore({ 
               url:'/mypath/blabla', 
               fields:['Value','Text'] 
            }); 
    Ext.onReady(function() { 
        Ext.getCmp('ext-Area').on('select', function(sender, item) { 
         var target = Ext.getCmp('ext-Regions'); 
         target.setDisabled(true); 
         target.setValue(''); 
         target.store.removeAll(); 
         target.displayField = 'Text'; 
         target.valueField = 'Value'; 
         target.store = RegionsStore; 
         target.store.reload({ 
           params: { 
            data: 'regions', 
            discriminator: 'area', 
            value: sender.getValue() 
           } 
         }); 
         target.setDisabled(false); 
        }); 
    }); 
    

    ありがとう!

  • 答えて

    0

    最初のコンボ選択ハンドラでcombo-2.store.clearFilter();を呼び出して、更新する前に2番目のコンボ内部フィルタをクリアします。この質問を見つけることが他の人のために

    +0

    はあなたのソリューションがまだ動作しません... – Hoghweed

    +0

    は、この後にそれを置くことがありますか? target.store.reload({ のparams:{ データ: '領域' 弁別: 'エリア'、 値:sender.getValue() } target.store.clearFilter(); – Thevs

    +0

    そしておそらくターゲットコンボの値を ''(空文字列)に設定する必要があります。 – Thevs