我有一个AsyncFileUpload和一个列出上传文件的Repeater。当我选择一个文件时,它曾尝试上传两次。我有一个重复的文件检查.cs文件,所以它始终显示"文件已经存在"错误信息。我搜索了一个答案,似乎共识是使用AsyncFileUpload的IsUploading并且如果条件为true则返回而不执行另一个__doPostBack(" ...")。
当我在这个JS函数中设置断点时,我得到IsUploading(或isUploading)是未定义的,因此它不会返回,因为它应该仍然上传两次。
我尝试删除" ClientIDMode =' Auto'"但它没有帮助。
<ajaxToolkit:AsyncFileUpload
runat="server"
ClientIDMode="AutoID"
ID="fuDocument"
Width="380"
UploadingBackColor="#CCFFFF"
ThrobberID="myThrobber"
UploaderStyle="Modern"
OnClientUploadStarted="onClientUploadStart"
OnClientUploadComplete="onClientUploadComplete"
OnClientUploadError="onClientUploadError"
onuploadedcomplete="fuDocument_UploadedComplete" />
<span id="spnUploadInfo"></span>
function onClientUploadStart(sender, e) {
var spnUploadInfo = document.getElementById('spnUploadInfo');
spnUploadInfo.innerHTML = 'Please wait while uploading ' + e._fileName;
}
function onClientUploadError(sender, e) {
var spnUploadInfo = document.getElementById('spnUploadInfo');
spnUploadInfo.className = "Error";
spnUploadInfo.innerHTML = 'An error occurred during uploading. "' + e.get_errorMessage();
}
function onClientUploadComplete(sender, e) {debugger
var fu = $get("<%=fuDocument.ClientID%>")
if (fu.isUploading) return;
// Also tried "if (fuDocument.IsUploading)" with ClientIDMode set to Auto
var spnUploadInfo = document.getElementById('spnUploadInfo');
spnUploadInfo.innerHTML = "...";
__doPostBack('upnlAtt', '');
}