2017-06-06 30 views
1

我試圖在用戶點擊任何行時獲取選定的元素。爲此,我正在使用selectionChange事件,但只有returns索引選擇了元素的狀態。由於我也有分頁和排序激活,我不能使用該索引來獲取當前元素,或者至少我不知道如何去做。如何獲取Kendo UI的Grid組件中的選定元素Angular

我用飼料網格中的數據的VAR是這樣的:

this.gridData = process(this.elements, this.state); 

元素是我的原始數據陣列和狀態國家對象的設置(跳過,取,排序)。

任何想法?

+0

也許唯一的方法是計算哪些元素目前可以從對象的狀態中看到:'page * items_per_page + index'是您在已排序項目中的真實索引... – Seididieci

+0

是的,我目前正在嘗試這種方法,但它似乎相當複雜,不得不「手動」計算它,我希望能夠直接從某個地方獲得該元素... – Dunos

+1

我玩過一下plunker,索引值是原始列表的真正索引,如果你讓Kendo網格句柄分頁等...看到[鏈接](http://plnkr.co/edit/66s2i0TbWcTjIOrVV6Q3?p=preview) – Seididieci

回答

1

因此,當您使用帶分頁的網格時,必須考慮GridDataResult元素。

因此,如果您將跳過設置爲10,並且您位於第4頁上,那麼當您單擊網格中的第一個元素時,事件的索引將爲40.在我的代碼中,我使用的方式這是: 我的網格使用一個狀態,該狀態具有跳過和執行的屬性。在瀏覽頁面時,跳過更改以反映顯示哪些元素。因此,第4頁,跳號爲40(如果我展示10個結果的時間。)所以,當我想這個元素的ID,我使用:

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

GridView的是我的GridDataResult。價值是我傳入的事件,州是我的國家。我的元素有我需要的ID屬性,所以這就是我的目標。

希望這會有所幫助。

哦,我應該補充一點,你在事件中收到的索引指的是GridDataResult而不是你的數據源。所以,如果你有一個過濾器,GridDataResult將有更少的條目。但是,我的方法並不關心GridDataResult的組成。