2017-10-20 71 views
0

我使用KoGrid插件有一个选择复选框的挖空网格。到目前为止,我有以下代码。KoGrid行选择绑定

function columnDefsVM() { 
    var self = this; 
    this.myData = ko.observableArray(GlobalJson); 
    this.mySelectedData = ko.observableArray(SelectedJson); 

    this.gridOptions = { 
     data: self.myData, 
     columnDefs: [{ field: 'TestEventId', displayName: 'Name' }], 
     selectedItems: self.mySelectedData, 
     enablePaging: false, 
    }; 
} 
ko.applyBindings(new columnDefsVM()); 

我只是想知道如何我访问selectedItems属性,以便我可以通过选定值一个Ajax调用?

或者我可以不这样做,必须使用afterSelectionChange选项手动将选定的ID推送到一个数组?

回答

2

在你gridOptions你传递的引用,你mySelectedData观察到数组作为SelectedItems使用,所以你应该能够使用原来的mySelectedData变量,而不是SelectedItems;它们是等价的。当网格选择改变时,将更新mySelectedData

function columnDefsVM() { 
 
    var self = this; 
 
    this.myData = ko.observableArray([ 
 
    \t {TestEventId: 1, Name: 'Object 1'}, 
 
    \t {TestEventId: 2, Name: 'Object 2'}, 
 
    \t {TestEventId: 3, Name: 'Object 3'}, 
 
    ]); 
 
    this.mySelectedData = ko.observableArray([]); 
 

 
    this.gridOptions = { 
 
     data: self.myData, 
 
     columnDefs: [{ field: 'TestEventId', displayName: 'Name' }], 
 
     selectedItems: self.mySelectedData, 
 
     enablePaging: false, 
 
    }; 
 
} 
 
ko.applyBindings(new columnDefsVM());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/gh/Knockout-Contrib/[email protected]/koGrid-2.0.6.debug.js"></script> 
 
<link href="https://cdn.jsdelivr.net/gh/Knockout-Contrib/[email protected]/KoGrid.css" rel="stylesheet" /> 
 

 
<label>mySelectedData: </label><span data-bind="text: ko.toJSON(mySelectedData)"></span> 
 
<br/> 
 
<br/> 
 
<div style="height:200px;" data-bind="koGrid: gridOptions"></div>