2010-12-15 5 views
4

グリッドをExtJSで作成し、リフレッシュが要求されたときに定義したdivにレンダリングします.JQueryを使用してdivを単に空にしてからグリッドを再描画します新しいオブジェクトを毎回作成:EXTJSデータストアを使用したグリッドの再レンダリング

var grid = new xg.GridPanel({ 
    store: store, 
    columns: [ 
    ... 
    renderTo: 'db-grid' 

そして、私はこれを使用DIV空にする:

$("#db-grid").empty(); 

これは3様または4リフレッシュのためにうまく機能し、本当にゆっくりロードするように思えるが、私はこれは、これらのオブジェクトをすべて再作成するためです。毎回変更されるのは「ストア」だけです。私はそれをAJAXの要求を通じて取得します。毎回新しいグリッドを作成せずにこれをリフレッシュする方法はありますか?

私はExtJSには新しく、ここではJQueryから少し変わっています。これは、ExtJSの代替案が分かっている場合、JQueryの "e​​mpty()"関数を使用している理由です代わりにそれを使用するとうれしいです。

ありがとう!

答えて

4

load(Object options)およびreload(Object options)の方法をhttp://dev.sencha.com/deploy/dev/docs/に見てください。

この機能の例はExt.PagingToolbarです。私はこのコードを含ま

doRefresh : function(){ 
     this.doLoad(this.cursor); 
    }, 

// private 
    doLoad : function(start){ 
     var o = {}, pn = this.getParams(); 
     o[pn.start] = start; 
     o[pn.limit] = this.pageSize; 
     if(this.fireEvent('beforechange', this, o) !== false){ 
      this.store.load({params:o}); // here is the call you're interested in 
     } 
    }, 

doLoad()は、単にメソッドdoRefresh()から呼び出されます。このクラスは、グリッドを毎回破壊することなく、グリッドとそのストアを更新するボタンが含まれています完全な例のために、本当にあなたが心配する必要があるのは、load()メソッドまたはreload()メソッドだけです。 APIを読んで、メソッドに渡すことができる引数の完全なリストを確認してください。

関連する問題