0

我在我的网页中使用了 KoGrid,并且选择了多行选择。因此,我的网格中首先添加了一个复选框列。但是当我通过单击该行来选择 KoGrid 时,复选框被标记但是当我单击该复选框时,该行被选中但复选框为空。

我的 KoGrid 配置代码如下:

gridOptions = {
            data: "Some Data",
            columnDefs: [
                { field: 'TransactionId', displayName: 'Transaction ID' },
                { field: 'InvoiceNumber', displayName: 'Invoice Number' },
                { field: 'ContactName', displayName: 'Contact Name' },
                { field: 'Carrier', displayName: 'Carrier' },
                { field: 'InvoiceDate', displayName: 'Invoice Date' },
                { field: 'Amount', displayName: 'Amount' },
                { field: 'PaymentStatus', displayName: 'Payment Status' },
                { field: 'IsPastDue', displayName: 'Is Past Due', cellTemplate: '<label class="gridCheckBox"><input type="checkbox" data-bind="checked: $data.getProperty($parent)"></label></div>' },
                { field: 'DaysPastDue', displayName: 'Days Past Due' }
            ]
        };

无法找到究竟是什么问题。

请帮忙。谢谢

4

1 回答 1

1

必须加

return true; 

从在事件afterSelectionChange中添加的方法中,如果添加了任何事件捕获方法,否则在您的网格配置中添加以下内容。

afterSelectionChange: function(){ return true; }

如果我们不添加上面的代码,afterSelectionChange将返回 undefined ,这就是为什么即使在通过复选框单击选择行之后复选框仍然未选中的原因。

所以我的最终结果如下:

gridOptions = {
        data: "Some Data",
        columnDefs: [
            { field: 'TransactionId', displayName: 'Transaction ID' },
            { field: 'InvoiceNumber', displayName: 'Invoice Number' },
            { field: 'ContactName', displayName: 'Contact Name' },
            { field: 'Carrier', displayName: 'Carrier' },
            { field: 'InvoiceDate', displayName: 'Invoice Date' },
            { field: 'Amount', displayName: 'Amount' },
            { field: 'PaymentStatus', displayName: 'Payment Status' },
            { field: 'IsPastDue', displayName: 'Is Past Due', cellTemplate: '<label class="gridCheckBox"><input type="checkbox" data-bind="checked: $data.getProperty($parent)"></label></div>' },
            { field: 'DaysPastDue', displayName: 'Days Past Due' }
        ],
       afterSelectionChange: function(){ return true; }
    };
于 2013-11-22T06:21:41.117 回答