使用telerik Panel Bar
Html.Telerik().PanelBar()
.Name("PanelBar")
.BindTo(Model, mappings =>
{
mappings.For<Category>(binding => binding
.ItemDataBound((item, category) =>
{
item.Text = category.CategoryName;
})
.Children(category => category.Products));
mappings.For<Product>(binding => binding
.ItemDataBound((item, product) =>
{
item.Text = product.ProductName;
}));
})
http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-panelbar-data-binding.html
我需要根据categoryID
和productID
即。 :
.Children(category => category.Products));
mappings.For<Product>(binding => binding
.ItemDataBound((item, product) =>
{
item.Text = product.ProductName;
item.Url = (Get at the parent to get the categoryid somehow) + "/Details/" + product.productID;
}));
但我无法弄清楚如何访问任何类别字段。
我无法从产品中获取它,因为它将是一个多,我将拥有product.Categories.
linq方法
干杯
答案 0 :(得分:0)
虽然我不想,但我设法存储了这样的值:
mappings.For<Category>(binding => binding
.ItemDataBound((item, category) =>
{
item.Text = category.CategoryName;
item.ActionName = category.CategoryID.ToString();
})
.Children(category => category.Products));
mappings.For<Product>(binding => binding
.ItemDataBound((item, product) =>
{
item.Text = product.ProductName;
item.Url = item.Parent.ActionName + "/Detail/" + product.ProductID;
}));
如果有人最终得到更清洁的解决方案,那就不用了。