我有DetailsView与用户信息(名称,电子邮件,图片)。可以编辑DetailsView控件。 值来自DataBase
protected void DVUserInfoShow_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
FileUpload EditAvatar = (FileUpload)DVUserInfoShow.FindControl("EditAvatar");
if (EditAvatar.HasFile)
{
string image_path = "~/images/user_images/" + EditAvatar.FileName;
EditAvatar.SaveAs(Server.MapPath(image_path));
e.NewValues["Avatar"] = EditAvatar.FileName;
}
else
{
e.NewValues["Avatar"] = e.OldValues["Avatar"];
}
}
问题在于 e.NewValues [“Avatar”] = e.OldValues [“Avatar”]; ,当用户更新其姓名和电子邮件时,图片值设置为null。而且该代码不起作用。我做错了什么?
答案 0 :(得分:1)
OldValues
集合仅在DetailView
与声明DataSource
绑定时才可用,否则OldValues
集合将在null
事件中包含ItemUpadting
你可以做的是在DVUserInfoShow_ItemUpdating
事件中,从数据库中获取当前数据并保存在一些局部变量中。