viernes, 22 de agosto de 2008

Solicitud de confirmación en GridView, DetailsView, FormView, etc.

  • Los controles de acceso a datos que nos proporciona Visual Studio o Visual Web Developper, y la plataforma .NET en general nos facilitan mucho la vida a la hora de mostrar, editar y eliminar registros, así como con la ordenación y la paginación, pudiendo llevar a cabo todas estas tareas sin una sola línea de código (obbiamente, para operaciones sencillas que impliquen una sola tabla).

    Sin embargo, hay un pequeño detalle que personalmente echo en falta, y es que cuando el usuario pulsa el botón de "actualizar" o el de "eliminar", ya no hay vuelta atrás.
    Y es que el usuario está acostumbrado a que cuando va a eliminar algo se le pida confirmación, y esto no ocurre, por defecto, en las funcionalidades de los GridView, DetailsView, FormView y demás controles automatizados de acceso a datos.

    Para solucionarlo, recurriremos a JavaScript, de forma indirecta.

    En la vista de diseño del control, convertimos (si no lo hemos hecho previamente) la columna que contiene el botón que queramos "confirmar" en "TemplateField".
  • A continuación vamos a la plantilla correspondiente y allí encontraremos un "LinkButton", que tendrá en la propiedad "Text" el valor "Eliminar", aquí podemos poner lo que queramos. En la propiedad "CommandName" pondrá Delete, esta no debemos tocarla.
  • En la propiedad "OnClientClick" ponemos: return confirm('¿Seguro que desea eliminar el registro?');
  • Este código se ejecuta en el navegador del cliente, le muestra un popup con el texto que le indicamos y los botones "Aceptar" y "Cancelar". Si el usuario pulsa "Aceptar", se procesa la petición y en caso contrario se cancela.

No hay comentarios: