一旦选中,AjaxFileUpload会自动上传文件

时间:2013-03-28 09:27:30

标签: asp.net ajaxcontroltoolkit

我有一个标准的AjaxFileUpload控件

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

而不是他们必须按上传,我只是希望文件一旦选择文件就自动上传。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

将此脚本的引用添加到Scripts ToolkitScriptManager控件的var legacyAddToQueue = Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue; Sys.Extended.UI.AjaxFileUpload.prototype._addToQueue = function(element){ legacyAddToQueue.apply(this, [element]); this._doUpload(); } 集合中,或者只是将其放在页面底部:

UploadAutomatically

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

另外,在我看来,应该更好地调整ACT源并向此控件添加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(); } }; } 之类的新属性。如果您更喜欢此选项并需要有关如何向这些员工提供的其他详细信息,请与我们联系

更新:尝试此脚本用于新的AjaxFileUpload(必须适用于新旧版本但尚未测试)

{{1}}

答案 1 :(得分:3)

这适用于最新的控制工具包

<asp:AjaxFileUpload onchange="$('.ajax__fileupload_uploadbutton').trigger('click');" runat="server" />

答案 2 :(得分:0)

你是对的。只需用

替换它
$(".ajax__fileupload").bind("change", function () { setTimeout(function () { $('.ajax__fileupload_uploadbutton').trigger('click'); }, 100); });
$(".ajax__fileupload_dropzone").bind("drop", function () { setTimeout(function () { $('.ajax__fileupload_uploadbutton').trigger('click'); }, 100); });