Во-первых, вам нужно создать файл / класс .vb, щелкнув правой кнопкой мыши на корневом файле на вкладке «Обозреватель решений» (я использую VWD). Выберите Добавить новый и выберите страницу класса. Он предложит создать папку App_Code, в которой будут находиться ваши общие классы. Назовите файл / класс как «DeleteButtonField.vb» и нажмите «ОК».
Затем он должен открыть новый файл .vb с именем DeleteButtonField, и вы можете скопировать и вставить или ввести код ниже. (Обратите внимание, что вы можете использовать Intellisense для завершения действительно длинного кода, который определяет защищенные переопределения Sub InitializeCell (........).)
Imports Microsoft.VisualBasic
Imports System
Imports System.Web.UI.WebControls
Namespace myControls
Public Class DeleteButtonField
Inherits ButtonField
Private _confirmText As String = "Delete This Record?"
Public Property ConfirmText() As String
Get
Return _confirmText
End Get
Set(ByVal value As String)
_confirmText = value
End Set
End Property
Public Sub New()
Me.CommandName = "Delete"
Me.Text = "Delete"
End Sub
Public Overrides Sub InitializeCell(ByVal cell As System.Web.UI.WebControls.DataControlFieldCell, ByVal cellType As System.Web.UI.WebControl.DataControlCellType, ByVal rowState As System.Web.UI.WebControl.DataControlRowState, ByVal rowIndex As Integer)
MyBase.InitializeCell(cell, cellType, rowState, rowIndex)
If cellType = DataControlCellType.DataCell Then
Dim button As WebControl = CType(cell.Controls(0), WebControl)
button.Attributes("onclick") = String.Format("return confirm('{0}');", _confirmText)
End If
End Sub
End Class
End Namespace
Сохраните файл .vb. Затем на странице .aspx откройте страницу в исходном режиме и найдите определение GridView (т. Е. Теги. Вы можете выбрать, где вы хотите, чтобы кнопка «Удалить» появлялась: либо первая позиция, вторая или т. текстовую позицию, чтобы вы не изменили ни одно из определений и добавили следующее
<custom:DeleteButtonField ConfirmText="Are you sure that you want to delete this record?"></custom:DeleteButtonField>
Вам также необходимо добавить строку вверху страницы после <% @ Page ...> следующим образом
<%@ Register TagPrefix="custom" Namespace="myControls" %>
Это также необходимо добавить на каждую страницу, где вы собираетесь использовать новую кнопку удаления в GridView. Может быть способ установить это как значение по умолчанию в web.config; На данном этапе моего обучения меня там нет.
Сохраните страницу .aspx и протестируйте. Теперь вы определили общий Sub (который определяет стандартную кнопку Delete и ее поведение), который вы можете присоединить к любому GridView в вашем приложении.