DetailsView проблема обновления изображения - PullRequest
1 голос
/ 13 сентября 2011

У меня есть DetailsView с информацией о пользователе (имя, электронная почта, изображение). Этот элемент управления DetailsView можно редактировать. Значения взяты из базы данных

 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 ​​["Аватар"]; , когда пользователь обновляет свое имя и адрес электронной почты, значение изображения устанавливается в ноль. И этот код не работает. Что я делаю не так?

1 Ответ

1 голос
/ 13 сентября 2011

OldValues коллекция доступна только тогда, когда DetailView ограничен декларативным DataSource, в противном случае OldValues коллекция будет содержать null в ItemUpadting событии.

Что вы можете сделать, этовнутри DVUserInfoShow_ItemUpdating события, получить текущие данные из базы данных и сохранить в некоторых локальных переменных.

...