2017-10-20 27 views
0

J'utilise le plug-in KoGrid d'avoir une grille à élimination directe avec cases de sélection. J'ai le code suivant jusqu'ici.KoGrid Sélection rang Reliure

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()); 

Im demandais comment j'accéder à la propriété selectedItems afin que je puisse transmettre les valeurs sélectionnées à un appel ajax?

Ou puis-je pas le faire et doivent pousser manuellement l'ID sélectionné pour un tableau en utilisant l'option afterSelectionChange?

Répondre

2

Dans votre gridOptions vous passez dans une référence à votre mySelectedData ensemble observable à utiliser comme SelectedItems donc vous devriez être en mesure d'utiliser la variable mySelectedData d'origine au lieu de SelectedItems; ils sont équivalents. mySelectedData sera mis à jour lorsque la sélection de la grille changera.

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>