Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?
Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?
- Как установить GridView внутри ScrollView
- GridView связан с свойствами вложенного classа
- GridView с двумя столбцами, шириной заливки
- Создать миниатюру
- Android gridview сохраняет выбранный элемент
- Лучший способ сделать сортировку WPF ListView / GridView при нажатии на заголовок столбца?
- Сортировка GridView: SortDirection всегда по возрастанию
- Сброс позиции прокрутки после обратной пересылки Async - ASP.NET
Если ваш Gridview
используется с AutoGenerateDeleteButton="true"
, вы можете преобразовать его в LinkButton
:
-
Нажмите « Задачи GridView», а затем « Редактировать столбцы» .
-
Выберите « Удалить» в выбранных полях и нажмите « Преобразовать это поле» в TemplateField . Затем нажмите « ОК» :
-
Теперь будет создан ваш
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?"); } });
Надеюсь, что это поможет;)