关于.net中的AsyncFileUpload控件,一旦选择文件,控件将执行文件上载。我担心的是,一旦我选择了一个文件就可以禁用上传,这样我就可以用提交按钮异步处理上传。
答案 0 :(得分:1)
我知道这已经过时了,但我已经打了一段时间,所以对于可能感兴趣的人。
我的第一个想法是禁用控件下面的文件输入。
我能够禁用控件但不幸的是,它停止了工作。当服务器触发AsyncFileUpload_UploadComplete时,输入被禁用,因此没有要读取的文件。
<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>
我最终在控件顶部放置了一个半透明的png并显示并隐藏它以使控件无法接受。
希望这有帮助。
function disableFileUpload(on) {
if (on) {
$("#file-disabled").show();
} else {
$("#file-disabled").hide();
}
}
答案 1 :(得分:0)
据我所知,AsyncFileUpload
曝光的唯一事件是UploadComplete
事件和UploadError
。没有专门的事件公开手动启动上载的功能。也许JavaScript中的一些技巧可以做到,但我之前没有看到过这样的解决方法。
答案 2 :(得分:0)
简单的答案是否定的。我有类似的asyncupload问题。我的建议是,如果你需要通过按钮控制上传,添加和删除所选文件(稍后你可能会需要这些)并使用一些javascript操作,那就远离他。
搜索SWFUpload,是一个可以轻松与.NET集成的Flash组件。它提供了多个JavaScript选项和事件。 :d
检查以下链接: