2009-05-17 3 views
0

これはextJSを使用したときの最初のbashで、数時間の苦労の後、いくつかのことがうまくいきます。私は遠隔でリストをページしようとしていますが、私は間違ったことをしているに違いありません。extJSコンボを遠隔操作で読み込んでいない

マイデータストアとコンボ見て次のように:

var remoteStore = new Ext.data.JsonStore({ 
     //autoLoad : true, 
     url   : 'addition-lists.aspx', 
     fields  : [{name: 'extension_id'}, {name: 'extension'}], 
     root  : 'extensionList', 
     id   : 'remoteStore'    
    }); 
. 
. 
         xtype   : 'combo', 
         fieldLabel : 'Remote', 
         name   : 'remote', 
         displayField : 'extension', 
         valueField : 'extension_id', 
         mode   : 'remote', 
         //pageSize  : 20, 
         triggerAction : 'query', 
         typeAhead  : true,      
         store   : remoteStore, 
         anchor  : '95%' 

コンボは、ローカルにロードする動作しますが、できるだけ早く私は、リモートに切り替えると、それは空白のまま。

JSONを返す私のASP.NETページは、このようなものです:あなたはこの質問ExtJS combobox problem in IE

答えて

2

コンボのデフォルトではminCharsプロパティが4に設定されているため、クエリは4文字を入力した後にのみ送信されます。 minCharsを設定すると、ほぼ望ましい動作が得られます。

オートコンプリートで検索されたアイテムが現在のページにある場合でも、新しいサーバークエリが送信され、デフォルトでは新しいページの最初のアイテムに選択が行われるからです。

0

プロキシを設定する必要があり、すなわち

proxy: new ScriptTagProxy

を設定

'store'をリモートに読み込むためのプロパティ。正確な構文の例を見てください。

編集:JsonStoreのショートカットを使用しているので、前のメモを無視してください。

typeAhead: true, 
    typeAheadDelay: 500, 
    triggerAction: 'all', 
    selectOnFocus:true, 

と(loaddataのを使用して)レコードのサーバー側のプリフェッチをしないでください。

は、あなたのコンボにこれらのプロパティのすべてを適用するようにしてください。内部フィルタが非常に痛いため、さまざまなプリフェッチのフィルタリングされたレコードを使用できます。 一方、サーバー側ですべてのレコードをプリフェッチすると、なぜコンボのリモートアクセスが必要になるのですか?

-1

を参照することができます

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Clear(); 
    Response.Write(GetRemote()); 
} 
0

いくつかのこと。まず、これを行うとき:

remoteStore.loadData(<%= GetRemote()%>);

あなたは実際にあなたのjavascriptからのリモートコールを行っていません。 GetRemoteサーバー関数をレンダリング時間のページに直接呼び出した結果をエコーし​​ます。おそらくあなたが意図するものではないでしょうか? GetRemoteがあなたのコンボデータを書き出している場合(それが正しく動作している場合)、ローカルデータのコンボ設定を使用できるはずです。実際にリモート呼び出しを行うことが意図されている場合は、Extに付属のいくつかの例に示すように、サーバータグを削除してプロキシURL経由でデータをロードする必要があります。

もう1つのことは、Page_Loadコードでデータの読み込み、書式設定、返信の方法について実際には表示されないことです。ソースの表示と、タグが実際に期待するデータに置き換えられていることを確認することをお勧めします。データをロードするために実際のリモート呼び出しに切り替えた場合、Firebugを使用してXHR呼び出しを検査し、そのようにデータが失われることを確認できます。

{"extensionList": [ 
    {"extension_id": 1, "extension": "js"}, 
    {"extension_id": 2, "extension": "aspx"} 
]} 

それはそのように見えない場合は、リモートストアが何かを見つけることができません。

+0

@bmoeskau:私のデバッグ後に 'loadData'呼び出しが残っていたことを謝ります。ローカルで動作することを確認するだけでした。実際の問題については私の答えを見てください。 – ProfK

1

あなたは上記のお店を設定した方法で、あなたのASPスクリプトからの結果は、このような何かをお読みください。

関連する問題