2012-01-07 84 views
-1

我一直想弄清楚如何在代码隐藏中创建一个telerik MVC网格? telerik文档有一个与RadGrid做的方式,但不是他们的MVC Grid控件..在代码隐藏中创建一个telerik MVC网格?

我基本上试图做的是创建一个基于一些条件的网格,就像我可能有这样的网格:

Html.Telerik().Grid<ZeDate>("dates") 
     .Name("MyGrid") 
     .Pageable(paging => paging.PageSize(10)) 
     .Sortable() 
     .Filterable() 
     .Groupable() 
     .ColumnContextMenu() 
     .DataKeys(keys => keys.Add(c => c.id)) 
     .DataBinding(dataBinding => 
     { 
      dataBinding.Ajax() 
      .Select("_SelectAjaxEditing", "Dates") 
      .Insert("_InsertAjaxEditing", "Dates") 
      .Update("_SaveAjaxEditing", "Dates") 
      .Delete("_DeleteAjaxEditing", "Dates"); 
     }) 
     .ToolBar(commands => commands.Insert()) 
     .Columns(columns => 
     { 
      columns.Bound(o => o.name); 
      columns.Bound(o => o.date1); 
      columns.Command(commands => 
      { 
       commands.Edit().ButtonType(GridButtonType.Text); 
       commands.Delete().ButtonType(GridButtonType.BareImage); 
      }).Width(185); 
     }) 
     .Editable(editing => editing.Mode(GridEditMode.InForm)) 
     .Render(); 

不过,我可能在某些情况下,想不显示特定的列,如“日期1”或者我可能不希望允许电网是过滤,基本上是类似的东西。

回答

3

除了Mystere Man提到的“没有代码隐藏”之外,在Telerik的MVC视图中有几种不同的方式来执行条件方面。由于Telerik使用流畅的界面,你可以将它设置为一个变量并利用它。因此,例如,你可以这样做:

var telerik = Html.Telerik().Grid<ZeDate>("dates") 
    .Name("MyGrid") 
    .Columns(columns => 
    { 
     columns.Bound(o => o.name); 

     // Only render the date column if the designated 
     if (Model.CanSeeDate) 
     { 
      columns.Bound(o => o.date1); 
     } 
    }); 

// Only let the grid be filterable if allowed 
if (Model.GridFilterable) 
{ 
    telerik = telerik.Filterable(); 
} 

// Perform other telerik setup 
telerik.Render(); 
2

MVC没有代码。嗯,这并非完全正确,您可以在WebForms视图中使用代码隐藏功能,但这是使用WebForms引擎的副作用,强烈建议不要使用它。

无论如何,只有在需要使用webforms服务器控件时,才会使用代码隐藏功能。由于MVC控件不使用WebForms页面生命周期,因此代码隐藏对它们没有用处。

也许你可以解释你在做什么。编辑:

根据您的更改,我仍然不明白。你可以在视图中做所有的事情,你不需要背后的代码。你使用代码背后的原因是什么?

+0

我编辑我的问题... – tweetypi 2012-01-07 05:03:13

+2

@meds - 看到更新 – 2012-01-07 05:24:25

+0

我怎样才能做到这一点基于条件? – tweetypi 2012-01-07 05:32:50