SlickGrid - 应用getItemMetadata使行失去其id

时间:2012-06-12 15:56:37

标签: javascript slickgrid

我有以下问题:

>>>>>>> Link to a JsFiddle demonstration >>>>>>

我使用了collapse example,并添加了getItemMetadata方法。

dataView.getItemMetadata = function (row) {
        var thtId = data[row].id;
        if (data[thtId + 1] && data[thtId + 1].indent > data[thtId].indent) {
            return { 'cssClasses': 'parentClassName' }
        }
    };

这很好用,直到我尝试折叠和扩展我的行。比我得到以下错误(仅在扩展时):

  

未捕获的TypeError:无法读取未定义的属性“id”

根据我的经验,当dataView丢失子项的属性时会产生此错误。 我调查了更多,发现代码属于 appendRowHtml 函数(slick.grid.js#1217)。

有没有人对崩溃功能有所了解? getItemMetadata?

谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案由SlickGrid的创建者@Tin举行

  

异常发生在“var thtId = data [row] .id”中,其中“row”   超出范围。您应该检查之前是否存在“data [row]”   访问“id”属性。网格要求a的元数据   不存在的行,可以解释为一个bug,但它仍然存在   有用的是能够自定义空的最后一行(用于的空行)   添加新条目),所以它有点意义。

https://groups.google.com/forum/#!topic/slickgrid/65vPmzXsLMQ