我在两个独立的解决方案中使用了一个Kendo编辑器模板,在那里我创建了我的模板,如下所示
@using Kendo.Mvc.UI
@(Html.Kendo().NumericTextBox()
.Min(0)
.Decimals(0))
现在,要将其用作Razor语法中的编辑器模板,我将其附加到列,如下所示:
columns.Bound(p => p.SomeField).EditorTemplateName("NumericTextBoxEditor");
一切正常,我的数字文本框不允许非数字输入。如果我通过在Javascript中声明列来尝试相同的事情,我无法让它工作。有没有办法设置正确的编辑器模板,例如。
var myColumns = [];
myColumns.push({
width: 100,
editor: "NumericTextBoxEditor"
});
或者它永远不会知道编辑器模板,因为它是服务器端?
答案 0 :(得分:1)
或者它永远不会知道编辑器模板,因为它是服务器 侧?
这是正确的。
在JS中,column.editor必须是一个函数,因此您无法直接使用服务器端编辑器模板。等价物将是这样的:
columns: [{
field: "fieldName",
editor: function (container, options) {
var input = $('<input name="' + options.field + '" />');
input.appendTo(container);
input.kendoNumericTextBox({
min: 0,
decimals: 0
});
}
}],