Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?

Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?

Это должно сделать это.

Я нашел его здесь: http://forums.asp.net/p/1331581/2678206.aspx

     

Если ваш Gridview используется с AutoGenerateDeleteButton="true" , вы можете преобразовать его в LinkButton :

  1. Нажмите « Задачи GridView», а затем « Редактировать столбцы» . https://www.flickr.com/photos/32784002@N02/15395933069/

  2. Выберите « Удалить» в выбранных полях и нажмите « Преобразовать это поле» в TemplateField . Затем нажмите « ОК» : https://www.flickr.com/photos/32784002@N02/15579904611/

  3. Теперь будет создан ваш LinkButton . Вы можете добавить событие LinkButton в LinkButton следующим образом:
    OnClientClick="return confirm('Are you sure you want to delete?'); "

Я сделал это немного по-другому. В моем gridview я устанавливаю AutoGenerateDeleteButton="true" . Чтобы найти кнопку удаления, я использую jQuery и добавляю событие click к найденным Anchors.

 jQuery("a").filter(function () { return this.innerHTML.indexOf("Delete") == 0; }).click(function () { return confirm("Are you sure you want to delete this record?"); }); 

Это быстро и просто для того, что мне нужно делать. Просто помните, что каждый якорь на странице, отображающей Delete, будет выбран jQuery и будет добавлен к нему событие.

Вы можете использовать кнопку OnClientClick.

 OnClientClick="return confirm('confirm delete')" 

Я не хотел никакого изображения, поэтому я изменил ответ, данный @statmaster, чтобы сделать его простой запись вместе с другими столбцами.

   Delete    

Цвет текста можно изменить с помощью свойства Forecolor.

Мне нравится этот способ добавления запроса подтверждения перед удалением записи из gridview. Это определение CommandField, nested в веб-элемент управления GridView на странице aspx. Здесь нет ничего необычного – просто прямое Командное поле.

    

Мне очень нравится добавлять код в событие GridView RowDataBound чтобы сообщить пользователю точно, какой элемент они пытаются удалить. Чуть лучше пользовательский интерфейс?

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkButton lnkBtnDelete = e.Row.FindControl("lnkBtnDelete") as LinkButton; // Use whatever control you want to show in the confirmation message Label lblContactName = e.Row.FindControl("lblContactName") as Label; lnkBtnDelete.Attributes.Add("onclick", string.Format("return confirm('Are you sure you want to delete the contact {0}?');", lblContactName.Text)); } } 

Это мой предпочтительный метод. Довольно прямо:

http://www.codeproject.com/KB/webforms/GridViewConfirmDelete.aspx

Попробуй это:

Я использовал кнопки « Обновить» и « Удалить» . Он не касается кнопки « Редактировать» . Вы можете использовать автоматически сгенерированные кнопки.

  protected void gvOperators_OnRowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType != DataControlRowType.DataRow) return; var updateButton = (LinkButton)e.Row.Cells[0].Controls[0]; if (updateButton.Text == "Update") { updateButton.OnClientClick = "return confirm('Do you really want to update?');"; } var deleteButton = (LinkButton)e.Row.Cells[0].Controls[2]; if (deleteButton.Text == "Delete") { deleteButton.OnClientClick = "return confirm('Do you really want to delete?');"; } } 

У меня возникли проблемы с получением кнопки CommandField Delete, чтобы почтить ответ «return false», когда пользователь нажал кнопку «Отменить» во всплывающем окне «Вы уверены», с помощью функции подтверждения javascript (). Я не хотел менять его в поле шаблона.

Проблема, как я вижу, заключалась в том, что у этих кнопок CommandField уже есть связанный с ними Javascript для выполнения обратной передачи. Не было достаточно просто добавить функцию confirm ().

Вот как я это решил:

Используя JQuery, я сначала нашел каждую кнопку удаления на странице (их несколько), а затем обработал связанный с ним Javascript на основе того, согласился ли посетитель или отменил подтверждающее всплывающее окно.

  

Этот код работает отлично для меня.

 jQuery("a").filter(function () { return this.innerHTML.indexOf("Delete") == 0; }).click(function () { return confirm("Are you sure you want to delete this record?"); }); 

Мне нравится решение для JavaScript и некоторые обновления для работы с динамической загрузкой ajax:

  $(document).on("click", "a", function () { if (this.innerHTML.indexOf("Delete") == 0) { return confirm("Are you sure you want to delete this record?"); } }); 

Надеюсь, что это поможет;)

  • Как я могу экспортировать GridView.DataSource в datatable или dataset?
  • Как удалить строку из GridView?
  • Столбцы двух связанных таблиц базы данных в одном ASP.NET GridView с EntityDataSource
  • Отображение изображений из определенной папки на SD-карте с использованием gridview
  • Как найти элемент управления в TemplateField GridView?
  • Лучший способ сделать сортировку WPF ListView / GridView при нажатии на заголовок столбца?
  • ASP.NET GridView RowIndex как CommandArgument
  • Как скрыть столбец (GridView), но все же получить доступ к его значению?
  • Проблемы с GridView внутри ScrollView в android
  • разделители / разделители строк сетки андроида
  • Android gridview сохраняет выбранный элемент
  • Interesting Posts
    Давайте будем гением компьютера.