У меня есть сайт Asp.Net MVC, для которого я начал использовать kogrid knockoutjs для отображения сеток данных.KO Grid не может сохранить данные из отредактированной ячейки - с помощью Plunker
Для одной конкретной сетки я хотел бы, чтобы пользователь мог редактировать столбцы адреса электронной почты. При нажатии кнопки сохранения редактируемое значение сохраняется в базе данных.
Я могу представить сетку в порядке и выбрать строку, которую пользователь может ввести в нужную ячейку. Моя проблема в том, что я не понял, как изменить значение ячейки .
Вот определение для моих вариантов сетки:
var emailCellTemplate = '<div><input type=\"text\" data-bind=\"visible: $parent.selected(), value: $parent.entity[$data.field]" /><span data-bind=\"visible: !$parent.selected(), text: $parent.entity[$data.field]\"></span></div>'
this.gridOptions = {
height: 200,
afterSelectionChange: function() { return true; },
data: self.workflowRules,
enablePaging: true,
pagingOptions: self.pagingOptions,
filterOptions: self.filterOptions,
selectWithCheckboxOnly: true,
selectedItems: self.selected,
canSelectRows: true,
displaySelectionCheckbox: true,
columnDefs: [{ field: 'ReceivePortName', displayName: 'Receive Port', width: 130 },
{ field: 'MessageType', displayName: 'Message Type', width: 400 },
{ field: 'TriggerSource', displayName: 'Source', width: 150 },
{ field: 'TargetEmailAddress', displayName: 'Email', width: 180, cellTemplate: emailCellTemplate },
{ field: 'AssignedToName', displayName: 'Assigned To', width: 140 },
]
};
$ parent.entity [$ data.field] отлично подходит для выбора значения, которая была загружена из базы данных, но не дает мне отредактированное значение. Когда я помещаю точку останова в код js, который запускается при нажатии кнопки Save to Database, я получаю, чтобы увидеть отредактированное значение в WorkflowRules.TargetEmailAddress, но я не понял, как привязать его.
Я создал шлепнуть, чтобы помочь проиллюстрировать здесь: https://plnkr.co/edit/Ibc0WZwyb4melgNDzcUo
Может кто-нибудь, пожалуйста, посоветуйте, как мне нужно установить мой emailCellTemplate?
Как вы хотите использовать измененные данные? Вы можете найти его в 'vm.workflowRules()' –
В вашем примере ссылки есть ошибка 'vm не определена' –