دالة تحميل مخصصة لـ 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
- النوع: سلسلة
- الوصف: نوع تنسيق ملف الإخراج
- القيم الممكنة:
الأصلي- الاحتفاظ بتنسيق الملف الأصليXLSX- تصدير بتنسيق إكسلPDF- تصدير بصيغة PDFHTML- تصدير بتنسيق HTML
3. saveMode
- النوع: سلسلة
- الوصف: وضع وجهة الحفظ
- القيم الممكنة:
الجهاز- التنزيل إلى الجهاز المحلي (افتراضي)GoogleDrive- الحفظ على Google DriveDropbox- الحفظ على 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)، تأكد من معالجة الوعود بشكل مناسب.
-
امتداد اسم الملف: عندما يكون نوع الإخراج غير “أصلي”، سيتم تعديل امتداد الملف تلقائيًا ليتطابق مع نوع الإخراج (مثل
.xlsx،.pdf،.html). -
السلوك الافتراضي: إذا لم تقم بضبط وظيفة تنزيل مخصصة، فستستخدم GridJs السلوك الافتراضي للتنزيل.