2013-06-27 75 views
0

我有一個自定義編輯模板劍道列表視圖,自定義編輯模板劍道列表視圖 - 無法更改模型值

這是列表視圖代碼

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> 

下面是這種情況

當列表視圖進入我在編輯模式下,我會填寫第一個字段「Person」,它是一個自動完成的。

根據我爲自動填充「人物」選擇的值,我想將其相應的值分配給城市,州和郵編。我能夠成功地分配值。

但是,當我打電話$("#warrantyContact_listview").data("kendoListView").save();

當我檢查Firebug控制檯(我用的人自動完成的select事件jQuery的AJAX做),

這些變化值的城市,州和zip沒有傳遞給服務器端。

我在這裏失蹤了什麼?

我必須在這裏更改模板中值的綁定嗎?

我試圖改變參數映射函數中的值,但它不起作用。

任何幫助將不勝感激!

回答

1

我的第一個猜測是,當您更改這些值時,您不在數據源中使用set() method of the ObservableObject,所以kendo dataSource不知道observable的字段被修改。 所以在save()(它調用dataSource的sync())時,它看不到任何新東西,並且它不更新任何內容。

手動檢查您的數據源,用set()更改某些內容並使用save()查看它是否已保存。

+0

謝謝!這是問題,:) –

+0

你應該也處於編輯模式(即grid.edit(row))。可能會遇到這個問題,因爲他們已經根據某些外部條件手動編輯了值,而未處於編輯模式並嘗試保存。網格的可編輯屬性將是未定義的,保存將不會執行任何操作。 – jwize