我目前正在使用實體框架,我有一個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中正確顯示。任何幫助將非常感激。謝謝!