2017-08-14 105 views
0

我得到一個數據庫表,其中包含一個指向其父節點的屬性,它也具有導航屬性「_toSubTasks」和「_toParent」。對於這張表,它有一個OData服務。SAPUI5:顯示包含層次結構的表的樹表

例如:任務{TASK_ID,parent_task_id,...}

對於每一個任務,我們可以得到它的直接的子任務,但每個子任務也可以有自己的子任務。如何獲得所有層級的子任務(直接子任務和子任務的子任務)並顯示UI5樹表?

+0

您需要根據您的初始列表構建一個新的分層模型。 https://stackoverflow.com/questions/18017869/build-tree-array-from-flat-array-in-javascript –

+0

感謝您的回答。是的,我可以構建包含層次結構的Json模型,然後爲樹表設置模型。它絕對有效。但我相信最簡單的方法是使用導航屬性「_toSubTasks」來構建層次結構。但我不知道如何... – Lucifa

回答

0

treetable將評估您的主要實體的所有屬性。 如果它發現一個屬性是一個對象或一個數組,它會認爲它是一個子節點。

由於您的導航屬性作爲延遲對象存在於您的odata模型實體中,通常樹應該將您的導航屬性標識爲子節點。 (因爲它是一個對象)

所以我期望簡單地將您的主要實體集綁定到樹項目應該是足夠的。

作爲附加測試,您可以嘗試調用您的模型的讀取方法,在這樣的導航屬性上。應執行延期並加載相關項目。

雖然有一個重要的評論:我上面的推理基於sap.m.tree元素。