Kendo网格验证无法使用自定义网格行为

时间:2014-04-17 09:04:54

标签: javascript jquery validation kendo-ui kendo-grid

我无法在自定义网格中进行验证。网格旨在更改已编辑单元格下方的单元格值。两个单元格都有新值后,单元格焦点将设置为下一个单元格(如果按下输入/选项卡,则向右移动单元格,或者接下来单击鼠标单元格)。为了使所有这些工作,我必须编写自定义refresh()current()函数,并在网格中使用自定义edit()save()事件。我还在单元格中使用自定义编辑器,它会删除微调器并选择单元格的值。

我做了一个简化的工作示例,显示验证无效。在该示例中,您可以编辑第一行中的单元格,当您按Enter或tab时,下面的单元格将获得与编辑的单元格相同的值。自定义函数和事件是必要的,鼠标和键盘都可以聚焦,所以我必须使用它们。

如果删除单元格的值,请按Enter键不会显示验证错误。我想这与我使用的所有自定义函数和事件有关。有没有办法使验证工作?

EXAMPLE

1 个答案:

答案 0 :(得分:1)

我让它工作,问题出在自定义列编辑器功能中。 Telerik的伙计们为我提供了解决方案:

  

由于缺少验证属性,未触发验证。您可能知道,当使用自定义列编辑器时,开发人员负责将相应的验证属性添加到此编辑器中的正确元素。

function editNumberWithoutSpinners(container, options) {

    // add name attribute to connect the validation placeholder with the validated element
    $('<input name="' + options.field + '" data-text-field="' + options.field + '" ' +
        'data-value-field="' + options.field + '" ' +
        'data-bind="value:' + options.field + '" ' +
        'data-format="' + options.format + '" required="required"/>') // add the validation attributes
        .appendTo(container)
        .kendoNumericTextBox({
            spinners: false,
            min: 0
        });

    // custom validation message placeholder is required due to the way NumericTextBox is rendered
    $('<span class="k-invalid-msg" data-for="' + options.field + '"></span>').appendTo(container);
}