1

編集:回答が見つかりましたこの投稿 で回答を見つけました。デフォルトで true に設定されている remoteSort というプライベート ストア構成フィールドがあるため、remoteSort が明示的に false に設定されていない限り、クライアント側のソーターは使用されません。


機能のグリッドをそれらのユーザー ストーリーの数で並べ替えようとしています。私はいくつかの異なることを試しました。1 つ目は、データ ストア構成のソーター関数です。

    Ext.create('Rally.data.wsapi.Store',{
        model: 'PortfolioItem/Feature',
        autoLoad:true,
        start: 0,
        pageSize: 20,
        fetch: ['Name', 'ObjectID', 'Project', 'Release', 'UserStories','State','_ref'],
        context://context stuff
        filters:[
            //filter stuff
        ],
        sorters:[
            {
                property:'UserStories',
                sorterFn: function(o1, o2){
                    return o1.get('UserStories').Count - o2.get('UserStories').Count;
                }
            }
        ],
        listeners: //listener stuff

しかし、これは常に何も返しませんでした。(ソーターが含まれていない場合、すべての正しい機能を取得できましたが、機能ごとのユーザー ストーリーの数を並べ替えることができませんでした)。

この投稿に見られるように、グリッドの列にソーターを追加してみました:

    xtype: 'rallygrid',
        width:'50%',
        height:400,
        scroll:'vertical',
        columnCfgs: [
            {
                text:'Stories', 
                dataIndex:'UserStories', 
                xtype:'numbercolumn',
                sortable:true,
                doSort: function(direction){
                    var ds = this.up('grid').getStore();
                    var field = this.getSortParam();
                    console.log(ds, field, direction);
                    ds.sort({
                        property: field,
                        direction:direction,
                        sorterFn: function(us1, us2){
                            return (direction=='ASC'? 1 : -1) * (us1.get(field).Count - us2.get(field).Count);
                        }
                    });
                },
                width:'20%',
                renderer:function(us){
                    return us.Count; 
                }
            }
        ]

しかし、私は他のスレッドの人が抱えていたのと同じ問題を抱えていました。

4

0 に答える 0