標準の 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 デモンストレーション
また、私の意見では、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();
}
};
}
あなたが正しい。と置き換えるだけです
$(".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); });