剑道 UI - 如何引用控件

Kendo UI - how do I reference a control?

本文关键字:引用 控件 何引用 UI 剑道      更新时间:2023-09-26

假设我实例化了一个剑道控件:

$("#files").kendoUpload({ 
 ...
})

然后,如何在 JavaScript 中获取对该控件的引用?

您有两种方法可以执行此操作。

  1. 使用 getKendo* 方法:

    var myUpload = $("#files"(.getKendoUpload((;

  2. 使用数据方法:

    var myUpload = $("#files"(.data("kendoUpload"(;

官方文档:http://docs.telerik.com/kendo-ui/intro/widget-basics/events-and-methods

检索小部件实例

要获取对小部件实例的引用,请使用 jQuery data 方法并将插件名称作为字符串传递,如下所示:

// Create the widget
$("#files").kendoUpload({ 
 ...
})
// retrieve the widget instance
var kendoUpload = $("#files").data("kendoUpload");

您可以在官方文档中找到有关此内容的更多信息。

<小时 />

小组件事件

此外,您还可以添加一大堆特定于 Kendo 的事件处理程序来处理由您的小部件触发的事件:

function getFileInfo(e) {
    return $.map(e.files, function(file) {
        var info = file.name;
        // File size is not available in all browsers
        if (file.size > 0) {
            info  += " (" + Math.ceil(file.size / 1024) + " KB)";
        }
        return info;
    }).join(", ");
}
$("#files").kendoUpload({
    async: {
        saveUrl: "save",
        removeUrl: "remove",
        autoUpload: true
    },
    cancel: function(e) {
        kendoConsole.log("Cancel :: " + getFileInfo(e));
    },
    complete: function onComplete(e) {
        kendoConsole.log("Complete");
    },
    error: function(e) {
        kendoConsole.log("Error (" + e.operation + ") :: " + getFileInfo(e));
    },
    progress: function(e) {
        kendoConsole.log("Upload progress :: " + e.percentComplete + "% :: " + getFileInfo(e));
    },
    remove: function(e) {
        kendoConsole.log("Remove :: " + getFileInfo(e));
    },
    select: function(e) {
        kendoConsole.log("Select :: " + getFileInfo(e));
    },
    success: function(e) {
        kendoConsole.log("Success (" + e.operation + ") :: " + getFileInfo(e));
    },
    upload: function(e) {
        kendoConsole.log("Upload :: " + getFileInfo(e));
    }
});

您可以在官方文档中找到一个完整的工作演示。

我现在这样做是为了获取上传控件的文件数组:

var logoUploader = $('#files').data('kendoUpload');
var files = logoUploader.options.files;