0

我正在使用 Ajax 文件上传控件上传文件,它可以正常工作,但是当 ia 复选框或单选按钮的autopostback属性设置为 true 并且我检查然后FileName返回值 null

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 也不起作用

4

1 回答 1

1

使用 viewstate 是一个服务器控件,可以通过使用回发来清除,因此首先将值存储在 javascript 中,然后按如下方式使用它

Java脚本方法:

 function OnClientAsyncFileUploadComplete(sender, args) {
                      __doPostBack('filename', args.get_fileName());

        }

        function saveLogo(ImageName) {
            __doPostBack('filename', args.get_fileName());
        }

在页面加载中,请输入以下代码:

在.CS

           if (IsPostBack)
            {

                string eventTarget = this.Request["__EVENTTARGET"];
                if (eventTarget == "filename")
                {
                    ViewState["EIName"] = this.Request["__EVENTARGUMENT"].ToString();
                }
            }

ViewState["EIName"] 包含文件名

您可以在页面中的任何位置使用

于 2013-07-05T07:21:09.943 回答