我有一个标准的 AjaxFileUpload 控件
<asp:AjaxFileUpload ID="upManager" CssClass="fileUpload" runat="server" OnUploadComplete="upManager_UploadComplete" />
而不是他们必须按上传,我只希望文件在他们选择文件后自动上传。有没有办法做到这一点?
我有一个标准的 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:AjaxFileUpload onchange="$('.ajax__fileupload_uploadbutton').trigger('click');" runat="server" />
你是对的。只需将其替换为
$(".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); });