Aquí hay una alternativa usando un ChartWrapper en lugar de un gráfico.
var opts = {
"containerId": "chart_div",
"dataTable": datatable,
"chartType": "Table",
"options": {"title": "Now you see the columns, now you don't!"}
}
var chartwrapper = new google.visualization.ChartWrapper(opts);
// set the columns to show
chartwrapper.setView({'columns': [0, 1, 4, 5]});
chartwrapper.draw();
Si utiliza un ChartWrapper, usted puede agregar fácilmente una función para cambiar las columnas ocultas, o mostrar todas las columnas. Para mostrar todas las columnas, pase null
como el valor de 'columns'
. Por ejemplo, usando jQuery,
$('button').click(function() {
// use your preferred method to get an array of column indexes or null
var columns = eval($(this).val());
chartwrapper.setView({'columns': columns});
chartwrapper.draw();
});
En su html,
<button value="[0, 1, 3]" >Hide columns</button>
<button value="null">Expand All</button>
(Nota:. eval
utilizado para la concisión utilizar lo que se adapte a su código es el punto..)
¿Hay alguna manera de que este comportamiento ocurra cuando alguien hace clic en un enlace? Por ejemplo, de forma predeterminada, quiero ocultar algunas columnas (usando view.hideColumns). Entonces quiero tener un enlace 'Expandir' sobre la mesa que cuando el usuario hace clic en él, las columnas restantes quedan expuestas (usando view.setColumns). También estoy abierto a sugerencias para una mejor implementación de este comportamiento. – Myx