Asp.net DetailsView图像更新问题
我有用户信息(姓名、电子邮件、图片)的详细视图。可以编辑DetailsView控件。 值来自数据库Asp.net DetailsView图像更新问题,asp.net,image,file-upload,detailsview,findcontrol,Asp.net,Image,File Upload,Detailsview,Findcontrol,我有用户信息(姓名、电子邮件、图片)的详细视图。可以编辑DetailsView控件。 值来自数据库 protected void DVUserInfoShow_ItemUpdating(object sender, DetailsViewUpdateEventArgs e) { FileUpload EditAvatar = (FileUpload)DVUserInfoShow.FindControl("EditAvatar"); if (EditAvatar.HasFil
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”],当用户更新其姓名和电子邮件时,图片值设置为空。而那个代码不起作用。我做错了什么?
OldValues
集合仅在DetailView
与声明性DataSource
绑定时可用,否则OldValues
集合将在ItemUpadting
事件中包含null
您可以做的是在
DVUserInfoShow\u ItemUpdating
事件中,从数据库获取当前数据并保存在一些局部变量中。OldValues
集合仅在DetailView
与声明性数据源绑定时可用,否则,OldValues
集合将在ItemUpadting
事件中包含null
您可以做的是在DVUserInfoShow\u itemUpdate
事件中,从数据库获取当前数据并保存在一些局部变量中。现在我知道了答案,我使用了声明性数据源,但它无论如何都不起作用。。问题是我没有设置DataKeyName..现在我知道答案了,我使用了声明性DataSource,但它无论如何都不起作用。。问题是我没有设置DataKeyName。。