MVC3 WebGrid Custom Text in Column

2019-02-09 11:09发布

问题:

I'm developing a web application using MVC3 in VB.NET.

I having difficulty setting a column on the webgrid with the following action links

Edit | Details | Delete

@*@Html.ActionLink("Edit", "Edit", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Details", "Details", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Delete", "Delete", New With {.id = currentItem.PrimaryKey})*@

I have tried to use syntax below but I get an error where item is not declared.

grid.Column(header:= "",format:= (item) => item.GetSelectLink("Custom Text"))

How do I reference the current row or item in a webgrid to make this work?

Any help greatly appreciated.

Regards

James

回答1:

grid.Column(
columnName:"PrimaryKey", 
header:"Actions",      
format: (item) => 
{
   var links = Html.ActionLink("Edit", "Edit", new {id = item.PrimaryKey}) + " | " +
               Html.ActionLink("Details","Details", new { id = item.PrimaryKey}) +" | "+
               Html.ActionLink("Delete","Delete", new { id = item.PrimaryKey});

   return Html.Raw(links);

}),

renders the following HTML (formatted for legibility)

<td>
  <a href="/Home/Edit/5">Edit</a> | 
  <a href="/Home/Details/5">Details</a> | 
  <a href="/Home/Delete/5">Delete</a>
</td>


回答2:

Can also use the below which is more like the normal way so I like it better:

grid.Column(format: @<text>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })    
     </text>)