2017-09-20 35 views
0

我有一個內聯編輯的劍道網格。如果行中的另一個單元格被選中,我希望能夠使該行中的一個單元格可編輯。如果它沒有被選中,那麼我希望單元格是隻讀的。根據其他單元的狀態,使劍道網格單元可編輯或只讀

我的專欄是這樣的:

columns: [ 
    { field: "Title" }, // string 
    { field: "Body" }, // string 
    { field: "IsCalculated", template: "#= IsCalculated ? 'Yes' : 'No' #" }, // boolean 
    { field: "Expression" } // string 
] 

如果Calculated被選中然後我想Expression可編輯,否則,我希望它是隻讀的。

我已經看了看配置文檔的劍道電網和我已經嘗試與columns.editable功能,但在文檔的解釋:「執行JavaScript函數時,細胞/行爲編輯打開。返回的結果將決定是否創建該列的編輯器。「

我可以使用此函數來確定單元格在打開之前是否應該可編輯或只讀,但我希望能夠在單元格打開並進行編輯時對其進行更改,並且已選中或取消選中「複選框Calculated」。

+0

我猜你可能必須做兩件事:1)使用你所描述的功能來防止單元格被編輯,如果該框未被選中的話; 2)監視計算變化,並且如果該框未被選中,則可能調用網格的closeCell函數(不知道你想在這一點上發生什麼輸入值) – Onite

回答

0

儘量防止edit事件與cancelRow()

edit: function(e) { 
    if (!e.model.IsCalculated && 
     $(e.container).find('input').attr("name") == "Expression") 
    { 
     this.cancelRow(); 
    } 
} 

Demo

UPDATE - 更好的條件:

if (!e.model.IsCalculated && 
    $(e.container).find('input[name="Expression"]').length) // <--- 

Demo

相關問題