KnockoutJs KoGrid无法选中复选框

时间:2016-03-22 10:59:36

标签: knockout.js 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 个答案:

答案 0 :(得分:4)

GitHub用户ricredkiaplayer here已经解决了这个已知错误。

kogrid无法正确更新复选框所绑定的选定状态。如果您通过数据绑定添加自定义afterSelectionChange方法,则可以解决此问题。在你的小提琴中更新HTML:

<div id="wrapper" data-bind="koGrid:{data:myObsArray, afterSelectionChange: function () { return true; } }"></div>

example