Tested below code in a vanilla Blazor Server app (Radzen 4.11.1/2) and found Complete is not always invoked. OnComplete hits when Canceled is true and uploaded file is large enough.
@page "/"
<RadzenUpload Multiple="false" Accept="application/pdf" Url="upload/single" Icon="upload" Progress=@OnProgress Complete=@OnComplete Error=@OnError Change=@OnChange />
<RadzenButton Text="Cancel" Click=@OnCancelUpload class="d-block mt-4" Visible=@_showProgress />
<RadzenProgressBar Value=@_progress class="mt-4" Visible=@_showProgress Max="100" />
<RadzenLabel Visible=@_showComplete class="mt-4" Text=@_message />
@code {
int _progress = 0;
bool _showProgress = false;
bool _showComplete = false;
bool _cancelUpload = false;
string _message = string.Empty;
void OnProgress(UploadProgressArgs args)
{
_showProgress = true;
_showComplete = false;
_progress = args.Progress;
//_message = args.Files.First().Name;
// cancel upload
args.Cancel = _cancelUpload;
// reset cancel flag
_cancelUpload = false;
}
void OnComplete(UploadCompleteEventArgs args)
{
if (args.Cancelled)
_message = "Cancelled";
else
_message = "Uploaded";
_showProgress = false;
_showComplete = true;
// TODO: parse uploaded file
}
void OnCancelUpload()
{
_cancelUpload = true;
}
void OnChange()
{
_message = "Changed";
}
void OnError()
{
_message = "Error";
}
}