javascript - 在 Telerik MVC 网格中展开/折叠 DetailView

标签 javascript jquery asp.net-mvc-3 telerik telerik-mvc

我试图在展开其中一行时强制 javascript 折叠所有其他行,我只想一次保持一行展开。我是 javascript 的新手,所以我希望任何人都能指出正确的方向。

我查看了我发现的这个例子,但出于某种原因我的代码没有折叠行: Expand/Collapse all DetailViews in a grid

我不应该像在 javascript 中那样折叠索引吗?

我在 MVC Razor View 中的 Telerik 网格:

<div>
@(Html.Telerik().Grid<RentableUnit>()
           .Name("RentableUnits")
           .Columns(columns =>
                        {
                            columns.Bound(e => e.UnitID).Hidden();
                            columns.Bound(e => e.Name).Width(800);
                            columns.Bound(e => e.IsExpanded).Hidden();
                        })
           .ClientEvents(events => events.OnRowDataBound("employees_onRowDataBound")
                                       .OnDetailViewExpand("unit_onDetailViewExpand")
                                       .OnDetailViewCollapse("unit_onDetailViewCollapse")
                                       .OnDetailViewExpand("toggleDetail")
                                       )
           .DetailView(details => details.ClientTemplate(
               //stuff in template
           )
    .DataBinding(dataBinding => dataBinding.Ajax().Select("RentableUnits", "Home"))
    .Sortable()
)
</div>

我的 Javascript:

    function toggleDetail(e) {
        var grid = $(this).data('tGrid');
        grid.$rows().each(function (index) {
            //TODO: exclude the expanded row
            grid.collapseRow(index); //doesn´t collapse!
    });
}

最佳答案

这样就可以了:

function toggleDetail(e){

  var grid = $(this).data('tGrid');
  grid.$rows().not(e.masterRow).each(function(index, row){
    grid.collapseRow(row);
  });
}

请注意,您为 OnDetailViewExpand 事件定义了 2 个处理程序。

关于javascript - 在 Telerik MVC 网格中展开/折叠 DetailView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268291/

相关文章:

jquery - 如何使用 Jquery 完成捕获点击事件?

c# - 如何创建 2 个相关的下拉列表

javascript - React + D3 强制布局 : new Links have undefined positions

javascript - jQuery 获取 load() 函数的新结果

javascript - 为什么 object[key] 不等于 key,如果 key 是一个对象,在 JavaScript 中?

javascript - 在 JavaScript 中关闭 colorbox.js 窗口

javascript - 在javascript中将字符串转换为句子大小写

javascript - 莫里斯图不接受我的 json 数据,但接受硬编码的示例数据

asp.net - 根据需要在服务器中生成并提供文件。在不消耗太多资源的情况下最好的方法是什么?

asp.net-mvc - 局部 View 中不同模型类型的问题