0

这是我的情况。

我正在这篇文章的帮助下制作一个动态表格。

在这里你可以看到它(文章演示)使用kendo template.

  <script id="fieldsTemplate" type="text/x-kendo-template">
        <li>
             <label data-bind="attr: { for: name}, text: label"></label>
             <input data-bind="attr: { type: type, name: name, class: css}" # if (get("required")) {# required #} # />
       </li>
  </script>

生成表单后,此表单只是使用HTML5制作表单。它没有剑道属性。例如,如果我绑定data-role属性和值是numerictextbox它没有给我一个数字文本框(认为它的类型是数字)。它没有这些属性。(如果我输入一个数字,它不会显示默认的小数点。它只显示那个数字。)

但是在这个例子中,如果我们将 data-role 属性和值添加为 numerictextbox,它将是一个数字文本框。

但是在文档中或在此中,似乎我必须调用 kendoNumericTextBox 方法来制作数字文本框。

即使我尝试将此代码添加到模板中,但它不起作用(请假设我使用 this 正确添加了此代码

      $("#mytextboxid").kendoNumericTextBox();​

那我还有什么选择??非常感谢你

4

1 回答 1

0

您必须将 data-role 属性设置为输入元素才能将元素转换为剑道控件/元素。请尝试使用以下代码片段。

<body>
    <div id="example">
        <!-- container UL to host input fields -->
        <ul data-template="fieldsTemplate" data-bind="source: fields"></ul>
    </div>


    <!-- Kendo Template binds properties from model to input fields -->
    <script id="fieldsTemplate" type="text/x-kendo-template">
        <li>
            <label data-bind="attr: { for: name}, text: label"></label>
            <input name=#= name #  class=#= css # # if (get("required")) {# required #} # 
              # if (type == 'number') {# data-role="numerictextbox" #}else{# type=#=type#  #}#  />
        </li> 
    </script>

    <script type="text/javascript">
        // retrieve the model from an API call
        var model = {
            "fields": [{
                "css": "cssClass1",
                "label": "Field 1",
                "name": "Field1",
                "required": false,
                "type": "text"
            },
            {
                "css": "cssClass2",
                "label": "Field 2",
                "name": "Field2",
                "required": true,
                "type": "number"
            },
            {
                "css": "cssClass2",
                "label": "Checkbox Field",
                "name": "CheckField",
                "required": false,
                "type": "checkbox"
            },
            {
                "css": "cssClass2",
                "label": "Email Address",
                "name": "Email",
                "required": true,
                "type": "email"
            },
            {
                "css": "cssClass2",
                "label": "Password",
                "name": "Password",
                "required": true,
                "type": "password"
            }
            ]
        };
        // convert the JSON to observable object
        var viewModel = kendo.observable(model);
        // bind the model to the container
        kendo.bind($("#example"), viewModel);

    </script>
</body>

JSFiddle

让我知道是否有任何问题。

于 2015-09-07T12:42:53.557 回答