AjaxFileUpload автоматически загружать файл После выбора
У меня есть стандартный элемент управления AjaxFileUpload
<asp:AjaxFileUpload ID="upManager" CssClass="fileUpload" runat="server" OnUploadComplete="upManager_UploadComplete" />
и вместо того, чтобы нажимать Upload, я просто хочу, чтобы файл загружался автоматически после выбора файла. Есть ли способ сделать это?
3 ответов
добавить ссылку на этот скрипт 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 Демонстрация
кроме того, на мой взгляд, лучше настроить источники 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();
}
};
}
это работает в новейшем Control toolkit
<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); });