首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证和排序之间的可处理冲突

验证和排序之间的可处理冲突
EN

Stack Overflow用户
提问于 2015-11-25 17:19:56
回答 1查看 393关注 0票数 1

在我的Handsontable中,我希望允许用户能够根据验证失败的行进行排序。我在数据集的开头添加了一个空列,并且在售后验证钩子中,对于失败的行,我将这个字段设置为1。

代码语言:javascript
复制
afterValidate: function (isValid, value, row, prop, source) {
    if (!isValid) hot.setDataAtCell(hot.sortIndex[row][0], 0, "1");
    else if (source=="edit") hot.setDataAtCell(hot.sortIndex[row][0], 0, "");
},
columnSorting: true,
afterColumnSort: function (column, order) {
    hot.validateCells(function (valid) {});
}

我遇到了一个奇怪的问题,它并不总是标记正确的行。正如您在这个小提琴中所看到的,如果您多次对列进行排序,那么在每第三种排序中,错误标志与无效的行不匹配,并且控制台中有一个"Uncaught : can read属性'0‘的未定义“。

https://jsfiddle.net/dk9d1aqr/3/

此外,如果尝试将表设置为开始排序,则验证将完全失败:

代码语言:javascript
复制
//validation works with this
columnSorting: true,
//validation fails with this
columnSorting: {column: 2, sortOrder: true},

对于如何使验证和排序一起工作,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 17:44:56

我的问题是我误读了sortIndex方法。它应该传递已排序的行号,并从基础数据集中返回物理行号(从我试图使用它的方式向后看)。

我必须实现untranslateRow函数才能返回所需的值。http://jsfiddle.net/dk9d1aqr/4/

当您单击标题排序时,它似乎在升序、降序和未排序之间旋转(在这里抛出错误)。我添加了一条return row;备用路径,解决了未实现的TypeError问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33922696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档