格式化WebGrid列以包含两个数据

时间:2011-12-29 15:35:39

标签: asp.net-mvc-3 webgrid

我正在尝试格式化WebGrid列,以便将两个数据连接在一起(名字和姓氏)。这是我正在尝试的,但我承认我不认为我完全理解如何使用WebGrid中的数据(除了基本场景)。 (对于列名,教师对象正在传递给我的视图,但要实际获取教师的名字,我必须从链接的用户对象获取该信息,因为用户可以扮演多个角色。)

grid.Column(
    columnName: "Teacher.User",
    header: "Teacher",
    style: "",
    canSort: true,
    format: (item) =>
        {
            var text = Html.DisplayTextFor(item => item.LastName) + ", " + Html.DisplayTextFor(item => item.FirstName);
            return Html.Raw(text);
        }
)

2 个答案:

答案 0 :(得分:12)

将两个数据连接在一起的最简单方法,请按照

进行操作
grid.Column("FullName", format: (item) => item.LastName+ ' ' + item.FirstName)

答案 1 :(得分:2)

采用lambda表达式的强类型助手不能使用动态表达式,这是WebGrid助手被淹没的原因。传递给item函数的format参数的类型为dynamic,因此您无法将其与lambda表达式一起使用。

  

我正在尝试格式化WebGrid列,以便我可以连接两个部分   数据一起(名字和姓氏

视角模型的优秀候选者。只需在用户视图模型中添加另一个属性:

public string FullName 
{ 
    get 
    {
        return string.Format("{0}, {1}", this.LastName, this.FirstName);
    }
}

您将在视图中使用:

grid.Column(
    columnName: "Teacher.User.FullName",
    header: "Teacher",
    style: "",
    canSort: true
)