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 archivoXLSX- Exportar en formato ExcelPDF- Exportar en formato PDFHTML- 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 DriveDropbox- 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
-
Registro de funciones: Asegúrate de llamar a
setFileDownloadCallFunctionantes de que los usuarios interactúen con la funcionalidad de descarga. -
Manejo de errores: Siempre implementa un manejo adecuado de errores en tu función de descarga personalizada para proporcionar retroalimentación a los usuarios.
-
Operaciones asíncronas: Si tu lógica de descarga implica operaciones asíncronas (como llamadas a API), asegúrate de manejar las promesas correctamente.
-
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). -
Comportamiento predeterminado: Si no estableces una función de descarga personalizada, GridJs usará su comportamiento de descarga predeterminado.