我在我的應用程序中使用MVC的WebGrid,它一直在工作很好。我在我的控制器代碼中設置網格的列,然後將其傳遞給我的視圖。我添加了一個新列這樣的地方columns
是List<MvcWebGridColumn>
:綁定MVC WebGrid列到源的字典屬性值
columns.Add(new WebGridColumn { ColumnName = "Path", Header = "Full Path", Filter = ... });
然後在我看來,我把從我的視圖模型網格列如下:
@grid.GetHtml(
footerStyle: "hide",
mode: WebGridPagerModes.All,
htmlAttributes: new { id = @Model.Id },
columns: @Model.Columns)
直到此時,設置代碼中的列已經很好地工作,因爲已經知道這些列是我的模型的第一級屬性。現在情況變得更加複雜,我不知道如何使用WebGrid處理它。下面是一個例子模型:
public class Requirement
{
public string Id { get; set; }
public string Path { get; set; }
public Dictionary<string, string> Fields { get; set; }
}
我希望能夠利用從Field
字典屬性的關鍵值的代碼來設置的WebGrid的專欄。我想這一點,但它不工作:
columns.Add(new WebGridColumn { ColumnName = String.Format("Fields[\"{0}\"]", key), Header = label });
我試圖把同樣的方法GetFieldValue(string key)
方法對我Requirement
模型,但它不喜歡,要麼。它似乎只能處理完全匹配對象的屬性標識符。
我不確定這是否可以使用WebGrid開箱即用,或者我必須擴展功能。提前致謝。
這篇文章可能會幫助你:http://stackoverflow.com/questions/18317207/mvc-webgrid-dynamic-columns – ataravati
感謝您的鏈接,但該人知道子屬性標識符。我想通過鍵從Dictionary屬性中獲取一個列的值。 – im1dermike