0

私はExt Js 4を使用しており、その中にタブパネルとタブがあります。新しいタブを追加し、すでに開いている場合は同じタブを追加できないようにしました。いずれにせよ、最初に開いた後はデータがリストされますが、再オープン後にリストすることはできません。Ext Js 4 には datagrid 上のデータのリストに関する問題があると思います。この問題に関する提案とサンプルを教えてください。前もって感謝します...

4

1 に答える 1

0

gridpanelあなたの質問に基づいて、次の内部があるように聞こえますtabpanel

いずれにせよ、最初に開いた後はデータがリストされますが、再オープン後にリストすることはできません。Ext Js 4 には datagrid 上のデータのリストに関する問題があると思います。

タブを最初に開いたときgridpanelにデータが含まれている場合、タブを閉じて再度開くと、データはありません。これが間違っている場合は修正してください。

を作成するコードとは別にdatastorefor を作成している場合、これは通常の ExtJS の動作です。gridpanelgridpanel

タブを閉じるgridpanel(破棄する) と、データを保持しているストアも破棄されます。

いくつかの解決策があります。ストアstoreIdを登録しStoreManager、コンポーネントが破棄されたときにストアが破棄されないようにする構成を与えることができます。この方法を使用するgridpanelと、次のようにストアで構成することもできます。

// other grid configs...
store: Ext.StoreManager.lookup('yourStoreId'),
// other grid configs...

このメソッドは、新しいタブを作成するときにストア データをリロードしません。gridpanel新しいタブを作成するたびにストアが新しいデータをロードするようにしたい場合は、単にストア作成コードを含める必要Ext.create(Ext.data.Store, { //etc..がありgridpanelます。

その 2 番目の方法では、閉じるたびgridpanelに破棄し続けますがdatastore、新しいタブを作成するたびにストアを再作成してリロードするため、問題はありません。

gridpanelストア自体が破棄されたときにストアを破棄するかどうかを指定できる構成もどこかにあると思います。

ただし、通常は最初の方法を使用し、ストアが本当に不要になったときに手動でストアを破棄します。または、必要なときにデータを手動でリロードします。サーバー上の不要な Ajax リクエストを削減するのに役立ちます。

于 2012-08-18T15:37:55.557 に答える