Search code examples
kendo-uikendo-upload

Triggering OnCancel event of kendo upload on click of button


enter image description here

I want to Cancel the file uploading on click of cancel button.

means I want to trigger the onCancel(e) event on click of my cancel button

My code is,

 @(Html.Kendo().Upload()
  .Name("files")
   .Multiple(false)
   .Async(a => a
    .Save("UploadArtifactFile", "PP", new { TeacherEvalID = ViewBag.TeacherEvalID, ObservationID = ViewBag.ObservationID, Accountid = ViewBag.AccountID })
    .AutoUpload(false)
    .RemoveField("")
     )
    .Events(events => events
    .Success("onSuccess")
    .Select("onSelect")
    .Error("onUploadError")
    .Upload("onUpload")
     .Cancel("onCancel")
     .Remove("onRemove")
      )

   On cancel event is work as expected,  

function onCancel(e) {
        //Array with information about the uploaded files
        var files = e.files;
        e.preventDefault();
    }

I want to do the same thing for Cancel Button and on click of cancel button i have write code as,

function setNewArtifact() {
        var upload = $("#files").data("kendoUpload");
        //detach events and prepare for safe removal
        //upload.destroy();

        $(".k-upload-files.k-reset").find("li").remove();
        $('#lblArtifactFileName').val("");
        $('#lblArtifactFileName').hide();
        //hdnArtifactUploadIsAddOrEdit :1 for new artifact (Add)
        $('#hdnArtifactUploadIsAddOrEdit').val("1");
        $('#txtArtifactDescription').val("");
        $('#lblArtifactFileName').hide();
        $('#btnModifyArtifact').css("display", "none");
        $('.k-upload-selected').css("display", "none");

        //on click of cancel hide the uploading and uploaded status
        $(".k-dropzone").find("strong").css("display","none");
        $(".k-upload-status.k-upload-status-total").find("span").css("display","none");

        $.extend(upload.options.localization, {
            headerStatusUploading: "",
            headerStatusUploaded: ""
        });

    }

There is any way to do this?

Please help...


Solution

  • You can trigger upload cancel event:

    $(document).ready(function() {
      $("#files").kendoUpload({
        async: {
          saveUrl: "save",
          removeUrl: "remove",
          autoUpload: true
        },
        cancel: function(e) {
          alert("cancel");
        }
      });
    
      $("#button").click(function(e) {
        $("#files").data("kendoUpload").trigger("cancel");	
      });
    });
    <input name="files" id="files" type="file" />
    <button id="button">Cancel</button>