我目前正在使用实体框架,并且有一个 Gridview 显示数据库中的记录列表。我有一个使用删除命令的删除按钮。每条记录在服务器上都有一个与之关联的文件,因此当数据源引发删除事件时,我想获取文件名并从服务器中删除文件。奇怪的是,在我的 ds_Deleting 事件中,实体中的一些值是空的。我似乎无法弄清楚为什么。
我在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 中正确显示。任何帮助将非常感激。谢谢!