2011-04-19 43 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精确匹配你需要我猜...

太糟糕了当你问这个问题时还没有写出来!