あなたのプロジェクトを説明できますか? 100グリッドまたは100モデル/データストア?
私はモデル/ソース/グリッド列定義でデータベースを作成し、データをjsonでマッピングすることで動的にグリッドを構築します。 AjaxリクエストがあるbeforeRenderリスナーを作成してから、ajaxのsuccessルーチンでモデル/ソース/グリッド定義を作成または設定して... doneを実行すると、これはかなり簡単です。
あなたが...例えば
var areaEast = Ext.create('Ext.Panel', {
region: 'east',
collapsible: true,
split: true,
width: 200,
title: 'east',
items: [ ],
layout:'accordion',
autoScroll: true,
listeners : {
beforeRender : function() {
Ext.Ajax.request({
url: './js/tabs.pl',
disableCaching: false,
success: function(response){
var text = Ext.decode(response.responseText);
Ext.each(text.rows, function(row, index) {
areaEast.add(row);
});
},
});
},
},
});
をこの手法(非グリッド)を見ることができます...そして、次の何のようないくつかのJSONは、オンザフライで[]のext項目のカップルが生成されます...
Content-Type: application/json
{"rows":[{"html":"str_0.720264353647025","iconCls":"ico_home","title":"tab_1","xtype":"panel"},
{"html":"str_0.967244391419577","iconCls":"ico_gear","title":"tab_2","xtype":"panel"},
{"html":"str_0.713014552355148","iconCls":"ico_home","title":"tab_3","xtype":"panel"},
{"html":"str_0.0254531761575763","iconCls":"ico_gear","title":"tab_4","xtype":"panel"}]}
返信いただきありがとうございます。私が気にしているのは、各グリッドのテンプレートをサーバーのXML形式で保持することです。これは、GridのPreRenderイベントでAjax経由でクライアント側に引き渡されます。このxmlファイルには、列構造の詳細と追加のdetalsがあればそれがあります。あなたが言ったように、PreRenderのAjaxの成功イベントでは、これらのXMLを解析してグリッドの構造/モデルを作成します。後でXML/JSON形式でデータをロードするためにデータベースにAjax呼び出しを送信します。いいですか?それとももっと良い方法がありますか?ありがとう! – abhilashca
さて、json/xmlは本当にあなたの毒の状況を選びます。私はcgiを持っていて、「報告書」のツリーを示しています。各レポートは、もしあればグリッド、列、データソース、ヘッダー、もしあればグラフの種類、軸の設定などを記述するデータベーステーブルの定義です。これは上記のテクニックを使って説明するようにページを形成するために使用されます。 – hpavc
。 JSON/XMLとPreRenderイベントを試してみましょう。提案ありがとう:)乾杯! – abhilashca