#asp.net #gridview #aspxgridview
#asp.net #gridview #aspxgridview
Вопрос:
Я новичок в представлении сетки, у меня есть несколько имен файлов в виде таблицы в виде источника данных Sql, и если я удалю эту строку, физический файл также должен быть удален, который существует в какой-то другой папке. Это мой код, который я пробовал..
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
Control control=e.Row.Cells[0].Controls[0];
String Filename = e.Row.Cells[2].ToString();
if (control is LinkButton)
{
((LinkButton)control).OnClientClick = "return confirm('Are you Sure you want to delete? this Cannot be undone')";
if((File.Exists(Server.MapPath("~/Content/MainContent/BulkDataContent/" Filename))))
{
File.Delete(Server.MapPath("~/Content/MainContent/BulkDataContent/" Filename));
}
}
Но проблема в том, что когда я удаляю один файл из представления сетки, одна строка удаляется из представления сетки, а все физические файлы удаляются из папки… Это цикл до конца..
Помогите мне решить эту проблему…
Заранее спасибо.
Комментарии:
1. где находится событие нажатия кнопки link?
Ответ №1:
Обновленный ответ
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
Control control=e.Row.Cells[0].Controls[0];
String Filename = e.Row.Cells[2].ToString();
if (control is LinkButton)
{
((LinkButton)control).OnClientClick = "return confirm('Are you Sure you want to delete? this Cannot be undone')";
//write here your Delete query/Procedure
if((File.Exists(Server.MapPath("~/Content/MainContent/BulkDataContent/" Filename))))
{
File.Delete(Server.MapPath("~/Content/MainContent/BulkDataContent/" Filename));
}
}
Комментарии:
1. В этом GridView есть автоматически генерируемая кнопка удаления, поэтому я думаю, что нет необходимости писать запрос на удаление, теперь я хочу удалить точную форму файла над путем, по которому пользователь нажимает