Во-первых, вам нужно создать файл/.vb класс по rightclicking на корневой файл на вкладке Решения Explorer (я использую БВ). Выберите «Добавить новый» и выберите «Класс». Он предложит создать папку App_Code, в которой будут находиться ваши общие классы. Назовите файл/класс как «DeleteButtonField.vb» и нажмите «ОК».
Затем он должен открыть новый .vb-файл с именем DeleteButtonField, и вы можете скопировать и вставить или ввести код ниже. (Обратите внимание, что вы можете использовать Intellisense, чтобы закончить очень долго кусок кода, который определяет Защищенные Overrides 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" %>
Это также должно быть добавлено на каждой странице, где вы собираетесь с помощью новой кнопки Delete в GridView Там может быть способ установить это по умолчанию в web.config,. Я не Ther на этом этапе моего обучения.
Сохраните страницу .aspx и проверьте.Теперь вы определили общий Sub (который определяет стандартную кнопку Delete и его поведение), которую вы можете подключить к любому GridView в своем приложении.
@abatishchev просто следя за собой, вы когда-нибудь получали это? – Kelsey
Нет, я отказался, и моя пользовательская кнопка удаления всегда была одинаковой, жестко закодированной, английской этикеткой – abatishchev