2012-09-18 79 views
0

我正在尋找在Webgrid中創建一些超鏈接。我想讓「用戶名」列將其值顯示爲超鏈接而不是文本。是否可以將@ Html.ActionLink函數合併到下面的WebGrid中?將鏈接插入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

所以問題是如何獲取到的鏈接。

您可以使用format參數來提供你喜歡的任何自定義格式該單元(順便說一句,你已經這樣做了最後一欄):

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