I have an Kendo upload control set to upload multiple files. The files upload as expected. The problem that I am facing is that I have to update a grid based on the files that were just uploaded. The problem is that the success handler is only fired once upon completion of the uploads. These are handled quickly as they are asynchronous. So, basically when the the success handler is reached I call mygrid.dataSource.read(). This results in the datasource reading only the first record from the server since the others are not finished processing. There is no easy way to sort this problem out. The complete handler is fired immediately after the success handler so that doesn't help either. Seems like a bug to me but let me know if I am wrong. The success handler should fire once for each file and the complete handler should be fired only after all the files are uploaded successfully or not(am I wrong?).
6 Answers, 1 is accepted
0
Hi Jaime,
Indeed the success event is fired once for each file and the complete event is fired after all files are uploaded. This behavior could be observed in our events demo.
If the problem is still persisting, please send me a small runnable isolated example, which demonstrates the issue, so I could assist you further.
I am looking forward to hearing from you.
Regards,
Dimiter Madjarov
Telerik
Indeed the success event is fired once for each file and the complete event is fired after all files are uploaded. This behavior could be observed in our events demo.
If the problem is still persisting, please send me a small runnable isolated example, which demonstrates the issue, so I could assist you further.
I am looking forward to hearing from you.
Regards,
Dimiter Madjarov
Telerik
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0

Massimo
Top achievements
Rank 1
answered on 18 Jun 2019, 04:25 PM
Hello Dimiter, the event Complete is fired every file when chunk upload is enabled.
Are there other ways to know when all files has been uploaded?
0
Hello Massimo,
I have prepared a Dojo example which demonstrates a possible workaround. In the complete event, you can get the count of the items that are in the upload file list. You can also get the items which have already been uploaded (or have failed uploading):
You can then compare if their count is equal. If it is, then all the files are loaded.
Don't hesitate to ask if you have questions regarding the suggested approach.
Regards,
Martin
Progress Telerik
I have prepared a Dojo example which demonstrates a possible workaround. In the complete event, you can get the count of the items that are in the upload file list. You can also get the items which have already been uploaded (or have failed uploading):
complete:
function
(e){
var
items = e.sender.wrapper.find(
'.k-file'
).length;
var
uploadedItems = e.sender.wrapper.find(
'.k-file-success, .k-file-invalid'
).length;
You can then compare if their count is equal. If it is, then all the files are loaded.
Don't hesitate to ask if you have questions regarding the suggested approach.
Regards,
Martin
Progress Telerik
Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
0

Massimo
Top achievements
Rank 1
answered on 20 Jun 2019, 02:47 PM
Thank you for your help
0

Joon-Sae
Top achievements
Rank 1
answered on 07 Apr 2020, 10:59 PM
In the sample, if you use it exactly as copied, success is called after each success, however if you don't use the progress event the success is only called once at the end. If this is working as intended, this is confusing.
0

Joon-Sae
Top achievements
Rank 1
answered on 07 Apr 2020, 11:41 PM
Ignore my post, my debugger was collapsing the same success messages in the console :$