Ajax AsyncFileUpload触发服务器代码,但不更新客户端
问题描述:
我在更新面板中有一个asyncfileupload控件。Ajax AsyncFileUpload触发服务器代码,但不更新客户端
在UploadedComplete中,我将文件保存到服务器。
protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
System.Threading.Thread.Sleep(5000);
if (ImageFileUpload.HasFile)
{
Extension= System.IO.Path.GetExtension(ImageFileUpload.FileName);
TempImageUpload(ImageFileUpload.FileName.ToString(), Extension.Value);
FileImage.ImageUrl = "~/Temp/" + Session["ID"].ToString() + Extension.Value;
RemoveImageButton.Visible = true;
}
}
该文件成功上传并激发正确的服务器端代码。
但是不要更新viewstate和控件。
private string Extension
{
get {
if(ViewState["Extension"]==null)
return string.Empty;
else
return (string)ViewState["Extension"]; }
set { ViewState["Extension"] = value; }
}
答
我将文件保存在UploadedComplete事件中。
protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
if (ImageFileUpload.HasFile)
{
ImageFileUpload.SaveAs(Request.PhysicalApplicationPath + "Temp\\" + Session["ID"].ToString() + extension);
}
}
和fot在客户端更改控件,我使用OnClientUploadComplete。
function uploadComplete(sender, args) {
var filename = args.get_fileName();
document.getElementById('<%= Extension.ClientID %>').value = "." + filename.split('.').pop();
var btn = document.getElementById('<%= RemoveImageButton.ClientID %>')
btn.style.visibility = 'visible';
}