2016-09-22 77 views
0

所以,我非常喜歡使用劍道,而且我正在搞亂他們的mvc網格。我用服務器端分頁和排序的ajax數據源定義了一個網格。 ajax調用返回的對象具有一個IEnumerable屬性。我希望使用網格的分層功能將此集合顯示爲每行的子網格。我讀過很多關於分層網格的博客和Telerik的文檔,我發現每個例子都爲子網格定義了一個客戶端模板,客戶端模板是一個單獨的ajax調用來獲取其數據的網格。我不需要或者不想單獨調用子網格,因爲我已經獲得了父網格模型中需要的所有數據。有沒有一種方法可以完成我想要做的事情?Kendo MVC網格層次結構 - 由父級生成的子網格Ienumerable property

回答

0

所描述的情況可以這樣實現:

  • 的主數據的項目應該有一個字段是普通的對象數組的值 - 根據你說的話,你應該已經有了。
  • 主網格配置應該定義一個帶有子網格的client detail template,該網格已經定義了列,Ajax數據源和模型類型,但沒有綁定到任何特定數據(即沒有0​​動作)。
  • detailInit事件主電網,get()從主數據項(e.data)嵌套陣列,並且經由data()到詳細Grid的dataSource實例分配它。

http://dojo.telerik.com/iLAza

您可能會注意到的toJSON()在上面的例子中使用。其目的是剝離所有Kendo-UI專用ObservableObject東西的嵌套Features數組,並將其轉換回普通對象的常規JavaScript數組。這一步是可選的,但是如果您想要將詳細網格的數據與主網格中的數據分離,則這是必需的。

+0

謝謝。這很好。只是好奇,是否有一種方法來設置沒有JavaScript函數的子網格的數據源?到目前爲止,我對網格所做的一切都是在Razor中使用流暢的api,我想知道是否有辦法解決這個問題。再次感謝。 – wakers01

+1

使用JavaScript進行細節網格在您的場景中是必需的,因爲流利的API無法以聲明方式定義細節網格數據和主數據項之間的關係。 – dimodi

+1

我感謝你的幫助。 – wakers01