KnockoutJs KoGrid не может поставить галочку для выбора
У меня есть KnockoutJs Ko Grid, который настроен так, чтобы пользователь мог выбрать несколько строк. Строки могут быть выбраны, и я могу определить, какие строки были выбраны в функциях JS, связанных с нажатием кнопки. Тем не менее, дисплей не совсем правильно. Когда пользователь нажимает флажок слева от сетки, он не отмечен галочкой.
В моей JS viewmodel у меня установлен следующий gridOptions. Я установил selectedwithCheckboxOnly в значение true, потому что один из столбцов содержит гиперссылки, которые нужны пользователю для действия:
this.gridOptions = {
data: self.myData,
enablePaging: true,
pagingOptions: self.pagingOptions,
filterOptions: self.filterOptions,
selectWithCheckboxOnly: true,
selectedItems: self.selected,
canSelectRows: true,
displaySelectionCheckbox: true,
columnDefs: [{ field: 'Timestamp', displayName: 'Timestamp', width: 130 },
{ field: 'State', displayName: 'State', width: 70 },
{ field: 'FaultApplication', displayName: 'Application', width: 110 },
{ field: 'FaultExceptionMessage', displayName: 'Exception Message', width: 400 },
{ field: 'FaultServiceName', displayName: 'ServiceName', width: 140 },
{ field: 'LinkToFaultsPage', displayName: 'Link to Fault', width: 80, cellTemplate: '<a data-bind="attr: { href: $parent.entity.LinkToFaultsPage}" >Fault</a>' }
]
};
Я обнаружил такое же поведение в следующем JsFiddle: http://jsfiddle.net/BizTalkers/oowgbj80/
1 ответ
Похоже, это известная ошибка, которая была устранена пользователями GitHub и kiaplayer.
kogrid некорректно обновляет выбранное состояние, к которому привязан флажок. Если вы добавите пользовательский afterSelectionChange
метод через вашу привязку данных, вы решите проблему. Обновите HTML-код в скрипте так:
<div id="wrapper" data-bind="koGrid:{data:myObsArray, afterSelectionChange: function () { return true; } }"></div>
( пример)