Kendo Grid EditorTemplateName - 客户端绑定

时间:2014-04-24 15:55:22

标签: javascript asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我在两个独立的解决方案中使用了一个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"
});

或者它永远不会知道编辑器模板,因为它是服务器端?

1 个答案:

答案 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
        });
    }
}],