2011-04-19 44 views
3

我有這個樣本設置一個DisplayTemplate到的WebGrid列

@Html.DisplayFor(modelItem => item.Expires, "DateTimeToDate") 

DateTimeToDate顯示模板:

@model DateTime? 
@Html.Label(Model.HasValue ? Model.Value.ToShortDateString(): string.Empty) 

... grid.Column("Expires", @Resources.Localization.Expires, canSort: true) ... 

所以,我怎麼能在的WebGrid列中使用DisplayTemplate ?

regrads。

回答

0

如果您的視圖模型的Expires屬性是DateTime和你有一個自定義顯示模板,它可能會嘗試以下方法:

grid.Column("Expires", format: @<text>@Html.DisplayFor(x => item)</text>) 

這應該呈現~/Views/Shared/DisplayTemplates/DateTime.cshtml在視圖中的過期每個項目的性質模型。

+0

這dosent工作,出於某種原因,如果我試圖做'grid.Column(columnName:「Expires」,標題:@ Resources.Localization.Expires,格式:@列顯示模型連接在列 – waldecir 2011-04-19 22:39:34

+1

所有值@ Html.DisplayFor(x => item.Expires)',我得到這個錯誤_CS1963:表達式樹可能不包含動態操作_ – waldecir 2011-04-20 01:13:45

+0

@waldecir,嘗試'@ Html.DisplayFor(x => item)'我的答案。 – 2011-04-20 05:08:43

0

這裏是爲我工作的一個片段,你需要將其調整到您的情況..

WebGridColumn adminColumn = grid.Column(columnName: string.Empty, 
    header: string.Empty, 
    format: (item) => new HtmlString(Html.ActionLink("Edit", "Edit", 
    new { id = item.Id }, null).ToString() + "|" + 
    Html.ActionLink("Delete", "Delete", new { id = item.Id }, null).ToString())); 
columns.Add(adminColumn); 
0

我發現this article精確匹配你需要我猜...

太糟糕了當你問這個問題時還沒有寫出來!