0

これが私のウェブグリッドです:

<div id="grid">
@grid.GetHtml(
    tableStyle: "grid",
    headerStyle: "head",
    alternatingRowStyle: "alt",

    columns: grid.Columns(
        grid.Column("FullName", "Name"),
        grid.Column("User.Email", "Email", format:@<a href="mailto:@item.User.Email">@item.User.Email</a>),
        grid.Column("User.PhoneExtension", "Extension"),
        grid.Column("ManagerName", "Manager"),
        grid.Column("User.Roles", "Roles"),
        grid.Column("", format: (item) => new HtmlString(Html.ActionLink("Edit", "Edit", new { userName = item.User.UserName } ).ToString() + "|" + Html.ActionLink("Details", "Details", new { userName = item.User.UserName }).ToString()))
    )
)

User.Rolesは文字列のコレクションです。「format:」を使用して各役割を出力し、次にそのセルに改行を入れるにはどうすればよいですか?前もって感謝します。

4

1 に答える 1

0

あなたはそれを達成するためにhtmlヘルパーを使うことができます:

...

    grid.Column(columnName: "User.Roles", header: "Roles", format: @<text>@Html.RenderUserRoles((List<String>)item.User.Roles)</text>)

...

ヘルパーは次のようになります...

...
        public static string RenderUserRoles(this HtmlHelper helper, List<string> roles)
            {
                string result = string.Empty;

                foreach (var item in roles)
                {
                    result += item + " - ";
                }
                result += "<br>";

                return result;
            }
...

テストされていませんが、ヘルパーを変更して希望どおりにレンダリングできるため、独自のソリューションに到達するためのガイドになるはずです。

于 2012-06-26T15:23:06.133 に答える