Función de Descarga Personalizada para GridJs

Cómo implementar una función de descarga personalizada para GridJs

GridJs proporciona un mecanismo de descarga flexible que te permite personalizar el comportamiento de la descarga del archivo. Puedes configurar una función de descarga personalizada para gestionar las descargas de archivos según tus requisitos.

Configurar función de descarga personalizada

GridJs proporciona el método setFileDownloadCallFunction para establecer una función de descarga personalizada. Cuando los usuarios hacen clic en el botón de descarga, esta función será llamada con parámetros específicos.

Uso básico

// Define your custom download function
function customDownloadHandler(toFileName, outputType, saveMode) {
    console.log('File Name:', toFileName);
    console.log('Output Type:', outputType);
    console.log('Save Mode:', saveMode);

    // Implement your custom download logic here
    // For example: upload to cloud storage, save to custom location, etc.
}

// Set the custom download function
xs.setFileDownloadCallFunction(customDownloadHandler);

Parámetros de la función

La función de descarga personalizada recibe tres parámetros:

1. toFileName

  • Tipo: Cadena de texto
  • Descripción: El nombre del archivo a descargar
  • Ejemplo: "miarchivo.xlsx", "informe.pdf"

2. outputType

  • Tipo: Cadena de texto
  • Descripción: El tipo de formato del archivo de salida
  • Valores posibles:
    • Original - Mantener el formato original del archivo
    • XLSX - Exportar en formato Excel
    • PDF - Exportar en formato PDF
    • HTML - Exportar en formato HTML

3. saveMode

  • Tipo: Cadena de texto
  • Descripción: El modo de destino de guardado
  • Valores posibles:
    • Dispositivo - Descargar en el dispositivo local (predeterminado)
    • GoogleDrive - Guardar en Google Drive
    • Dropbox - Guardar en Dropbox

Escenarios de descarga

GridJs admite múltiples escenarios de descarga basados en diferentes acciones del usuario:

1. Descargar en diferentes formatos

function customDownloadHandler(toFileName, outputType, saveMode) {
    switch(outputType) {
        case 'Original':
            // Handle original format download
            downloadAsOriginal(toFileName);
            break;
        case 'XLSX':
            // Handle Excel format download
            downloadAsExcel(toFileName);
            break;
        case 'PDF':
            // Handle PDF format download
            downloadAsPDF(toFileName);
            break;
        case 'HTML':
            // Handle HTML format download
            downloadAsHTML(toFileName);
            break;
    }
}

xs.setFileDownloadCallFunction(customDownloadHandler);

2. Guardar en la nube

function customDownloadHandler(toFileName, outputType, saveMode) {
    if (saveMode === 'GoogleDrive') {
        // Implement Google Drive upload logic
        uploadToGoogleDrive(toFileName, outputType);
    } else if (saveMode === 'Dropbox') {
        // Implement Dropbox upload logic
        uploadToDropbox(toFileName, outputType);
    } else {
        // Default: download to device
        downloadToDevice(toFileName, outputType);
    }
}

xs.setFileDownloadCallFunction(customDownloadHandler);

Notas

  1. Registro de funciones: Asegúrate de llamar a setFileDownloadCallFunction antes de que los usuarios interactúen con la funcionalidad de descarga.

  2. Manejo de errores: Siempre implementa un manejo adecuado de errores en tu función de descarga personalizada para proporcionar retroalimentación a los usuarios.

  3. Operaciones asíncronas: Si tu lógica de descarga implica operaciones asíncronas (como llamadas a API), asegúrate de manejar las promesas correctamente.

  4. Extensión del nombre del archivo: Cuando el tipo de salida no sea “Original”, la extensión del archivo se ajustará automáticamente para coincidir con el tipo de salida (por ejemplo, .xlsx, .pdf, .html).

  5. Comportamiento predeterminado: Si no estableces una función de descarga personalizada, GridJs usará su comportamiento de descarga predeterminado.

Ver También