我对新的umbraco网格功能不熟悉,我对此有疑问。
我有一篇文章,其中我使用网格功能来显示除该图像之外的一些图像和文本。这很好。
在该页面的属性中,我放置了一个复选框,表示该商品是否可以出售,选中时,该商品应自动显示在待售页面上。
我可以在该页面上获得待售产品,但现在我还想在该页面上显示图像和文字。我创建了一个带有自定义视图模型的List,用于保存每个待售产品的内容。问题是将JObject提供给GetGridHtml函数。这个函数需要一个字符串,而我提供的属性会导致错误。
将网格内容显示在该单独页面上的最佳方法是什么?
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var home = CurrentPage.Site();
List<ForSaleItemsViewModel> forSaleItemsVM = new List<ForSaleItemsViewModel>();
if(home.Children.Any())
{
foreach(var childPage in home.Children)
{
if(childPage.Children.Any())
{
foreach(var child in childPage.Children)
{
if(child.HasProperty("ForSale") && child.ForSale)
{
forSaleItemsVM.Add(new ForSaleItemsViewModel
{
ID = 1,
Content = child.Content,
Sold = child.Sold
});
}
}
}
}
}
}
<div class="container">
@foreach(var item in forSaleItemsVM)
{
if (item.Sold)
{
<span>SOLD!</span>
}
CurrentPage.GetGridHtml(item.Content.ToString(), "bootstrap3");
}
</div>
答案 0 :(得分:1)
根据Umbraco论坛,不可能这样做。我得到了这个答案:
如果您看到有关网格布局的最佳实践的文档 https://our.umbraco.org/Documentation/Using-Umbraco/Backoffice-Overview/Property-Editors/Built-in-Property-Editors-v7/Grid-Layout-Best-Practices 有一章关于网格布局的限制 https://our.umbraco.org/Documentation/Using-Umbraco/Backoffice-Overview/Property-Editors/Built-in-Property-Editors-v7/Grid-Layout-Best-Practices#Limitations。 使用网格布局的限制是它不适用 重用内容。
它说 - 没有托管api可以深入到网格内容中 目标特定单元格内容 - 因此不建议使用网格布局 存储可重复使用的内容 - 它根本就不是为此而设计的 场景。如果您希望在多个页面中重复使用内容,它仍然是 建议您将这些内容存储为单独的内容 节点,因此可以像往常一样存储,缓存和查询。