2011-09-13 4 views
1

Info (이름, 전자 메일, 그림) 사용자가있는 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 ​​[ "아바타"] = e.OldValues ​​[ "아바타"]로이고;, 사용자가 자신의 이름과 전자 메일을 업데이트하면 그림 값이 null로 설정됩니다. 그리고 그 코드는 작동하지 않습니다. 내가 뭘 잘못하고있어?

답변

1

OldValues 컬렉션, 그렇지 않으면 OldValues 컬렉션 ItemUpadting 이벤트에 null을 포함, DetailView가 선언 DataSource와 경계되는 경우에만 사용할 수 있습니다.

DVUserInfoShow_ItemUpdating 이벤트는 데이터베이스에서 현재 데이터를 가져 와서 일부 로컬 변수에 저장합니다.

+0

thx, 내가 해보겠습니다.) – RaShe

+0

이제 대답을 알았습니다. 선언 된 DataSource를 사용했으나 어쨌든 작동하지 않았습니다. 문제는 DataKeyNames를 설정하지 않았다는 것입니다. – RaShe

관련 문제