【问题标题】:Open kendo editor on hover also在悬停时打开剑道编辑器
【发布时间】:2016-04-25 12:41:09
【问题描述】:

我有带有下拉菜单的剑道网格、日期选择器编辑器。它工作正常,除了当我点击块时打开下拉/日期选择器编辑器。

有没有办法在悬停时将块转换为编辑器形式(datePicker/dropdown)。

正常状态图像->

当我点击日期字段时,它变为 ->

当我点击下拉菜单时 - >

我希望在悬停时将块转换为编辑器,并且块应该在模糊时恢复正常状态。

我的编辑器模板是

function categoryDropDownEditor(container, options) {
    $('<input required data-text-field="rsrc_Description" data-value-   field="rsrc_cd" data-bind="value:' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: true,
            dataSource: [{ "rsrc_cd": "EXTRS" , ... }],
        });

}

这是 TimeBlock 选择器的代码 - >

 function numericEditorHh (container, options) {
    $('<input name="editableBlock" data-bind="value:' + options.field + '"  style="width:35px" tag="timeEditor" id="cccc" /> ')
          .appendTo(container)
        .kendoNumericTextBox({
            decimals: 0,
            min: 0,
            max: 23,
           format: 'n0',
        }).attr('maxlength', '2');
      $('input[tag=timeEditor]').on('change', timeChange);
};

对于日期时间选择器 - >

 function dateTimeEditor(container, options) {
    $('<input name="editableBlock" data-text-field="' + options.field + '" data-value-field="' + options.field + '" data-bind="value:' + options.field + '" data-format="' + options.format + '"/>')
            .appendTo(container)
            .kendoDatePicker({ min: btch_strt_dt });
    $('input[data-value-field=rsrc_dt]').attr('readonly', 'readonly');
    $('input[data-value-field=rsrc_dt]').parent().css('margin-left','-5px');
}

【问题讨论】:

  • 提供您用于打开编辑器的代码,包括选择器和事件。
  • @AliKhanusiya 我已经编辑了我的问题,我已经展示了我正在使用的编辑器。

标签: jquery drop-down-menu kendo-ui kendo-grid kendo-editor


【解决方案1】:

加载网格后调用它

  $("#gridName").on("mouseover", "td", function () {
     var tr = $(this).closest("tr");
     if (!$(this).hasClass("k-edit-cell")){
        $("#gridName").data("kendoGrid").editCell($(this));
  }
});

这适用于整行,但对列进行修改应该不难。此外,关于模糊效果,您必须确保保存数据。

$("#gridName").on("mouseleave", "td.k-edit-cell", function () { 
   $("#gridName").data("kendoGrid").saveRow();
});

现在试试这个,这应该可以阻止散射,认为它应该可以工作。 祝你好运

【讨论】:

  • 顺便说一句,大多数时候你从下拉菜单中选择一个值,它会直接保存,因为鼠标已经离开了行,并且会调用“保存”事件。不知道这对你来说是否有问题:P
  • 您的代码有效,但它只是使下拉菜单在行悬停时可编辑,而不是日期选择器或时间块。你能帮忙吗?另外,请提供一些使特定列可编辑的想法
  • 对于单列,您必须将偶数附加到单个单元格,而不是整行,所以可以尝试将 'tr' 更改为 'td'
  • 嘿,当我应用你的代码时,html 会突然发生变化,它只是分散,新外观就像这样 [4]:i.stack.imgur.com/j8cRK.png 你有任何工作代码或链接
  • 嘿,你的代码现在很好用,但是有一个问题,我无法从下拉列表中选择任何东西,这可能是因为在选择一个选项时我更改了“td”所以一个新的事件被触发。但是,我可以使用 key-up-down 从下拉列表中选择选项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多