Asp.net mvc 4 用于MVC的剑道UI:在PanelBar中呈现网格
MVC4。当我将Asp.net mvc 4 用于MVC的剑道UI:在PanelBar中呈现网格,asp.net-mvc-4,kendo-ui,kendo-grid,kendo-asp.net-mvc,Asp.net Mvc 4,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,MVC4。当我将网格放在剑道UI面板条中时,它无法按预期工作。视图最终不是将网格放在Content()中,而是将自己一次又一次地递归地永远地放在面板中 @(Html.Kendo().PanelBar() .Name("IntroPanelBar") .Items(items => { items.Add() .Text("papering Reports") .Selected(true)
网格
放在剑道UI面板条中时,它无法按预期工作。视图最终不是将网格
放在Content()
中,而是将自己一次又一次地递归地永远地放在面板中
@(Html.Kendo().PanelBar()
.Name("IntroPanelBar")
.Items(items =>
{
items.Add()
.Text("papering Reports")
.Selected(true)
.Expanded(true)
.Content(() => Html.RenderAction("Grid"));
为了查看这是否是我的代码,我将网格放在了PanelBar之外,所有的东西都在PanelBar之外的网格中呈现良好:
@{
Html.RenderAction("Grid");
}
@(Html.Kendo().PanelBar()
.Name("IntroPanelBar")
.Items(items =>
{
items.Add()
.Text("papering Reports")
.Selected(true)
.Expanded(true)
.Content("PLAIN TEXT");
解决方案是使用动作的MVCHtmlString输出:
@(Html.Kendo().TabStrip()
.Name("tabstrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("papering")
.Selected(true)
.Content(Html.Action("Grid").ToHtmlString()); <---
@(Html.Kendo().TabStrip())
.名称(“tabstrip”)
.Items(tabstrip=>
{
tabstrip.Add().Text(“粘贴”)
.已选择(真)
.Content(Html.Action(“Grid”).ToHtmlString();解决方案是使用操作的MVCHtmlString输出:
@(Html.Kendo().TabStrip()
.Name("tabstrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("papering")
.Selected(true)
.Content(Html.Action("Grid").ToHtmlString()); <---
@(Html.Kendo().TabStrip())
.名称(“tabstrip”)
.Items(tabstrip=>
{
tabstrip.Add().Text(“粘贴”)
.已选择(真)
.Content(Html.Action(“Grid”).ToHtmlString());我知道这是一个较老的问题,但当我搜索类似的问题时,它会弹出。可以使用来解决。我的示例显示了一个带有包含网格的选项卡条带的面板
<div id="panel">
@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar =>
{
foreach (var a in Model) {
panelbar.Add().Text(a.dom.fileName)
.Content(@<div id="tabs">
@RenderTabStrip(a)
</div>
);
}
})
)
@helper RenderTabStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip()
.Name("tabs" +a.dom.recordID)
.Items(tabstrip =>
{
tabstrip.Add()
.Text("Status")
.Content(@<div>@RenderStatusGrid(a)</div>);
tabstrip.Add()
.Text("Errors")
.Content(@<div>@RenderErrorGrid(a)</div>);
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.Name("Status")
.Columns(columns=>
{
columns.Bound(c => c.currentStatus);
columns.Bound(c => c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name("Errors")
.Columns(columns =>
{
columns.Bound(c => c.errorType);
columns.Bound(c => c.errorDetail);
columns.Bound(c => c.updateTime);
})
.Scrollable()
)
}
@(Html.Kendo().PanelBar())
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
foreach(模型中的var a){
panelbar.Add().Text(a.dom.fileName)
.内容(@
@RenderAbstrip(a)
);
}
})
)
@helper RenderTaskStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip())
.Name(“制表符”+a.dom.recordID)
.Items(tabstrip=>
{
tabstrip.Add()
.文本(“状态”)
.Content(@@RenderStatusGrid(a));
tabstrip.Add()
.文本(“错误”)
.Content(@@RenderErrorGrid(a));
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.姓名(“身份”)
.列(列=>
{
columns.Bound(c=>c.currentStatus);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name(“错误”)
.列(列=>
{
columns.Bound(c=>c.errorType);
columns.Bound(c=>c.errorDetail);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
我知道这是一个较老的问题,但当我搜索类似的问题时,它会弹出。可以使用来解决。我的示例显示了一个带有包含网格的选项卡条的面板
<div id="panel">
@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar =>
{
foreach (var a in Model) {
panelbar.Add().Text(a.dom.fileName)
.Content(@<div id="tabs">
@RenderTabStrip(a)
</div>
);
}
})
)
@helper RenderTabStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip()
.Name("tabs" +a.dom.recordID)
.Items(tabstrip =>
{
tabstrip.Add()
.Text("Status")
.Content(@<div>@RenderStatusGrid(a)</div>);
tabstrip.Add()
.Text("Errors")
.Content(@<div>@RenderErrorGrid(a)</div>);
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.Name("Status")
.Columns(columns=>
{
columns.Bound(c => c.currentStatus);
columns.Bound(c => c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name("Errors")
.Columns(columns =>
{
columns.Bound(c => c.errorType);
columns.Bound(c => c.errorDetail);
columns.Bound(c => c.updateTime);
})
.Scrollable()
)
}
@(Html.Kendo().PanelBar())
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
foreach(模型中的var a){
panelbar.Add().Text(a.dom.fileName)
.内容(@
@RenderAbstrip(a)
);
}
})
)
@helper RenderTaskStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip())
.Name(“制表符”+a.dom.recordID)
.Items(tabstrip=>
{
tabstrip.Add()
.文本(“状态”)
.Content(@@RenderStatusGrid(a));
tabstrip.Add()
.文本(“错误”)
.Content(@@RenderErrorGrid(a));
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.姓名(“身份”)
.列(列=>
{
columns.Bound(c=>c.currentStatus);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name(“错误”)
.列(列=>
{
columns.Bound(c=>c.errorType);
columns.Bound(c=>c.errorDetail);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
我尝试了下面的代码,效果很好。请将网格代码包含在PanelBar内容部分的
标记中
@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar =>
{
panelbar.Add().Text("Devices")
.Expanded(true)
.Content(@<div>@(Html.Kendo().Grid(Model)
...grid code here
</div>
);
})
)
@(Html.Kendo().PanelBar()
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
panelbar.Add().Text(“设备”)
.扩展(真)
.Content(@@(Html.Kendo().Grid(模型)
…这里是网格代码
);
})
)
我尝试了下面的代码,效果很好。请将网格代码包含在PanelBar内容部分的
标记中
@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar =>
{
panelbar.Add().Text("Devices")
.Expanded(true)
.Content(@<div>@(Html.Kendo().Grid(Model)
...grid code here
</div>
);
})
)
@(Html.Kendo().PanelBar()
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
panelbar.Add().Text(“设备”)
.扩展(真)
.Content(@@(Html.Kendo().Grid(模型)
…这里是网格代码
);
})
)
你的“网格”动作需要在控制器上做它自己的动作吗?你是在别处使用它还是只在这个面板中使用?如果它只在这个面板中使用,你可以考虑把网格视图代码直接放进这个视图中。我现在的猜测是,当你在面板的内容中包含网格时,你需要调用。在网格上,您的视图没有这样做。网格在其他地方使用,在本例中部分视图也是如此。不过我找到了解决方案。我应该使用“.Content”(Html.Action(“grid”).ToHt