2017-06-06 14 views
1

ユーザーがいずれかの行をクリックしたときに選択した要素を取得しようとしています。そのため、私はのselectionChangeイベントを使用していますが、returnsのインデックスの選択したのはです。私もページネーションとソートをアクティブにしているので、現在の要素を取得するためにそのインデックスを使用することはできません。少なくとも、どのように行うかはわかりません。剣道UIのグリッドコンポーネントで選択した要素を取得する方法角

私は、グリッドを養うためにで使用するデータvarがこれです:

要素が私の元のデータ配列であり、 状態が(取る、スキップ設定で オブジェクトである
this.gridData = process(this.elements, this.state); 

、並べ替え)。

アイデア?

+0

唯一の方法は、オブジェクトの状態から現在表示されている要素を計算することです: 'page * items_per_page + index'はソートされた項目の実際のインデックスです... – Seididieci

+0

ええ、私は現在そのアプローチを試みていましたが、それを "手動で"計算しなければならないのはかなり複雑に思えますが、私はその要素をどこかから直接得ることができると思っていました... – Dunos

+1

私はちょっとしたプランナーで演奏しました、インデックス値は剣道グリッドハンドルページングなど... [リンク](http://plnkr.co/edit/66s2i0TbWcTjIOrVV6Q3?p=preview)を参照してください。 – Seididieci

答えて

1

ページングでグリッドを使用している場合は、GridDataResult要素を考慮する必要があります。

スキップが10に設定されていて、4ページ目にある場合、グリッドの最初の要素をクリックすると、イベントのインデックスは40になります。私のコードでは、 My Gridは、スキップとテイクのプロパティを持つStateを使用します。ページを移動するときに、変更をスキップして表示される要素を反映させます。 (私は一度に10件の結果を示すだ場合。)ので、4ページ、40になりますスキップ私は、この要素のIDをしたいときに、私が使用:

let fac = this.gridView.data[value.index - this.state.skip].id; 

GridViewのは私のGridDataResultです。値は私が渡しているイベントで、状態は私の状態です。私の要素は必要なIDプロパティを持っているので、それが私の目標です。

これが役に立ちます。

ああ、私が追加しなければならないイベントで受け取るインデックスは、あなたのデータソースではなくGridDataResultを参照します。したがって、フィルタがオンになっている場合、GridDataResultのエントリ数は少なくなります。しかし、私のアプローチはGridDataResultの構成には関係しません。

関連する問題