如何在这种情况下获取父值(使用Telerik Panel Bar)

时间:2010-12-14 03:58:20

标签: telerik many-to-many parent one-to-many

使用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

我需要根据categoryIDproductID

生成网址

即。 :

.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方法

干杯

1 个答案:

答案 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;
                }));

如果有人最终得到更清洁的解决方案,那就不用了。