DetailsView图像更新问题

时间:2011-09-13 03:21:25

标签: asp.net image file-upload detailsview findcontrol

我有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。而且该代码不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:1)

OldValues集合仅在DetailView与声明DataSource绑定时才可用,否则OldValues集合将在null事件中包含ItemUpadting

你可以做的是在DVUserInfoShow_ItemUpdating事件中,从数据库中获取当前数据并保存在一些局部变量中。