在悬停时打开剑道编辑器

时间:2016-04-25 12:41:10

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

我有Kendo网格下拉,datepicker编辑器。它工作正常,只有当我点击块时打开下拉/日期选择器编辑器。

是否可以通过Hover方式将块转换为编辑器格式(datePicker / dropdown)。

正常状态图像 - >

enter image description here

当我点击日期字段时,它会更改为 - >

enter image description here

当我点击下拉列表 - >

enter image description here

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

我的编辑器模板是

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选择器的代码 - &gt;

 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);
};

对于日期时间选择器 - &gt;

 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');
}

1 个答案:

答案 0 :(得分:2)

加载网格后调用此方法

  $("#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();
});

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