2011-09-13 8 views
1

私はユーザー情報(名前、電子メール、画像)で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

私は答えを知っている、私は宣言的なデータソースを使用しましたが、とにかく動作しませんでした..問題は、私はDataKeyNames .. – RaShe

関連する問題