2011-02-17 4 views
1

ExtJSグリッドの列を動的にロードするために必要なことを理解することができません。列ヘッダーをJSONとして送信して、グリッドに取り込み、必要な列を生成させたいと考えています。ExtJSの列を動的にロードする

は具体的には、私はGroupingHeaderプラグインを使用して、これをやりたいと思っていますが、私は本当にただ最初GroupingHeaderプラグインの追加複雑させずにそれを行うには、その後、私はその問題に取り組むことができますどのように把握したい:)

ここ

私は列ヘッダーを持っているいくつかのサンプルJSONデータである:

[ 
    { 
     "run_id":"110207gad", 
     "iterations":[ 
      "1_14", 
      "2_16", 
      "3_18", 
      "4_20", 
      "5_22" 
     ] 
    },{ 
     "run_id":"110207gae", 
     "iterations":[ 
      "1_14", 
      "2_16", 
      "3_18", 
      "4_20", 
      "5_22" 
     ] 
    } 
] 

これは私がrun_idがグループ化されたヘッダであろうとiterationsは次のようになり、グループ化を実行する必要があるデータであります列ヘッダ。現在、iterationsを列として表示してから、グループ化が機能するように作業することができてうれしいです。

誰かが正しい方向に私を指すことができたり、どこから始めるべきかのヒントを教えてくれる人は、非常に役に立ちます!私は自分自身でこれを理解することを超えているわけではありませんが、私はExtJSの例を見て、いくつかのGoogle検索をすることから分かりません。

答えて

1

ExtJSの例のソースコードを見ることをお勧めします。

http://dev.sencha.com/deploy/dev/examples/grid/array-grid.js

それはあなたに始めるための情報のかなりの量を与えるべきです。

あなたは、この形式から開始、サーバーからそれを渡すことができます:

{"success":true,"message":"Loaded data","data":[{"run_id":1,"iterations":"1"},{"run_id":2,"iterations":"2"},{"run_id":3,"iterations":"3"}]}

次に、あなたの読者は次のようになります。

var reader = new Ext.data.JsonReader({ 
    totalProperty: 'total', 
    successProperty: 'success', 
    idProperty: 'run_id', 
    root: 'data', 
    messageProperty: 'message' 
}, [ 
    {name: 'run_id'}, 
    {name: 'iterations', allowBlank: false} 
]); 
+0

この例ではなくて、単純なグリッドを作成する方法を示していますサーバーからデータをロードします。サーバーからデータをロードするには、 'Ext.data.JsonStore'と' Ext.data.JsonReader'が必要です。 Ext> data> JSONStoreセクションのドキュメントhttp://dev.sencha.com/deploy/dev/docs/をご覧ください。お役に立てれば。 – Rafal

+0

私は配列を使って作成することができますが、配列を "ビルド"するためにJavaScriptにPHPコードを挿入することでこれを行うのはあまり優雅ではありません。私はかなりJSONStoreの例を使いこなしていますが、実際には列を動的に生成したいのと同じようにJSONデータをどのようにフォーマットする必要があるかを実際に理解していません。しかし、情報をありがとう! – Jared

+0

@ Jared構造の定義に関するヒントを追加して答えを更新しました。この例ではJSONを使用したコードを確認できます。 Firebugを使用すると、サーバーから渡されたJSON文字列を見ることができます。 http://dev.sencha.com/deploy/dev/examples/writer/writer.js – Rafal

関連する問題