Tengo una cuadrícula de datos .net con unas 20 columnas. Necesito que se visualice la visibilidad de una columna basándome en el clic de un botón utilizando javascript. ¿Algunas ideas?¿Oculta una columna de cuadrícula de datos con Javascript?
Respuesta
que desea utilizar COLGROUP de hacer esto, de lo contrario hay que aplicar un estilo a cada célula en cada fila, que será terriblemente ineficiente y probablemente se colgará el navegador, especialmente si su red es grande. Todas las respuestas antes mencionadas que se basan en una biblioteca de terceros (jQuery) lo hacen de manera lenta/perezosa. Como todo Javascript se ejecuta en el lado del cliente, es probable que desee tener un poco más de consideración en lo que respecta a la eficiencia.
Aquí ya go ...
function hideColumns(tableId, colIndexArray) {
var tbl = document.getElementById(tableId);
if(!tbl) return;
var rows = tbl.getElementsByTagName("TBODY");
if(rows.length == 0)
rows = tbl.getElementsByTagName("TR");
else
rows = rows[0].getElementsByTagName("TR");
var cols = rows[rows.length - 1].getElementsByTagName("TD");
var colgroup = document.createElement("COLGROUP");
for(var i = 0, l = cols.length; i < l; i++) {
var col = document.createElement("COL");
for(var num in colIndexArray) {
if(colIndexArray[num] == i) {
if(document.all)
col.style.display = 'none'
else
col.style.visibility = 'collapse';
break;
}
}
colgroup.appendChild(col);
}
tbl.insertBefore(colgroup, tbl.childNodes[0]);
}
utilizar de esta manera ...
var columnsToHide = [0, 1, 2]; // hide the first 3 columns
var tableId = "tableIdHere"; // view the source of your page to get this
hideColumns(tableId, columnsToHide);
Probado en IE7 y FF3: Hide Table Columns Using Javascript
Use jQuery! Es impresionante.
Su enlace puede tener este aspecto:
<a href="javascript:ToggleColumn();">Toggle My Column</a>
Su función javascript puede tener este aspecto:
function ToggleColumn()
{
$(".myColumn").toggle();
}
Cada generado en la columna deseada tendrá que tener la clase de atributo = "MICOLUMNA" para que tu javascript pueda encontrarlo Para ello, puede agregar un elemento <ItemStyle />
a la columna deseada de la cuadrícula de datos, así:
<asp:TemplateColumn runat="server">
<ItemStyle CssClass="myColumn" />
</asp:TemplateColumn>
Y, por último, recuerde incluir un enlace a jQuery en su archivo de cabecera en alguna parte, de esta manera:
<script src="/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
Puede download jQuery here.
'columna' no es realmente un archivo HTML elemento que puede alternar así. – SolutionYogi
@SolutionYogi: ¡Claro que sí! El selector jQuery está buscando la clase myColumn. Este código funciona muy bien! :) – JerSchneid
No del todo. Lo que ASP.NET hará es colocar la clase .myColumn en cada TD para esa columna. Entonces esos TD individuales se cambiarán cada uno. Feo como el pecado, pero debería funcionar. – Randolpho
Mi opinión personal sería utilizar JQuery.
Utilice los selectores para buscar la columna y agregue un 'oculto: verdadero' al estilo. Esta es una solución JS pura.
mirada a este plugin jQuery,
http://p.sohei.org/jquery-plugins/columnmanager/
incorporar este plugin en su página y lo llaman en el evento click del enlace.
Use jquery como otros sugirieron ... un selector como este debería hacerlo. Esto esencialmente ocultar la columna 3.
$('table.tableCSS tr').find('td:eq(2)').hide(); // eq(index)
- 1. cómo agregar una columna oculta en slickgrid
- 2. Mostrando una columna QTableView oculta
- 3. En WPF, ¿cómo puedo vincular una columna de cuadrícula de datos a una columna específica de una tabla de datos?
- 4. Ancho de columna de cuadrícula de datos de enlace
- 5. Binding cuadrícula de datos de cabecera de la columna DataContext
- 6. WPF Ocultar columna de cuadrícula
- 7. WPF Enlace de cuadrícula de datos y visualización de columna
- 8. Cuadrícula de datos en WPF - Prefijo de columna 1 ordenado
- 9. Ingresar datos en una cuadrícula
- 10. Ocultar cuadrícula ExtJS Columna encabezado
- 11. Obtenga el valor de la columna oculta en Gridview
- 12. Columna oculta del selector de columnas jQGrid
- 13. Ventana oculta usando javascript
- 14. ¿Animar columna de cuadrícula o fila de cuadrícula en XAML?
- 15. Necesita desactivar una columna en una vista de cuadrícula de datos en Winform
- 16. Encuadernación en una columna de texto de cuadrícula de datos de WPF
- 17. Arreglo de entrada oculta de Javascript
- 18. El uso de fijaciones para controlar el orden de columna en una cuadrícula de datos
- 19. Llenar cuadrícula de datos con filas vacías
- 20. Alineación de texto en una cuadrícula de datos WPF
- 21. jqGrid muestran columna oculta en la vista formulario
- 22. ¿Cómo borrar una cuadrícula de datos ASP.NET?
- 23. WPF - Columna cuadrícula de datos con ancho = "*", pero MinWidth para ajustar el contenido
- 24. jquery oculta errores simples de Javascript
- 25. Diseñando una columna de cuadrícula para los números
- 26. Cómo obtener elementos ordenados desde una cuadrícula de datos
- 27. Agregar una nueva columna con los datos de una unión
- 28. ¿Cómo agrego una columna con botones en una vista de cuadrícula en asp.net?
- 29. cómo ordenar una cuadrícula de datos flexible según múltiples columnas?
- 30. Cambiar texto de una columna de selección autogenerada de una vista de cuadrícula en asp.net - ¿Cómo?
Wow una respuesta correcta sin el uso de JQuery. +1 – epascarello
Las grillas de datos no emiten colgroups. – Randolpho
¡LOL! Sí, y es por eso que estoy usando Javascript para inyectarlos en el DOM. ¡No vote solo porque no entiende! –