2015-04-22 4 views
0

je la question suivante avec slickgrid:SlickGrid onSelectedRowsChanged pas de tir

  1. Clic gauche rangée 1 (feux onSelectedRowsChanged comme prévu)
  2. Maintenez le bouton de commande
  3. Clic gauche rangée 2 (feux onSelectedRowsChanged comme attendu)
  4. clic gauche ligne 1 (feux onSelectedRowsChanged comme prévu)
  5. Lâchez le bouton de commande
  6. Cliquez sur la ligne 1(onSelectedRowsChanged ne se déclenche pas! Si vous cliquez sur la même cellule de rangée 1 que précédemment)

Problèmes décrits à l'étape 6 ci-dessus. Voici un lien vers un jsfiddler montrant les problèmes: http://jsfiddle.net/fortesl/oLj8otsj/1/

code aussi ci-joint:

  var grid; 
    var data = []; 
    var columns = [{ 
     id: "title", 
     name: "Title", 
     field: "title", 
     width: 300, 
     selectable: false, 
     resizable: false 
    }, { 
     id: "priority", 
     name: "Priority", 
     field: "priority", 
     width: 200, 
     selectable: false, 
     resizable: false 
    }]; 

    var options = { 
     editable: true, 
     enableAddRow: true, 
     enableCellNavigation: true, 
     forceFitColumns: true, 
     autoEdit: false 
    }; 

    for (var i = 0; i < 100; i++) { 
     var d = (data[i] = {}); 
     d["title"] = "Task " + (i + 1); 
     d["priority"] = "Medium"; 
    } 

    grid = new Slick.Grid("#myGrid", data, columns, options); 

    grid.setSelectionModel(new Slick.RowSelectionModel()); 

    grid.onSelectedRowsChanged.subscribe(function() { 
     var selectedRows = grid.getSelectedRows(); 
     for (var i = 0; i < selectedRows.length; i++) { 
      selectedRows[i] = selectedRows[i] + 1; 
     } 
     $('.selected-rows')[0].innerHTML = selectedRows; 
    }); 
    grid.onClick.subscribe(function() { 
     $('.selected-rows')[0].innerHTML = ''; 
    }); 

S'il vous plaît aider

+0

Cool, ce que tu as à ce jour? Afficher un code – felipekm

+0

exemple? Utilisez JSFIDDLE si vous voulez que nous déboguons votre code. – Fallenreaper

+0

http://casivaagustin.com.ar/wp-content/uploads/2015/04/show-me-the-source-yoda.jpg – Fallenreaper

Répondre

0

Je résolu mon problème en traitant l'événement OnClick et appelant setSelectedRows du gestionnaire. Illustré ci-dessous:

   grid.onClick.subscribe(function(e) { 
       var cell = $scope.grid.getCellFromEvent(e); 
       var row = (cell) ? cell.row : 0; 
       var rows = [row]; 
       grid.setSelectedRows(rows); 
      }); 
0

Ceci est parce que la cellule (pas la ligne) est active et dans les slick.grid.js il y a un contrôle assurant que le déclencheur ne soit pas activé si cliquant sur une cellule déjà active.

Jetez un oeil à la

function handleClick(e)... 

dans le fichier de code source et vous verrez le chèque en question.

0

événement OnClick et appelant setSelectedRows donne une autre highlightcolor (plus comme le jaune-rose) de la ligne sélectionnée que onSelectedRowsChanged (bleu dans ma demande)

+1

Ajoutez-y plus de détails. – Billa