2011-07-08 22 views
4

asp.net mvc webgridを使用すると、現在の行/列に対してHtml.DisplayForを使用して列をレンダリングできますか?mvc webgridのHtml.DisplayFor

grid.Column("Roller", "Roller", canSort: true, format: @<text>@Html.DisplayFor(<the row result here>)</text>) 

Html.DisplayFor(m)ヘルパーは、現在の行項目ではなくページモデルを使用します。この周りに道がありますか?

おかげ

//ヨハン

答えて

4

はい、可能です。たとえば、BannerオブジェクトのリストをWebGridにバインドするとします。 Banner.Activeプロパティ(Checkboxとしてレンダリングする値はboolean)も考慮してください。

format: (item) => { var banner = item.Value as Banner; 
        return Html.DisplayFor(modelItem => banner.Active); 
        } 

あなたはまた、これを行うことができます:あなたはこれを行うことができます

format: (item) => Html.DisplayFor(modelItem => ((item as WebGridRow).Value as Banner).Active) 

しかし、私は最初のオプションをより読み検討します。

-1

が動作する可能性があり、 "ウル項目名が何であれ、" item.blablaを使用

grid.Column("Roller", "Roller", canSort: true, format: @<text>@Html.DisplayFor(modelItem => item.blabla)</text>) 

を行うよりも、この

var grid = new WebGrid(Model); 

を試してみたがイムありませんこれについて実際に経験しました。

はまた、両方の使い方が仕事をしていません

@<text>@item.blabla</text> 

&

@<text>@Html.DisplayFor(modelItem => item.blabla)</text> 

の間で大きな違いはありません。

+1

表示属性がプロパティまたはモデルに適用されている場合はありますか? –

+0

@ m.t.bennettあなたが正しいと思う、それは簡単に見られない小さな変化です。 –

関連する問題