开发者

AsyncFileUpload control

Regarding the AsyncFileUpload control in .net, the control will execute the file upload once i select a file. In my concern is, is it possi开发者_运维知识库ble to disable the upload once i select a file so that i could process the upload asynchronously with a submit button.


I know this is old, but I beat my head on this for a while, so for whoever might be interested.

My first thought was to disable the file input underneath the control.

I was able to disable the control but unfortunately, it stopped working. When the server fired AsyncFileUpload_UploadComplete the input was diabled so there wasn't a file to read.

<script>
function disableFileUpload(on) {
    if (on) {
        $('#ajax-file-input input:file').attr('disabled', true);
    } else {
        $(#ajax-file-input 'input:file').attr('disabled', false);
    }
}
function AsyncFileUpload_CheckExtension(sender, args) {
    disableFileUpload(true);
    return true;
}
function AsyncFileUpload_OnClientUploadComplete(sender, args) {
    disableFileUpload(false);
    var data = eval('(' + args.d + ')');
    for (var key in data) {
        var obj = data[key];
        for (var prop in obj) {
            console.log(prop + " = " + obj[prop]);
        }
    }
    doThingsWith(data);
}
</script>
<div id="ajax-file-input">
<ajaxToolkit:AsyncFileUpload ID="AsyncFileUpload1" 
                    OnUploadedComplete="AsyncFileUpload_UploadComplete"
                    OnClientUploadStarted="AsyncFileUpload_CheckExtension" 
                    OnClientUploadComplete="AsyncFileUpload_OnClientUploadComplete" 
                    runat="server" />
</div>

I ended up positioning a semi-transparent png on top of the control and showing and hiding it to make the control innaccesible.

Hope this helps.

function disableFileUpload(on) {
    if (on) {
        $("#file-disabled").show();
    } else {
        $("#file-disabled").hide();
    }
}


Simple answer is No. I've had similar asyncupload issues just like those ones. My advice is to stay away from him if you need to control upload with a button, add and remove selected files (you will probably need this later on) and use some javascript manipulation.

Search for the SWFUpload, is a flash component that can be integrated with .NET with ease. It offers multiple javascript options and events. :D

Check the following links:

Official site

Demonstration


As far as I know that the only event exposed by AsyncFileUpload is the UploadComplete event and UploadError. There aren't events specifically that expose functionality to manually initiate the upload. Perhaps some trick in JavaScript could do it but I have not seen such a workaround before.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜