我有自定义编辑模板的剑道列表视图,
这是列表视图代码
var warrantyContact_listview = $("#warrantyContact_listview").kendoListView({
autoBind: false,
dataSource: dataSource,
template: kendo.template($("#warrantyContact_listview_template").html()),
editTemplate: kendo.template($("#warrantyContact_editview_template").html())
}).data("kendoListView");
这是编辑模板代码
<script type="text/x-kendo-tmpl" id="warrantyContact_editview_template">
<div id="con_editview">
<dd>
<dt>Person</dt>
<input type="text"
data-role = "autocomplete"
data-source = "some_datasource"
data-text-field = "fname"
data-value-field = "bid"
class="k-textbox"
data-bind="value:some_value"
name="builder"
required = "required"
validationMessage = "required"
id="builder"/>
<span data-for="some_value" class="k-invalid-msg"></span>
</dd><br clear="all"/>
<dt>City</dt>
<dd>
<input type="text" class="k-textbox" data-bind="value:city" name="city" required = "required" validationMessage = "required" />
<span data-for="city" class="k-invalid-msg"></span>
</dd><br clear="all"/>
<dt>State</dt>
<dd>
<input type="text" name = "state" class="k-textbox" data-bind = "value:state" data-value-field="abbrev" data-text-field="abbrev" data-min-length="1" data-source="states_datasource" data-role="autocomplete" required = "required" validationMessage = "required" />
<span data-for="state" class="k-invalid-msg"></span>
</dd><br clear="all"/>
<dt>Zip</dt>
<dd>
<input type="text" class="k-textbox" data-bind="value:zip" name="zip" required = "required" validationMessage = "required" />
<span data-for="zip" class="k-invalid-msg"></span>
</dd><br clear="all"/>
</dl>
</div>
</script>
这是方案
当listview进入编辑模式时,我会填写第一个字段“Person”,这是一个自动完成的。
根据我为自动填充“人物”选择的值,我想将其对应的值分配给城市,州和邮政编码。我能够成功分配值。 (我在Person Auto完成的select事件中使用jquery ajax)
但是,当我拨打$("#warrantyContact_listview").data("kendoListView").save();
当我查看firebug控制台时,
那些更改的值city,state和zip没有传递到服务器端。
我在这里缺少什么?
我是否必须在此处更改模板中值的绑定?
我尝试更改参数map函数中的值,但是,它不起作用。
非常感谢任何帮助!
答案 0 :(得分:1)
我的第一个猜测是,当您更改值时,不要在dataSource中使用set() method of the ObservableObject,因此kendo dataSource不知道observable的字段已被修改。 所以在save()(它调用dataSource的sync())它没有看到任何新东西,并且它不会更新任何东西。
手动检查数据源,使用set()更改内容并使用save()查看是否已保存。