2017-10-20 14 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 속성에 액세스하는 방법을 궁금해?

또는이 작업을 수행 할 수없고 afterSelectionChange 옵션을 사용하여 선택한 ID를 수동으로 배열에 푸시 할 수 있습니까? 에서

답변

2

당신의 gridOptions 당신은 그래서 당신은 SelectedItems 대신 원래 mySelectedData 변수를 사용 할 수 있어야 SelectedItems로 사용하도록 mySelectedData 관찰 배열에 대한 참조를 전달하는; 그들은 동등하다. 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>