了解正在更新的列

Posted

技术标签:

【中文标题】了解正在更新的列【英文标题】:Knowing which column is being updated 【发布时间】:2012-08-05 02:04:17 【问题描述】:

我正在尝试让我知道哪一列正在更新,但未能找到合适的解决方案。我知道他们正在使用 textarea 来获取输入,然后将值放入表中,但我就是不知道如何找出正在更新的列。

任何帮助将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

这个方法会告诉你选择了哪一行/哪一列:

$('#example1grid').handsontable('getSelected')

这将返回与当前编辑的单元格相同的坐标,除非选择了多个单元格(但即使此时当前编辑的单元格始终位于选定的单元格内)。

我正在考虑创建一个新方法getCurrent 或回调onBeginEditing 来返回当前编辑的单元格。哪个更适合你?我认为回调会更好。

【讨论】:

我一直在寻找更像onFinishEditing的东西,因为该表包含数据集,并且每一列都需要被视为绝望的数据集。我正在寻找,我认为您的 finishEditing 功能可用于此目的。如果这样,我可以调用最后需要列号的函数,并传入 priv.selStart.col 和 priv.selEnd.col。第一个参数将给出最左侧的已编辑列,第二个参数将给出最右侧的已编辑列。我相信这可以处理所有更改表格的情况。 其实,刚刚意识到这并不总是有效。如果您有其他方法可以做到这一点,请告诉我。 那么onChange 回调不适合你吗?它获取一个数组数组作为参数。里面的数组有结构[row, col, oldVal, newVal]你能详细描述一下你的情况吗? onChange 的问题在于它不会触发所有更改。例如,如果我选择一个/多个单元格并使用退格键删除其中的数据,则不会调用 onChange。我想要的是,每当数据数组(使用 getData 检索)发生变化时,我想知道哪一列数据发生了变化,并且能够调用将使用该信息的函数。 所以我再次下载了 .js 文件,getSelected 方法现在似乎可以解决问题了。我一定是在修改代码时搞砸了。我仍然必须研究如何在每次更改时触发我的函数(包括在将值粘贴/剪切到表中/从表中删除之后)。非常感谢您的帮助!【参考方案2】:
onChange: function (data) 
    for (i in data) 
        if(data[i][2] != data[i][3]) 
                var column = $('#dataTableLoc td:nth-child(' + (data[i][1] + 1) + ')')[0].innerText;
        
    

这显然远非优雅。它将与 button.html 中的“removeRow”示例等任何扩展名冲突,但显然可以进行相应调整。当从 SQL 表中提取数据并尝试使用查询进行更新时,这是必需的。

【讨论】:

以上是关于了解正在更新的列的主要内容,如果未能解决你的问题,请参考以下文章

了解集群状态更新

了解 SQL Server 2008 R2 中索引视图中的列类型

了解在“便签本”中创建和更新的 CoreData 实体

了解pandas中的lambda函数

了解 Google Play 商店统计数据,用户流失

如何跳过 CSV 文件的列