2012-08-02 20 views
6

Attualmente sto lavorando con le tabelle del grafico di Google. Ho un problema con le selezioni. Voglio disattivare le selezioni, ma sembra impossibile. Ho anche provato (un vero brutto modo) come un listener di eventi sulla parte selezionata che utilizza il metodo clearChart() per rimuovere questo.Google Chart Tabella Rimuovi la selezione

Ecco il codice di prova. Si noti che i cant uso questo in jsfiddle

<script type="text/javascript" src="https://www.google.com/jsapi" ></script> 
<script type="text/javascript"> 
google.load("jquery", "1"); 

google.load('visualization', '1', {packages:['table']}); 

    function drawVisualization() 
    { 
      var data = google.visualization.arrayToDataTable([ 
      ['', 'Name', 'E-mail', 'Activated', 'Last login'], 
      ['<input type="checkbox">', 'name1', '[email protected]', true, '20-07-2012'], 
      ['<input type="checkbox">', 'name2', '[email protected]', true, '21-07-2012'] 

       ]); 

       var options = {}; 
       options['showRowNumber'] = false; 
       options['page'] = 'enable'; 
       options['allowHtml'] = true; 
       options['pageSize'] = 18; 
       options['pagingButtonsConfiguration'] = 'auto'; 

       var visualization = new google.visualization.Table(document.getElementById('table')); 
       visualization.draw(data, options); 
      } 

      google.setOnLoadCallback(drawVisualization); 

</script> 
<div id="table"></div> 

Il problema è che se uso questi caselle di controllo (blu) offerta anoying e confusa.

Grazie.

risposta

11

Un'altra opzione è quella di ripristinare la selezione quando l'evento "selezionare" viene sparato:

google.visualization.events.addListener(visualization, 'select', selectHandler); 

function selectHandler() { 
    visualization.setSelection([]) 
} 

Ecco un esempio: http://jsfiddle.net/Rxnty/

Questo rimuove immediatamente la selezione senza la necessità di un ridisegno.

+0

Grazie, sembra il modo "migliore" per farlo. Vergogna su Google non può essere disabilitato al posto di override! –

2

Un modo per ottenere l'effetto desiderato è comunicare all'API quale classe deve essere applicata quando viene selezionata la riga, consentendo di mantenere specificato lo background-color della riga.

JS:

options['cssClassNames'] = {} 
options['cssClassNames']['selectedTableRow'] = 'selected'; 

CSS:

.selected { background-color: white; } 

Lo si può vedere lavorare su jsfiddle.

+0

Questo è più brutto della mia opzione. Aggiungi stile per rimuovere lo stile aggiunto .... –

+0

Anche se potrebbe non essere una soluzione ideale (piuttosto che brutta), ti dà solo un modo per ignorare gli stili predefiniti di Google. – cchana

+0

Non esiste un modo per evitare invece di eseguire l'override? –

Problemi correlati