将链接插入WebGrid

时间:2012-09-18 16:57:38

标签: asp.net-mvc-3 razor

我想在Webgrid中创建一些超链接。我想让“用户名”列将其值显示为超链接而不是文本。是否可以将@ Html.ActionLink函数合并到下面的WebGrid中?

columnName需要一个字符串,该字符串对应于传递给视图的模型的属性。所以问题是如何将其转化为链接。

查看:

@model IEnumerable<CIMsWebApp.Client.Group.Entities.IUser>

@{  var grid = new WebGrid(Model, canSort: true, canPage: true, defaultSort: "UserName", ajaxUpdateContainerId: "myUserGrid"); }

 @grid.GetHtml(
    tableStyle: "dataGrid", 
    headerStyle: "header",
    alternatingRowStyle: "evenRow",
    columns: grid.Columns
    (
        grid.Column(header: "User Name", columnName: "UserName", canSort: false),
        grid.Column(header: "Role(s)", columnName: "Rolebuilder", canSort: false),
        grid.Column(header: "Active", columnName: "ActiveInd", canSort: false),
        grid.Column(header: "Action", format:
                                    @<span><input type="button" class="edit-user" id="@item.PersonId" value="EDIT" />
                                    </span>, canSort: false)
    )
)

1 个答案:

答案 0 :(得分:1)

  

所以问题是如何将其变成链接。

您可以使用format参数为此单元格提供您喜欢的任何自定义格式(顺便说一下,您已为最后一列执行此操作):

grid.Column(
    header: "Subject", 
    columnName: "UserName", 
    format: item => Html.ActionLink((string)item.UserName, "SomeAction", new { id = (int)item.PersonId  })
)