【问题标题】:Change single click editing to double click in grid将单击编辑更改为在网格中双击
【发布时间】:2013-01-10 08:57:02
【问题描述】:

我想将 kendo ui 网格上的单击编辑功能替换为双击。

我要保留的设置是:selectable: "multiple, row", editable: true

我发现一个解决方案是设置editable: false并添加$('#grid').delegate('tbody>tr>td','dblclick', function (e){}

不幸的是,这带来了其他问题,使我的整个编辑过程变得困难。例如,kendo 不能再轻松地跟踪更改,不会用那个红色箭头将字段标记为正在更改。

有没有办法将默认的剑道单击功能更改为双击?

所以请求的行为是:

  1. 单击选择行/单元格
  2. 双击使单元格进入编辑模式。

【问题讨论】:

标签: kendo-ui


【解决方案1】:

这不是很不错,但可能会成功:

var myGrid = $('#grid').data("kendoGrid");
myGrid.element.on('click', 'tbody>tr>td:not(.k-edit-cell)', function (e) {
    myGrid.closeCell();
});
myGrid.element.on("dblclick", "tbody>tr>td:not(.k-edit-cell)", "dblclick", function (e) {
    myGrid.editCell($(this));
});

第一个on单击退出单元格的编辑并且不改变其他绑定为行选择,第二个进入单元格的编辑模式。

我为什么说不错?因为我宁愿 unbind 之前的 click 事件进行编辑(仅限)而不是关闭版本。

【讨论】:

  • 您的建议在某一时刻有效。是的,当双击一个单元格时,它确实会启用它并将其置于编辑模式。不幸的是,一旦您尝试在编辑字段中再次按下,例如选择/标记文本,或者只是在编辑的字段中按下,单元格再次关闭。
  • @Stephan,我已经修改了在选择器中添加额外条件的代码(如果单元格处于编辑模式,则基本上什么都不做)。
  • 刚刚注意到上面的代码在尝试编辑数字字段时会产生以下错误。 NS_ERROR_FAILURE:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLInputElement.setSelectionRange] [Break On This Error] element.setSelectionRange(position, position);在线 kendo.web.js(第 29562 行)。从我在这里找到的en.usenet.digipedia.org/thread/14444/19066看来,它似乎与 Firefox 相关,因为我无法在 Chrome、IE 8 中重现它。但我仍然不知道我是否应该看到该错误
  • 此外,当我在字段中进行验证时,上述代码似乎会产生问题。例如,我有一个数字字段并输入一个与我的验证模式不同的数字。仅当我在已编辑字段下方的行上按右时,才会出现错误消息(在工具提示内)。当我按下下面的 2-3 行时,消息会立即出现并立即消失。
【解决方案2】:

我使用这个代码,它很丑但有效:

<script type="text/javascript">
    $(document).ready(function () {
        $(document).on("dblclick", "#MyGrid td[role='gridcell']", function (e) {   
        // do something
        });
    });
</script> 

【讨论】:

    猜你喜欢
    • 2020-11-04
    • 2011-03-18
    • 2023-01-14
    • 1970-01-01
    • 2014-05-08
    • 2016-01-08
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多