The code below will insert an actionlink into one of the web grids' columns.
@{
View.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
var usersGrid = new WebGrid(source: Model,
rowsPerPage: 40);
}
@usersGrid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: usersGrid.Columns(
usersGrid.Column(format: (item) =>
Html.ActionLink("Edit", "Edit", new { id = item.Id})),
usersGrid.Column("Surname")
)
)
But if i exchange that line for this:
usersGrid.Column(format: (item) => Html.CheckBox(item.Id)),
I get this error:
Error 4 The best overloaded method match for 'System.Web.Helpers.WebGrid.Column(string, string, System.Func, string, bool)' has some invalid arguments.
I don't quite understand the difference between the two.. why does one work and the other error?
The ultimate goal is to be able to tick a number of check boxes and then send to print their info.
This is what worked for me in the end.
usersGrid.Column(header: "Print?", format: @<text><input name="Prints"
type="checkbox" value="@item.ID" /></text>),
Got to give thanks to Nick Harris, answer found in the comments of his blog here: http://www.nickharris.net/2010/10/a-first-look-at-the-asp-net-mvc-3-webgrid/