W2UI Grid selects 列 select 键入 'cell' 并右键单击任何单元格?

W2UI Grid selects column with select type 'cell' and right click on any cell?

我认为 W2UI 的网格有问题。我有 "cell" 选择类型,如果您用鼠标右键单击一个单元格,我会看到整列都被选中。

具体来说,当您没有选择任何单元格或者您单击的单元格位于另一列中而不是所选单元格的单元格时,就会发生这种情况。要测试所描述的行为,您可以使用 jsFiddle 上的任何可用演示,在网格选项中设置 selectType: 'cell'

我认为这是一种奇怪的行为,我想知道如何改变它。可能吗?

选项 1

解决此问题的最简单方法是将网格上下文菜单设置为空函数:

grid.contextMenu = function() {};

或者在构造函数中:

$('#grid').w2grid({ 
    name: 'grid', 
    contextMenu: function() {}
});

然而,这将在右键单击时显示浏览器的默认上下文菜单。

选项 2

如果您不想显示浏览器的上下文菜单,请实现一个执行 event.preventDefault():

的函数,而不是一个空函数
grid.contextMenu = function(recid, column, event) { event.preventDefault(); return false; }

Here's a fiddle based on the Spreadsheet Like Grid Demo

选项 3

如果您需要 w2ui 默认上下文处理,并且只想摆脱列选择,恐怕您将不得不修改源代码并删除 contextMenu 函数中的以下行:

if (!selected && column != null) obj.columnClick(this.columns[column].field, event);

或复制整个原始代码(没有提到的行)以供您自己实现网格的 contextMenu 函数。