Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda