如何获取kendo模板创建的kendoui网格弹出添加/编辑表单,显示添加和编辑操作的正确标题?

时间:2013-10-15 06:41:46

标签: templates popup kendo-ui kendo-grid

当使用自定义模板创建时,我似乎找不到在kendoui网格上启动的弹出添加和编辑表单上设置标题的简单方法。当我尝试以下示例时,Add和Edit操作在弹出窗口的标题栏中都有“编辑”:

标记:

<script id="popup-editor" type="text/x-kendo-template">
  <p>
    <label>Name:<input name="name" /></label>
  </p>
  <p>
    <label>Age: <input data-role="numerictextbox" name="age" /></label>
  </p>
</script>
<div id="grid"></div>

JavaScript的:

$("#grid").kendoGrid({
  columns: [
    { field: "name" },
    { field: "age" },
    { command: "edit" }
  ],
  dataSource: {
    data: [
      { id: 1, name: "Jane Doe", age: 30 },
      { id: 2, name: "John Doe", age: 33 }
    ],
    schema: {
      model: { id: "id" }
    }
  },
  editable: {
    mode: "popup",
    template: kendo.template($("#popup-editor").html())
  },
    toolbar: [{ name: 'create', text: 'Add' }]
});

小提示演示问题:http://jsfiddle.net/codeowl/XN5rM/1/

问题在于,当您按下“添加”或“编辑”按钮时,弹出窗口中的标题栏会显示:“编辑”。我想按“添加”按钮时按“添加”,按“编辑”按钮时按“编辑”。

感谢您的时间,

此致

斯科特

2 个答案:

答案 0 :(得分:9)

如果您想要一个简单的解决方案,请将代码添加到网格的编辑事件中,以检查在调用编辑时创建的模型是新模型还是现有模型,并相应地设置文本:

...

edit: function (e) {
   //add a title
   if (e.model.isNew()) {
       $(".k-window-title").text("Add");
   } else {
       $(".k-window-title").text("Edit");
   }
}

...

希望这会有所帮助......

答案 1 :(得分:3)

如果您需要做的唯一事情就是添加标题,您应该使用:

editable  : {
    mode : "popup",
    window : {
        title: "Edición",
    }
},

除非您需要定义其他内容,否则无需定义模板。

您修改过的小提琴:http://jsfiddle.net/OnaBai/XN5rM/2/