0
我在使用JavaScript動態編輯一些字段。但問題是Kendo的dataSource無法將它們識別爲已更改的單元格。如何標記Kendo Grid的單元格編輯?
網格的編輯模式是InCell
。
這是我目前的JavaScript代碼:
tablesGrid.tbody.find("input[type='checkbox']").each(function() {
$(this).on('change', function() {
var isChecked = $(this).prop('checked');
var dataItem = tablesGrid.dataItem($(this).closest('tr'));
var currentTr = $(this).closest('tr');
var i = $('td:visible', currentTr).index($(this).closest('td'));
var head = tablesGrid.thead.find('th:visible')[i];
var headName = $(head).prop('dataset').field;
tablesGrid.editCell($(this).closest('td'));
dataItem[headName] = isChecked;
tablesGrid.refresh();
});
});
如果你想知道這個代碼,我要指出,我使用的客戶端模板,以顯示覆選框。但我不希望用戶雙擊單元格進行編輯,一次將其放入編輯模式,另一次更改複選框。我不確定我是否使用了正確的解決方案,但JS代碼肯定有效。如果我點擊單元格並將其置於編輯模式,我會看到更改。
@(Html.Kendo().Grid<grid>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(x => x.field)
.ClientTemplate("<input type='checkbox' class='checkbox-inline' #=field? checked='checked':''# />")
.EditorTemplateName("Checkbox");