2017-03-28 2 views
0

ストアのhasMany要素に設定された列でextjsグリッドをグループ化できるかどうかを知りたい。私の例は何かを再作成するのに十分なものではありませんが、私はただイエスを探しています。ここには例があります。ありがとう!EXTJS 4.2.1のグリッド行をグループ化する方法は、多くの関係がありますか?

私はライブラリブック用のUIを設定するextjsストアを設定しています。 bookStoreには、本がチェックアウトされるたびにモデルを指すhasMany関係があります。このhasManyモデルは、Checkoutsのリストを示すブックのUIのグリッドパネルにバインドされています。

ライブラリメンバが本をチェックアウトしたグリッドパネルの行をグループ化したい(3人のユーザーがそれぞれ2回チェックアウトした、現在はmemberNameとcheckoutDateの6つの行がある)。それぞれ2行下にcheckoutDateが表示されます)。

私はそれが無い私がしようとした構成の問題、でもカスタムgroupFields、およびストアから「子」オブジェクトを参照する別の方法(例えば ExtJS 6 grid group by associated models)を動作させることはできません

これは大体どのようなモデルの外観です私の説明を明確にするのを助けるように。私はこれが構文上正しいとは限りませんが、目標が可能かどうか、どのアプローチが取れるかを調べようとしています。

Ext.define('Book.model.BookModel', { 
    extend : 'Ext.data.Model', 
    alias : 'model.BookModel', 
    fields : [{ 
     name: 'Title', 
     type: 'String' 
    }], 
    hasMany:[{ 
     name: 'checkouts', 
     model: 'Book.model.Checkouts' 
    }] 
}); 

Ext.define('Book.model.Checkouts', { 
    extend : 'Ext.data.Model', 
    alias : 'model.Checkouts', 
    fields: [{ 
     name: 'Name', 
     type: 'string' 
    },{ 
     name: 'checkoutDate', 
     type: 'date' 
    }], 
    associations : [{ 
     model: 'Book.store.BookStore', 
     type : 'belongsTo', 
     name: 'bookStore' 
    }] 
}); 

Ext.define('Book.store.BookStore', { 
extend: 'Ext.data.Store', 
model : 'Book.model.BookModel', 
groupField: '????', 
//etc. 
}); 

コンフィグ私がしようとしました:

groupField: 'Checkouts.Name', 

groupField: 'checkouts.Name', 

グリッド設定--in:

groupers: [{ftype:'grouping'}], 
groupers: [{ 
         property: 'Checkouts.name',//and with checkouts.name 
         root: 'data', 
         groupFn: function (val) { 
         return val === val ? val : ''; 
        } 
      }] 
+0

おそらくあなたがやってみたことがあるかもしれません。 – incutonez

+0

私は質問で以下に試したことを列挙しました。しかし、解決策以上に、私はまた、これがまったく可能かどうかを知りたがっていますか? – Sturzl

+0

それは事だ...「チェックアウト」は技術的には店舗だよね?したがって、 'checkouts.name'を実行しても実際に何も意味するものではありません。名前プロパティを取得するために、単一の' Checkouts'モデルが必要です。基本的には、あなたのグリッドのストアは 'checkouts'でなければなりません。あなたのgrouperのプロパティは' name'でなければなりません。 – incutonez

答えて

0

はこれまでのところ、それはやっているようです店舗--in

これはgroupingでは不可能ですが、いくつかの可能性のある他の可能性があります。grid solutions/plugins彼のタイプはSummary Grid、またはTree Gridです。別の2つの店舗以外の別のオプションは、Data Binding examplesにあるものと同じである可能性があります。

関連する問題