我有一个标准的AjaxFileUpload控件

<asp:AjaxFileUpload ID="upManager" CssClass="fileUpload" runat="server" OnUploadComplete="upManager_UploadComplete" />

而且,他们只需要在选择文件后自动上传文件,而不必再按“上传”按钮。有没有办法做到这一点?

最佳答案

将此脚本的引用添加到Scripts控件的ToolkitScriptManager集合中,或将其放在页面的最底部:

var legacyAddToQueue = Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue;
Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue = function(element){
    legacyAddToQueue.apply(this, [element]);
    this._doUpload();
}

在此页面上的控制台运行良好:AjaxFileUpload Demonstration

另外,我认为最好是调整ACT源并将新属性(如UploadAutomatically)添加到此控件中。让我知道您是否愿意使用此选项,并且需要有关如何招募此类员工的更多详细信息

更新:针对新的AjaxFileUpload尝试使用此脚本(必须适用于新版本和旧版本,但尚未经过测试)
if (Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue) {
    var legacyAddToQueue = Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue;
    Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue = function (element) {
        legacyAddToQueue.apply(this, [element]);
        this._doUpload();
    };
}else if(Sys.Extended.UI.AjaxFileUpload.Control){
    var legacyaddFileToQueue = Sys.Extended.UI.AjaxFileUpload.Control.prototype.addFileToQueue;
    Sys.Extended.UI.AjaxFileUpload.Control.prototype.addFileToQueue = function(fileItem){
        if(legacyaddFileToQueue.apply(this, [fileItem])){
            this._isUploading = true;
            this.enableControls(this._isUploading);
            this._processor.startUpload();
        }
    };
}

关于asp.net - asp.net-选择后,AjaxFileUpload自动上传文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15678211/

10-12 00:56