如何在web gridview中设置动态列名称

时间:2012-08-09 05:53:48

标签: asp.net-mvc razor

<div id="grid" class="ajaxGrid">
    @{
        var grid = new WebGrid(list, rowsPerPage: 8, canPage: true, canSort: true, ajaxUpdateContainerId: "grid");
    }

    @grid.GetHtml(
        tableStyle: "grid",
        headerStyle: "head",
        alternatingRowStyle: "alt",
        mode: WebGridPagerModes.All,
        numericLinksCount: 10,
        firstText: "First",
        previousText: "Prev",
        nextText: "Next",
        lastText: "Last",
        columns: grid.Columns(
        grid.Column((string)(@<text>@item.Value</text>),format: (item) => Html.ActionLink(((string)item.Text), "Search", "Home", new { id = item.Value }, new { @class = "clickable" }))))
</div>

当我执行程序时,不显示webgrid视图..代码中的错误是什么?谁能为我发布答案?

1 个答案:

答案 0 :(得分:0)

好吧

System.Web.Helpers.WebGrid.Column

具有以下构造函数

Column(string, string, System.Func<dynamic,object>, string, bool)

所以我不知道你的代码是如何工作的,我的意思是你将错误的参数传递给构造函数。

作为您分配的第一个参数

(string)(@<text>@item.Value</text>)

但它应该是字符串,所以不可能有lambda表达式。

这是代码,对我有用

@grid.GetHtml(
        tableStyle: "grid",
        headerStyle: "head",
        alternatingRowStyle: "alt",
        mode: WebGridPagerModes.All,
        numericLinksCount: 10,
        firstText: "First",
        previousText: "Prev",
        nextText: "Next",
        lastText: "Last",
                columns: grid.Columns(grid.Column(header: "some column header", format: (item) => Html.ActionLink(((string)item.Text), "Index", "Home", new { id = item.Id }, new { @class = "clickable" }))))

因此,请确保以正确的方式使用Column构造函数。

关于主题http://tinyurl.com/9n39mgv

的好主题