切換到編輯模板,我已經能說明問題的這個簡單的例子:http://dojo.telerik.com/AROMAZ劍道的ListView:選擇所需項目
我想選擇(點擊)項目,使其切換到其「編輯」模板。 只有在選擇新項目前點擊編輯項目的「取消」圖標,它才能正常工作。
如果我選擇一個新項目而不手動取消選擇上一個項目,它將停止工作。
我不會依賴什麼,也不需要'取消'按鈕。
它應該很容易..點擊你想編輯的項目(切換到它的'編輯'模板)。選擇一個應取消選擇先前選擇的項目。即一次編輯一個。
我認爲問題是我無法找到一種方法來自動選擇/取消編輯一個項目(如果有任何選定的)之前手動編輯另一個。
編輯1:
this.edit(selected)
前配售this.cancel();
沒有按預期工作。注意這個代碼在原來的dojo示例中被註釋掉了。
當您選擇一個新的項目時,先前選擇的項目被取消編輯(這很好)。但是,新選擇的項目不會被編輯(不需要的行爲),並且會引發異常(不需要的行爲)。
唯一的例外是:
Uncaught TypeError: Cannot read property 'uid' of undefined
at init.edit (kendo.all.js:53910)
at init.change (VM1332 result:42)
at init.trigger (kendo.all.js:124)
at init.change (kendo.all.js:53707)
at init.trigger (kendo.all.js:124)
at init._notify (kendo.all.js:25836)
at init.value (kendo.all.js:25811)
at init._tap (kendo.all.js:25725)
at init.d (jquery-1.12.4.min.js:2)
at init.trigger (kendo.all.js:124)
的this.cancel();
加入這一修改道場所示:http://dojo.telerik.com/AROMAZ/7
注意:要查看異常,打開瀏覽器的開發者工具(即Shift + CTR + I在Chrome)
編輯2:
P this.edit(selected)
之前的花邊this.save();
也可以拋出異常。例如:http://jsfiddle.net/horacioj/mkJTG/417/
不幸的是,這是行不通的。我已經添加了「編輯1」來說明原因。 – horacioj
我剛編輯好的解決方案。它正在工作,並沒有拋出異常。當然,如果您不希望在每次更改事件被觸發時進行同步,則必須防止保存事件,並應手動調用同步。 –
.save()也會拋出異常(添加「EDIT 2」),除了觸發不需要的save()。我想我有一個基於.cancel()的工作解決方案。我將它添加爲一個新的答案, – horacioj