Как получить родительское значение в этой ситуации (с помощью Telerik Panel Bar) - PullRequest
0 голосов
/ 14 декабря 2010

Использование 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

Мне нужно создать URL на основе 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 методов

Приветствия

1 Ответ

0 голосов
/ 14 декабря 2010

Хотя я не хотел этого, мне удалось сохранить значение следующим образом:

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

Интересно, если кто-нибудь получит более чистое решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...