[ Foro de C# ]
En un DataGridView estoy mostrando todos los archivos de un directorio y agregándole un Column button quiero que se descarguen los archivos pero solamente de la fila de la cual se esta presionando el botón
Para descargar un archivo desde un DataGridView en C#, necesitas agregar un controlador de eventos Click al botón en la columna Button de la fila correspondiente. Dentro del controlador de eventos, puedes obtener la información de la fila actual y el nombre del archivo a través de las propiedades de la celda correspondiente. A continuación, puedes utilizar la clase File de C# para descargar el archivo.
Aquí hay un ejemplo de cómo podrías hacerlo:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
// Verificar si el botón fue presionado en la columna Button
if (e.ColumnIndex == dataGridView1.Columns["Button"].Index && e.RowIndex >= 0)
{
// Obtener el nombre del archivo de la celda correspondiente
string fileName = dataGridView1.Rows[e.RowIndex].Cells["FileName"].Value.ToString();
// Descargar el archivo
string filePath = @"C:\directorio\" + fileName; // Reemplaza con la ruta correcta
if (File.Exists(filePath))
{
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile(filePath);
Response.End();
}
}
}
Este código asume que estás utilizando ASP.NET y que el DataGridView se encuentra en una página web. Si estás utilizando otro tipo de aplicación de C#, como una aplicación de escritorio, el código puede diferir ligeramente. En ese caso, probablemente necesitarás reemplazar el código de descarga del archivo con otra solución para descargar el archivo a la ubicación deseada.