Asp.NetAjaxFileUpload
コントロールを使用して非表示フィールドに非同期的に値を代入しようとしていますが、アクセスすると null 値が返されます。
<Ajax:AjaxFileUpload ID="FileUploadGaurdianPic" runat="server"
ThrobberID="myThrobber" MaximumNumberOfFiles="1"
OnUploadComplete="FileUploadGaurdianPic_UploadComplete" OnClientUploadComplete="uploadComplete" />
コード;
public string GuardianPic
{
get
{
if (ViewState["GuardianPic"] == null)
return "/Resources/Images/generic.jpg";
else
return ViewState["GuardianPic"].ToString();
}
set
{
ViewState["GuardianPic"] = value;
}
}
protected void FileUploadGaurdianPic_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string path = Server.MapPath("~/Resources/Images/temp/");
string name = String.Empty;
string storedPath = String.Empty;
if (Directory.Exists(path))
{
name = Path.GetFileName(e.FileName);
storedPath = path + name;
FileUploadGaurdianPic.SaveAs(storedPath);
GuardianPic = "/Resources/Images/temp/"+name; // assigning the value here
}
}
しかし、アクセスしようとすると:
string ur = GuardianPic;
アップロード完了イベントで割り当てている値ではなく、プロパティのデフォルト値を取得します。