FormView.ItemDeleting 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在单击 FormView 控件中的“删除”按钮时,但在删除操作之前发生。
public:
event System::Web::UI::WebControls::FormViewDeleteEventHandler ^ ItemDeleting;
public event System.Web.UI.WebControls.FormViewDeleteEventHandler ItemDeleting;
member this.ItemDeleting : System.Web.UI.WebControls.FormViewDeleteEventHandler
Public Custom Event ItemDeleting As FormViewDeleteEventHandler
事件类型
示例
以下示例演示如何使用 ItemDeleting 事件取消删除操作。
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void EmployeeFormView_ItemDeleting(Object sender, FormViewDeleteEventArgs e)
{
// Get the employee ID, name, and job title from the Keys and Values
// properties.
String keyValue = e.Keys["EmployeeID"].ToString();
String employeeName = e.Values["FirstName"].ToString() +
" " + e.Values["LastName"].ToString();
String title = e.Values["Title"].ToString();
// Cancel the delete operation if the user attempts to
// delete a protected record. In this example, records for
// employees with a "Sales Manager" job title are protected.
if (title.Equals("Sales Manager"))
{
e.Cancel = true;
MessageLabel.Text = "You cannot delete record " +
e.RowIndex.ToString() + ". " + employeeName +
" (Employee Number " + keyValue.ToString() +
") is protected.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeleteEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeleteEventArgs Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
onitemdeleting="EmployeeFormView_ItemDeleting"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub EmployeeFormView_ItemDeleting(ByVal sender As Object, ByVal e As FormViewDeleteEventArgs)
' Get the employee ID, name, and job title from the Keys and Values
' properties.
Dim keyValue As String = e.Keys("EmployeeID").ToString()
Dim employeeName As String = e.Values("FirstName").ToString() & _
" " & e.Values("LastName").ToString()
Dim title As String = e.Values("Title").ToString()
' Cancel the delete operation if the user attempts to
' delete a protected record. In this example, records for
' employees with a "Sales Manager" job title are protected.
If Title.Equals("Sales Manager") Then
e.Cancel = True
MessageLabel.Text = "You cannot delete record " & _
e.RowIndex.ToString() & ". " & employeeName & _
" (Employee Number " & keyValue.ToString() & _
") is protected."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FormViewDeleteEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>FormViewDeleteEventArgs Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
onitemdeleting="EmployeeFormView_ItemDeleting"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<asp:label id="FirstNameLabel"
text='<%#Bind("FirstName")%>'
font-bold="true"
runat="server"/>
<asp:label id="LastNameLabel"
text='<%#Bind("LastName")%>'
font-bold="true"
runat="server"/>
<br/>
<asp:label id="TitleLabel"
text='<%#Bind("Title")%>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:button id="DeleteButton"
text="Delete Record"
commandname="Delete"
runat="server" />
</td>
</tr>
</table>
</itemtemplate>
</asp:formview>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]"
deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
注解
FormView当“删除”按钮 (其属性设置为“Delete”的按钮CommandName
时,控件将引发 ItemDeleting 该事件,) 在控件内单击,但在控件删除记录之前FormView。 这样,就可以提供执行自定义例程的事件处理方法,例如,每当发生此事件时,在删除记录之前对其进行验证。
将 FormViewDeleteEventArgs 对象传递给事件处理方法,该方法允许您确定要删除的记录的索引,并指示应取消删除操作。 若要确定记录的索引,请使用 RowIndex 属性。 若要取消删除操作,请将 Cancel 属性设置为 true
。 还可以分别使用 Keys 和 Values 属性访问键字段和非键字段。
有关如何处理事件的详细信息,请参阅 处理和引发事件。