ПОМОЩЬ! Можно ли использовать метод LinkButton или Gridview_RowDeleting для одновременного удаления файла из базы данных и из папки? Ниже мой код, используя LinkButton:Одновременное удаление файла из базы данных и папки с использованием метода LinkButton или Gridview_RowDeleting
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID = "lnkDelete" Text = "Delete" OnClientClick="return confirm('Are you sure you want to delete this record?');" CommandArgument = '<%# DataBinder.Eval(Container.DataItem,"ID") %>' runat = "server" OnClick = "DeleteFile" />
</ItemTemplate>
</asp:TemplateField>
Код За:
protected void grdProducts_RowEditing(object sender, GridViewEditEventArgs e)
{
//Get seleted row
GridViewRow row = grdProducts.Rows[e.NewEditIndex];
//Get Id of selected product
int rowId = Convert.ToInt32(row.Cells[1].Text);
//Redirect user to Manage Products along with the selected rowId
Response.Redirect("~/Pages/Management/ManageProducts.aspx?id=" + rowId);
}
protected void DeleteFile(object sender, EventArgs e)
{
string filePath = (sender as LinkButton).CommandArgument;
File.Delete(filePath);
Response.Redirect(Request.Url.AbsoluteUri);
}
PL: У меня есть существующий GridView и источник данных для моего стола.
Вы посылаете '<% # DataBinder.Eval (Container.DataItem, "ID")%>' как CommandArgument, то принимая, что CommandArgument в DeleteFile(), и вы называете это Filepath ... Filepath будет содержать данные, привязанные как «ID», где он должен быть передан путь фактического файла ... можете ли вы указать это как CommandArgument? –
Если вы можете предоставить путь к файлу так же, как вы указываете '<% # DataBinder.Eval (Container.DataItem,« ID »)%>' ... возможно, что-то вроде '<% # DataBinder.Eval (Container.DataItem, «FilePath»)%> ', тогда вы там –
Я пробовал« filePath »... У меня была эта ошибка msg: DataBinding:« System.Data.DataRowView »не содержит свойства с именем« filePath ». –