2010-08-24 21 views
1

结合我有一个使用Telerik的MVC网格的局部视图,它具有列如下(非常局部视图)绑定代码:控制器侧柱为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

让我得到这个拉直:你希望用户能够下载完全相同的HTML网格作为Excel电子表格通过点击一些链接?或者保存到服务器上的Excel文件? – 2010-08-24 15:59:39

+0

我希望用户能够点击链接并下载服务器上生成的电子表格。我不能让用户下载网格,因为它已分页,并且spreadhseet必须包含所有页面。 – ProfK 2010-08-24 16:17:12

回答

1

也许this的例子会有所帮助。有一个免责声明,虽然 - 这是仍然处于测试阶段,最终的API将

.Columns((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"]) 

改变

.Columns(columns => columns.LoadSettings((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"])) 
+1

我无法在任何地方找到GridColumnSettings类型。 – ProfK 2010-08-24 16:05:29

+0

它看起来像* GridColumnSettings *是Q2的新功能,仍处于测试阶段,所以我不会在生产应用程序中使用它。 – ProfK 2010-08-25 13:16:56

+0

这将是官方不久。 – 2010-08-25 14:09:10