我正在使用Ajax文件上传控件来上传文件,但是当我将autopostback
属性设置为true的复选框或单选按钮时,我检查然后FileName
返回值null < / p>
protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
try
{
if (AsyncFileUpload1.IsUploading)
{
AsyncFileUpload1.SaveAs(MapPath("~/Images/Accounts/" + AsyncFileUpload1.FileName));
}
}
catch (Exception ex)
{
}
}
上传后,任何回发控件都会被触发,它只返回null,而viewstate也无效
答案 0 :(得分:1)
使用viewstate是一个服务器控件,使用回发将清除,因此首先将值存储在javascript中,然后按如下方式使用
Java脚本方法:
function OnClientAsyncFileUploadComplete(sender, args) {
__doPostBack('filename', args.get_fileName());
}
function saveLogo(ImageName) {
__doPostBack('filename', args.get_fileName());
}
页面加载中的请输入以下代码:
IN .CS
if (IsPostBack)
{
string eventTarget = this.Request["__EVENTTARGET"];
if (eventTarget == "filename")
{
ViewState["EIName"] = this.Request["__EVENTARGUMENT"].ToString();
}
}
ViewState [“EIName”]包含文件名
您可以使用页面中的任何位置