0

dGrid が JsonRest ストアに支えられている場合、OnDemandGrid スタイルの dGrid でデータをフィルタリングする dijit/TextBox をどのように実装しますか? ボックス内を検索し、入力時にグリッドを更新したい。

dGrid ドキュメントで例を見つけることができません。これは単なるもののように見えますが、データグリッドでできるように dgrid でデータをフィルタリングすることは可能ですか? もしそうなら、どのように?- MemoryStore を使用し、それを JsonRest ストアに交換しても機能しません。

ストアにクエリを実行してからグリッドを更新する必要がありますか? オブザーバブルが必要ですか? dojo.store.util.SimpleQueryEngine はどうですか? それが答えの一部ですか。

おそらく、クエリに応答するには、サーバーにもいくつかの変更が必要です。

4

1 に答える 1

0

かなり簡単であることがわかりました。グリッドでクエリ プロパティを設定し、refresh() を呼び出すだけです。

次に、?search=whatever クエリ文字列を処理するために、サーバー側のコードを簡単に変更する必要がありました。

これが私のコードです:

// assuming we have a declarative dijit/TextBox and a reference to our grid in myGrid                                           
// wait for DOM before wiring up our textbox (when dijit parsed)
ready( function() 
{
    var timeoutId = null,
        searchTextBox = registry.byId( 'searchTextBox' );

    searchTextBox.watch( 'value', function( name, oldValue, newValue ) 
    {
        if( newValue.length == 1 )
        {
            return;
        }   

        if( timeoutId ) 
        {
            clearTimeout( timeoutId );
            timeoutId = null;
        };

        timeoutId = setTimeout( function() 
        {
            myGrid.query = { search: newValue };
            myGrid.refresh();
        }, 300 );
    } );
} );
于 2013-01-11T18:51:53.530 に答える