Cuando hago clic en la casilla de verificación para seleccionar/deseleccionar todas las filas de mi tabla, la función headerClick
no se activa (se activará para todo lo que esté en el encabezado excepto la casilla de verificación). Esta es mi columna configurada para ella y me pregunto si esto es un error o si hay otra forma de activar mi función de obtener todas las filas seleccionadas cuando hago clic en la casilla de verificación Seleccionar todo. ¡Gracias!
columns: [ { formatter: "rowSelection", titleFormatter: "rowSelection", hozAlign: "center", headerSort: false, visible: true, width: 40, headerClick: (e, column) => { console.log(e); let table = column.getTable(); this.selectedRows = table.getSelectedRows(); this.rowCount = this.selectedRows.length; } },
no diría que es un "error", pero parece que tiene una solicitud de función, definitivamente. El código para `rowSelection tiene:
checkbox.addEventListener("click", function (e) { e.stopPropagation(); });
así que al hacer clic, no permite que nadie más lo sepa con stopPropagation()
. Y no veo ningún código para getHeaderCheckbox() para que pueda agregar su propio controlador de clics.
Así que iría a GitHub y presentaría una solicitud de función para poder agregar sus propios controladores a este elemento. ¿A menos que ya lo haya hecho en 5.0? aun no lo he mirado...
Mientras tanto, podría hacer su propia versión de esto y no usar el formateador de selección de rowSelection
, o podría hacer un montón de trabajo con getChildElements()
para controlar el elemento DOM real e insertar su propio controlador (eso sería ser ÚLTIMO recurso en mi humilde opinión)
Si ABSOLUTAMENTE debe tenerlo AHORA (¡y NO le recomendaría en absoluto que lo haga!):
Dale a tu columna un field
(di "selector", por ejemplo) para facilitar el acceso y después de tu "nuevo Tabulador()"...
table.getColumn("selector")._column.titleElement.firstChild.addEventListener("click", function (e) { console.log(e); e.stopPropagation(); });
Yo no dije esto, nunca estuve aquí....
El problema es que está tratando de agregar una funcionalidad que no es necesaria. El formateador de selección de fila cuando se usa en la opción rowSelection
titleFormatter
automáticamente la funcionalidad de seleccionar/deseleccionar todas, no hay necesidad de escuchar ningún evento de clic usted mismo. lo hará todo por ti.
Al agregar el controlador headerClick
adicional, está negando inmediatamente la selección, al alternar las cosas por segunda vez