1)。現在の番号を列に入れるにはどうすればよいですか?(私はEFを使用しています)
ビューモデルを使用して、WebGridをにModel
バインドする代わりに、にバインドするModel.Select((item, index) => new { Index = index, Element = item })
か、匿名オブジェクトを使用する代わりに、これら2つのプロパティを持つ実際のビューモデルを使用することをお勧めします。
2)。整数の代わりに文字列を表示するにはどうすればよいですか?(私がintフィールドの高さを持っていて、それが1.50〜1.60の場合、ウェブグリッドで見たいとしましょう。小さい、1.60-1.70-通常、1.7-1.8-大きい、> 2-大きい)
列にカスタムformat
を使用できます。
次に例を示します。
@model IEnumerable<SomeModel>
@{
var grid = new WebGrid(Model.Select((item, index) => new { Index = index, Element = item }));
}
@grid.GetHtml(
tableStyle: "table",
alternatingRowStyle: "alternate",
headerStyle: "header",
columns: grid.Columns(
grid.Column(columnName: "Index", header: "Crt. No.", canSort: true),
grid.Column(
header: "height old",
canSort: true,
format:
@<text>
@item.Element.height
</text>
),
grid.Column(
header: "height new",
canSort: true,
format:
@<text>
@Html.FormatHeight((double)item.Element.height)
</text>
)
)
)
ご覧のHtml.FormatHeight
とおり、次のようなカスタム拡張メソッドを使用しました。
public static class HtmlExtensions
{
public static IHtmlString FormatHeight(this HtmlHelper htmlHelper, double height)
{
if (height < 1.5)
{
return new HtmlString("tiny");
}
if (height > 1.5 && height < 1.6)
{
return new HtmlString("small");
}
else if (height > 1.6 && height < 1.7)
{
return new HtmlString("normal");
}
else if (height > 1.7 && height < 1.8)
{
return new HtmlString("big");
}
return new HtmlString("huge");
}
}