2016-10-23 51 views
0

我在我的項目中使用Grid.Mvc。我想用戶可選的網格屬性。例如,用戶希望將網格標題看作「架構」,而另一用戶則希望將其看作「架構名稱」。我將從數據庫中控制它。如何從控制器創建Grid.Mvc?

所以,我需要從控制器創建以下代碼並寫入cshtml。我該怎麼做?

@Html.Grid(Model).Columns(columns => 
        { 
         columns.Add(c => c.SchemeID).Titled("Scheme ID").Filterable(true); 
         columns.Add(c => c.SchemeName).Titled("SchemeName").Filterable(true); 
         columns.Add() 
         .Encoded(false) 
         .Sanitized(false) 
         .SetWidth(30) 
         .RenderValueAs(o => Html.ActionLink("Edit", "Edit", new { id = o.SchemeID })); 

        }).WithPaging(10).Sortable(true) 

回答

0

你並不需要創建從控制器的網格,你需要的是保存用戶設置,並把它傳遞給視圖模型,然後用它在視圖中創建網格。

例如: 假設您創建了一個名爲UserGridSettings的類,該類具有名爲SchemaColumnTitle的屬性,您可以隨意添加任何內容。

在您的視圖模型,您將添加UserGridSettings類型的屬性,並在視圖如下使用它:

@Html.Grid(Model).Columns(columns => 
        { 
         columns.Add(c => c.SchemeID).Titled("Scheme ID").Filterable(true); 
         columns.Add(c => c.SchemeName).Titled(Model.GridSettings.SchemaColumnTitle).Filterable(true); 
         columns.Add() 
         .Encoded(false) 
         .Sanitized(false) 
         .SetWidth(30) 
         .RenderValueAs(o => Html.ActionLink("Edit", "Edit", new { id = o.SchemeID })); 

        }).WithPaging(10).Sortable(true) 

當然,你可以讓模型具有UserGridSettings和內部@Html.Grid列表,您可以迭代該列表並動態構建列。