我目前正在使用实体框架,我有一个GridView显示数据库中的记录列表。我有一个删除按钮,使用删除命令。每个记录都在与之关联的服务器上有一个文件,所以当数据源引发删除事件时,我想抓取文件名并从服务器中删除文件。奇怪的是,在我的ds_Deleting事件中,实体中的一些值为空。我似乎无法弄清楚为什么。entitydatasource删除事件引发时在实体中的空值
我在GridView中删除按钮的代码如下:
<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));
}
每次contract.FileName值为null即使它在GridView中正确显示。任何帮助将非常感激。谢谢!