2012-01-07 90 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