HILFE! Ist es möglich, mithilfe der LinkButton- oder Gridview_RowDeleting-Methode eine Datei gleichzeitig aus einer DataBase und aus einem Ordner zu löschen? Unten ist mein Code ein Linkbutton mit:Gleichzeitiges Löschen einer Datei aus einer DataBase und einem Ordner mithilfe einer LinkButton- oder Gridview_RowDeleting-Methode
<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>
-Code Behind:
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: Ich habe eine bestehende gridview und eine Datenquelle für meinen Tisch.
Du schickst '<% # DataBinder.Eval (Container.DataItem, "ID")%>' als das Commandargument, dann nehmen, dass Command in DeleteFile() und Sie es nennen filePath ... filePath enthält die Daten, die als "ID" gebunden sind, an die der Pfad der tatsächlichen Datei übergeben werden soll ... Können Sie das als CommandArgument angeben? –
Wenn Sie den Pfad der Datei auf die gleiche Weise bereitstellen können, wie Sie '<% # DataBinder.Eval (Container.DataItem," ID ")%>' ... vielleicht so etwas wie '<% # DataBinder.Eval (Container.DataItem, "FilePath")%> 'dann bist du da –
Ich habe versucht" filePath "... Ich habe diesen Fehler msg: DataBinding: 'System.Data.DataRowView' enthält keine Eigenschaft mit dem Namen 'filePath'. –