Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
El evento Kendo Grid Cancel restaura los botones ocultos

Tengo una cuadrícula de Kendo con botones de fila que escondo dependiendo de los usuarios que acceden a la página: para ciertos usuarios, solo el botón "Editar" será visible, mientras que para otros los botones "Eliminar" y "Agregar" serán visibles. Hago esto con una función que, después de verificar el usuario y sus permisos, oculta los botones como este:

 $("#grid").find(".k-grid-delete").hide(); $("#grid").find(".k-grid-edit").show(); $("#grid").find(".k-grid-add").hide();

Esto funciona bien, pero si un usuario con solo el botón Editar visible hace clic en Editar y luego hace clic en el botón Cancelar, la cuadrícula se restaura a "normal" y todos los botones son visibles. Intenté interceptar el evento "Cancelar" y llamar a la función que oculta los botones allí, pero aparentemente se vuelve a dibujar la cuadrícula DESPUÉS de que finaliza el evento de cancelación. Lo intenté con el enlace de datos, pero el enlace de datos no se genera cuando se cancela la acción. Necesito interceptar un evento que ocurre después de hacer clic en "Cancelar" y antes de que se vuelva a dibujar la cuadrícula.

¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Al final, fue más sencillo construir la barra de herramientas y las opciones de comando con una función que eliminar condicionalmente ciertos botones después de construir la cuadrícula. Es decir, en la función de definición de cuadrícula de kendo:

 var grid = $("#grid").kendoGrid({ dataSource: dataSource, toolbar: setToolbarCreateButton(), columns: [ { field: "COL1" }, { field: "COL2" }, { field: "COL3" }, { command: setCommandRow(), title: " ", width: "250px" } ], (rest of configuration here) });

Y en las funciones setCommandRow() y setToolbarCreateButton() devuelven la definición de los botones dependiendo de las condiciones:

 // Returns an array of objects with the buttons for the command bar IF those buttons are visible function setToolbarCreateButton() { if (checkEditable(false)) return [{ name: "create" }]; else return null; }

y

 // Returns an array of objects with the buttons for the row IF those buttons are visible function setCommandRow() { var cmdRow = []; if (checkEditable(true)) cmdRow.push({ name: "edit" }); if (checkEditable(false)) cmdRow.push({name: "destroy" }); return cmdRow; }

checkEditable() es, por supuesto, el método que determina si los botones de editar o destruir están disponibles o no. De esta manera, en lugar de hacer que los botones sean visibles o invisibles, creo los botones o no según las condiciones.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda