2016-10-21 33 views
0

我想在Mega菜單中顯示Umbraco網格,並且在這種情況下我不能使用@CurrentPage.GetGridHtml(「」)。 我需要使用節點變量:myNode.GetProperty(「menuGrid」)在Mega菜單中顯示Umbraco網格

要做到這一點的最佳方法是什麼?

回答

1

您可以使用各種方式從網格獲取內容。他們都在這裏描述:https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/grid-layout/render-grid-in-template

在我看來,最好的方法是創建自定義網格視圖/渲染器,並在此處使用適當的方法來檢索內容。

@CurrentPage.GetGridHtml(Html, "yourGridPropertyAlias", "customgridview") 
@CurrentPage.GetGridHtml(Html, "yourGridPropertyAlias", "/views/othercustomgridview.cshtml") 
+0

謝謝。我的問題是我沒有訪問CurrentPage。菜單顯示國家列表,當您懸停在國家時,將顯示網格。 (每個國家都有自己的網格) 因此,通常情況下(與其他所有屬性一樣),我會遍歷我的國家/地區列表併爲其中的每個國家/地區動態顯示網格。在這裏我找不到一種方法。 – mirosz

+0

嗯,你正在渲染這些數據?在模板/視圖上,您​​應該可以使用CurrentPage或Model.Content或至少實例UmbracoHelper類,並通過分配的內容項來執行此操作。如果我沒有記錯的話,你也可以這樣做:@ Html.GetGridHtml(...)並傳遞你想要抓取網格html的屬性別名的模型。 –

0

Marcin的建議對尋找解決方案很有幫助。

爲了以防有人正在尋找類似的東西,我讓我的INode沒有訪問GetGridHtml。在轉換爲打印內容後,我重新獲得了該屬性

foreach (var country in countryNode.ChildrenAsList) 
               { 
                var myNode = Umbraco.TypedContent(country.Id); 
                var property = myNode.GetGridHtml("menuGrid"); 
               }