私は現在EntityFrameworkを使用しており、データベースのレコードのリストを表示するGridviewがあります。[削除]コマンドを使用する[削除]ボタンがあります。各レコードにはサーバー上に関連付けられたファイルがあるため、データソースが削除イベントを発生させたときに、ファイル名を取得してサーバーからもファイルを削除します。奇妙なことに、私のds_Deletingイベントでは、エンティティの値の一部がnullになっています。理由がわからないようです。
グリッドビューの[削除]ボタンのコードは次のとおりです。
<asp:TemplateField HeaderText="Remove">
<ItemTemplate>
<asp:Button ID="btnRemove" runat="server" Text="Remove" CssClass="button_default" CommandName="Delete" OnClientClick="return confirm('Deleting this contract will also delete the file from the server. Continue?')" />
</ItemTemplate>
</asp:TemplateField>
コードビハインドのOnDeletingイベントは次のようになります。
protected void dsContracts_Deleting(object sender, EntityDataSourceChangingEventArgs e)
{
ipiModel.Contract contract = (ipiModel.Contract)e.Entity;
File.Delete(Path.Combine(ConfigurationManager.AppSettings["ContractUploadPath"], contract.FileName));
}
GridViewに正しく表示されていても、contract.FileNameの値がnullになるたび。どんな助けでも大歓迎です。ありがとう!