我知道有一个关于条件 DetailView 的问题,但是我觉得这不是我想要的。我一直在搞乱 MVC 的 Telerik Grid,并且我设法为我的网格中的行创建了一个 DetailView。事情是到目前为止,我的 DetailView 充满了 HTML 代码,我想在里面有一个新模型。
基于一个列值,我想仅为与该列值匹配的行创建一个 DetailView。因此,例如,如果列“Type”等于 Fruit,则应为其创建一个 DetailView(带有“+”号)。现在如果“类型”是蔬菜,它不应该创建 DetailView(没有“+”号)。
我当前的代码如下所示:
Html.Telerik().Grid<SearchViewModel>(Model)
.Name("Search")
.Columns(columns =>
{
columns.Bound(o => o.Type).Width(60);
//etc.
})
//.PrefixUrlParameters(false)
.DetailView(detailView => detailView.ClientTemplate(
"<div>" +
"<h5><span>Details for Type:</span></h5><div><#= DetailsType #></div>" +
"</div>"
))
如您所见,我正在为网格中的每一行创建 DetailView。
另外,我发现了一个在某些条件下隐藏加号的 JavaScript,但是它在初始加载时不起作用(仅在我发出过滤、分页或刷新请求之后)。脚本与 .OnRowDataBound 绑定。
function hidePlusSign(e) {
var row = e.row;
var dataItem = e.dataItem;
if (dataItem.Type != "Fruit") {
$('a.t-icon', e.row.cells).css('display', 'none');
}