[英]Kendo grid validation not working with custom grid behavior
我无法通过验证在我的自定义网格中工作。 网格旨在更改已编辑单元格下方的单元格值。 在两个单元格都具有新值之后,将单元格焦点设置到下一个单元格(如果按下Enter / Tab键,或者在下一个鼠标单击的单元格中都位于右侧单元格)。 为了使所有这些正常工作,我必须编写自定义的refresh()
和current()
函数,并在网格中使用自定义的edit()
和save()
事件。 我还在单元格中使用自定义编辑器,该编辑器删除了微调框并选择了单元格的值。
我做了一个简化的工作示例,它表明验证不起作用。 在示例中,您可以在第一行中编辑单元格,然后按Enter或Tab键,下面的单元格将获得与编辑后的单元格相同的值。 为了使鼠标和键盘都能够正常工作,自定义功能和事件是必需的,因此我必须使用它们。
如果删除单元格的值,然后按Enter键,则不会显示验证错误。 我想这与我使用的所有自定义函数和事件有关。 有没有办法使验证工作?
我可以正常使用,问题出在自定义列编辑器功能之内。 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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.