【问题标题】:Create DetailView for Telerik MVC Grid only on certain conditions仅在特定条件下为 Telerik MVC Grid 创建 DetailView
【发布时间】:2012-06-28 12:14:39
【问题描述】:

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

    }

【问题讨论】:

    标签: c# asp.net-mvc grid telerik


    【解决方案1】:

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

    "<# if (DetailsType == 'MyType') { #>" +    
        "<div>some html code here</div>" +
    "<# } else { #>" +
        "<div>another html code here</div>" +
    "<# } #>" +
    

    【讨论】:

    • @Alexander 没问题就问吧:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 2012-10-23
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    相关资源
    最近更新 更多