我有一个使用Telerik MVC网格的部分视图,它具有如下的列绑定代码(非常局部视图):
.Columns(column =>
{
column.Bound(model => model.PlannedFinishDate).Title("Planned Date").Format("{0:dd/MM/yyyy}").Width(83);
column.Bound(model => model.Province).Width(70);
if (Roles.IsUserInRole("Controller") == true)
{
column.Bound(model => model.InstallerName).Width(85);
column.Bound(model => model.InstallerAccepted).Title("Accepted").Width(45);
column.Bound(model => model.KitShippedDescription).Width(70);
}
// etc. etc.
现在我需要编写一个控制器操作来将与网格中呈现的数据相同的数据导出到Excel,我需要相同的基于角色的列包含/排除。我不想复制角色检查逻辑,因此我正在寻找一种方法来生成此处用于控制器中列绑定的数据,将其与ViewData一起传递,并在视图中使用它来动态绑定列
答案 0 :(得分:1)
或许this示例会有所帮助。但是有一个免责声明 - 这仍处于测试阶段,最终的API将从
更改.Columns((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"])
到
.Columns(columns => columns.LoadSettings((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"]))