6

標準の AjaxFileUpload コントロールがあります

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

そして、アップロードを押す必要はなく、ファイルを選択したら自動的にファイルをアップロードしたいだけです。これを行う方法はありますか?

4

3 に答える 3

5

このスクリプトへの参照をコントロール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();
        }
    };
}
于 2013-03-28T09:47:28.363 に答える
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); });
于 2013-05-30T12:53:33.707 に答える