私はExt Js 4を使用しており、その中にタブパネルとタブがあります。新しいタブを追加し、すでに開いている場合は同じタブを追加できないようにしました。いずれにせよ、最初に開いた後はデータがリストされますが、再オープン後にリストすることはできません。Ext Js 4 には datagrid 上のデータのリストに関する問題があると思います。この問題に関する提案とサンプルを教えてください。前もって感謝します...
1 に答える
gridpanel
あなたの質問に基づいて、次の内部があるように聞こえますtabpanel
:
いずれにせよ、最初に開いた後はデータがリストされますが、再オープン後にリストすることはできません。Ext Js 4 には datagrid 上のデータのリストに関する問題があると思います。
タブを最初に開いたときgridpanel
にデータが含まれている場合、タブを閉じて再度開くと、データはありません。これが間違っている場合は修正してください。
を作成するコードとは別にdatastore
for を作成している場合、これは通常の ExtJS の動作です。gridpanel
gridpanel
タブを閉じる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 リクエストを削減するのに役立ちます。