Пользовательская функция скачивания для GridJs
Как реализовать пользовательскую функцию скачивания для GridJs
GridJs предоставляет гибкий механизм скачивания, который позволяет настроить поведение загрузки файла. Вы можете задать функцию скачивания для обработки загрузки файла в соответствии с вашими требованиями.
Установка пользовательской функции скачивания
GridJs предоставляет метод setFileDownloadCallFunction для установки пользовательской функции скачивания. Когда пользователь нажимает кнопку скачивания, эта функция вызывается с определёнными параметрами.
Основное использование
// 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);
Параметры функции
Пользовательская функция скачивания принимает три параметра:
1. toFileName
- Тип: Строка
- Описание: Имя файла для загрузки
- Пример:
"myfile.xlsx","report.pdf"
2. outputType
- Тип: Строка
- Описание: Тип формата выходного файла
- Возможные значения:
Original- Оставить исходный формат файлаXLSX- Экспортировать в формате ExcelPDF- Экспортировать в формате PDFHTML- Экспортировать в формате HTML
3. saveMode
- Тип: Строка
- Описание: Режим назначения сохранения
- Возможные значения:
Device- Загрузить на устройство (по умолчанию)GoogleDrive- Сохранить в Google ДискDropbox- Сохранить в Dropbox
Сценарии загрузки
GridJs поддерживает несколько сценариев загрузки на основе различных действий пользователя:
1. Загрузка в разных форматах
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. Сохранение в облачное хранилище
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);
Замечания
-
Регистрация функции: Убедитесь, что вызвали
setFileDownloadCallFunctionдо того, как пользователь начнет взаимодействовать с функцией загрузки. -
Обработка ошибок: Всегда реализуйте правильную обработку ошибок в вашей пользовательской функции загрузки, чтобы предоставлять обратную связь пользователям.
-
Асинхронные операции: Если логика загрузки включает асинхронные операции (например, вызовы API), убедитесь, что промисы обрабатываются правильно.
-
Расширение имени файла: Когда тип вывода не “Original”, расширение файла автоматически подстроится под тип вывода (например,
.xlsx,.pdf,.html). -
Поведение по умолчанию: Если вы не установите пользовательскую функцию загрузки, GridJs будет использовать свое стандартное поведение загрузки.