1

我知道有一个关于条件 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');

    }
4

1 回答 1

1

你需要做的只是在你的细节视图中添加条件,它看起来像这样:

"<# if (DetailsType == 'MyType') { #>" +    
    "<div>some html code here</div>" +
"<# } else { #>" +
    "<div>another html code here</div>" +
"<# } #>" +
于 2012-06-27T05:49:08.980 回答