[英]Kendo Tabstrip MVC Adding Dynamic Number of Tabs
我正在构建基于选项卡的Web应用程序。
我可以在AJAX调用后使用以下代码从javascript加载新标签:
tabStrip.append(
{
encoded: false,
id: id,
text: name + html,
content: divData
});
但是,现在我需要在启动时加载一些选项卡,并且如果我知道要加载的选项卡数量(并且它从未更改过),我可以在Razor中这样做:
.Items(items =>
{
items.Add().Text("Home").Content(@Html.Action("Load","Home").ToHtmlString()).Selected(true);
items.Add().Text(Model[0].Name).HtmlAttributes(new { id = Model[0].Id.ToString(CultureInfo.InvariantCulture) }).Content(@Html.Action("Index", Model[0].Controller).ToHtmlString());
items.Add().Text(Model[1].Name).HtmlAttributes(new { id = Model[1].Id.ToString(CultureInfo.InvariantCulture) }).Content(@Html.Action("Index", Model[1].Controller).ToHtmlString());
}
但是在BindTo语法中,到目前为止我只能得到:
.BindTo(Model, (item, tab) =>
{
item.Text = tab.Name; //Needs to not be encoded!
item.ContentUrl = tab.Url;
item.Id = Id does not exist!
or
item.HtmlAttributes = cannot be set!
})
不幸的是,除了最基本的之外,在KendoUI网站上确实没有很好的例子。
您可以像这样使用“手动绑定”:
.Items(items =>
{
foreach (var tab in Model.MyTabs) {
// any logic you need here, for example
items
.Add()
.Text(tab.Name)
.HtmlAttributes(new { id = tab.Id.ToString() })
.Content(@Html.Partial("MyTabView", tab.Model).ToHtmlString());
}
}
因此,基本上,如果您具有选项卡的动态集合,则可以手动遍历此集合并分别配置每个选项卡-您无需在此处使用BindTo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.