操作的输入字段未发送到服务器

时间:2016-09-22 09:06:12

标签: asp.net-mvc forms kendo-ui

我正在使用带有自定义模板的kendo计划。

...
      .Editable(editable => { editable.TemplateName("_CustomTemplate"); }))
...

模板

 ...
        <div class="k-edit-label">
            @(Html.LabelFor(model => model.Title))
        </div>
        <div data-container-for="title" class="k-edit-field">
            @(Html.TextAreaFor(model => model.Title, new { @class = "k-textbox", data_bind = "value:title" }))
        </div>
    ...

操纵model.Title字段的任何操作均失败。 绑定每js的值后,它不再被发送到服务器。字段值保持为空或甚至不显示。 我说我几乎可以找到关于这个主题的所有内容,以便让它发挥作用,但我失败了。 另外,添加新的<input>甚至在模型中创建其他字段并修改它也不起作用。

似乎无法为实际发送到服务器的 js 设置任何输入值,而不仅仅是在视图中显示。 至少不是这样做的:

 $('#Title').attr('value', data);
 or
 $('#Title').val(data);

由于我无法相信这是一个普遍问题,我怀疑此处涉及剑道时间表/模板。

如果您想知道我为什么要首先操作输入字段值,那就是:

我想使用自定义模板创建的计划对应于一个事件。我想将计划的默认值标题设置为存储在事件中的字段的值。由于此模型与事件模型之间没有连接,因此我只能在计划模型实例化后才能获得此值。 我可以简单地通过ajax从事件中请求所需的值并更新<input>,但我错了......

1 个答案:

答案 0 :(得分:1)

Kendo UI编辑表单通常依靠编辑文本框来触发change事件,以便更新基础模型(数据项)。

如果您以编程方式操作值,则手动触发change事件。

$("#Title").val(data).trigger("change");

另一方面,以编程方式更改模型值的正确方法是通过Kendo UI Model的set方法。在打开的编辑表单方案中,您可以在计划程序的event事件中将模型(edit)获取为e.event

e.event.set("title", data);