<%{
WebGrid studentGrid = new WebGrid(rowsPerPage: StudentController.PageSize);
studentGrid.Bind(Model.Students, autoSortAndPage: false, rowCount: Model.RowCount);
studentGrid.PageIndex = Model.CurrentPage;
}%>
<%=studentGrid.GetHtml(columns: new WebGridColumn[]{
studentGrid.Column("StudentId", "Id"),
studentGrid.Column("Name", "Name"),
})%>
不幸的是,我被迫在我的MVC3项目中使用aspx视图。
我希望有一个列,根据绑定到网格的列表项的某些条件显示文本“select”或“remove”。
sysntax如何做到
我必须得到像
这样的渲染html<span class="1" id=item.id>Select<span>
,显示的html只是选择
答案 0 :(得分:2)
您绝对可以使用format
进行操作,只需要在C#中手工编写HTML:
<%
var list = new[]
{
new { StudentId = 1, Name = "Name1", Cond = true },
new { StudentId = 2, Name = "Name3", Cond = false },
new { StudentId = 2, Name = "Name3", Cond = true },
};
WebGrid studentGrid = new WebGrid();
studentGrid.Bind(list, autoSortAndPage: false, rowCount: 3);
%>
<%= studentGrid.GetHtml(columns:
new WebGridColumn[]
{
studentGrid.Column("StudentId", "Id"),
studentGrid.Column("Name", "Name"),
studentGrid.Column(header: "Action",
format: item =>
{
string span = "<span class=\"1\" id=\"{0}\">{1}<span>";
string action = item.Cond ? "Select" : "Remove";
return Html.Raw(string.Format(span, item.StudentId, action));
})
})
%>
一般支持在lambda中使用aspx模板systax(例如<% %>
)(请参阅此Telerik demo),但因为WebGrid
比Telrik工作得不明显,所以它不起作用。< / p>
似乎构建WebGrid
的方式只支持format
参数中的剃刀模板...