ListView.ItemDeleting 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在请求删除操作之后、ListView 控件删除项之前发生。
public:
event EventHandler<System::Web::UI::WebControls::ListViewDeleteEventArgs ^> ^ ItemDeleting;
public event EventHandler<System.Web.UI.WebControls.ListViewDeleteEventArgs> ItemDeleting;
member this.ItemDeleting : EventHandler<System.Web.UI.WebControls.ListViewDeleteEventArgs>
Public Custom Event ItemDeleting As EventHandler(Of ListViewDeleteEventArgs)
事件类型
示例
以下示例演示如何以声明方式为 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">
protected void CategoriesListView_OnItemDeleting(object sender, ListViewDeleteEventArgs e)
{
if (SubCategoriesGridView.Rows.Count > 0)
{
MessageLabel.Text = "You cannot delete a category that has sub-categories.";
e.Cancel = true;
}
}
protected void Page_Load()
{
MessageLabel.Text = String.Empty;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Subcategories List</title>
</head>
<body>
<form id="form1" runat="server">
<b>Categories</b>
<br />
<asp:Label ForeColor="Red" runat="server" ID="MessageLabel" /><br />
<asp:ListView runat="server"
ID="CategoriesListView"
OnItemDeleting="CategoriesListView_OnItemDeleting"
DataSourceID="CategoriesDataSource"
DataKeyNames="ProductCategoryID">
<LayoutTemplate>
<table runat="server" id="tblCategories"
cellspacing="0" cellpadding="1" width="440px" border="1">
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Select" CommandName="Select" />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr runat="server" style="background-color:#90EE90">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Delete" CommandName="Delete" />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br />
<b>Subcategories</b>
<asp:GridView runat="server" ID="SubCategoriesGridView" Width="300px"
DataSourceID="SubCategoriesDataSource" DataKeyNames="ProductSubcategoryID"
AutoGenerateColumns="True" />
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="CategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductCategoryID], [Name]
FROM Production.ProductCategory">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SubCategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductSubcategoryID], [Name]
FROM Production.ProductSubcategory
WHERE ProductCategoryID = @ProductCategoryID
ORDER BY [Name]">
<SelectParameters>
<asp:ControlParameter Name="ProductCategoryID" DefaultValue="0"
ControlID="CategoriesListView" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
</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">
Protected Sub CategoriesListView_OnItemDeleting(sender As Object, e As ListViewDeleteEventArgs)
If SubCategoriesGridView.Rows.Count > 0 Then
MessageLabel.Text = "You cannot delete a category that has sub-categories."
e.Cancel = True
End If
End Sub
Protected Sub Page_Load()
MessageLabel.Text = String.Empty
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Subcategories List</title>
</head>
<body>
<form id="form1" runat="server">
<b>Categories</b>
<br />
<asp:Label ForeColor="Red" runat="server" ID="MessageLabel" /><br />
<asp:ListView runat="server"
ID="CategoriesListView"
OnItemDeleting="CategoriesListView_OnItemDeleting"
DataSourceID="CategoriesDataSource"
DataKeyNames="ProductCategoryID">
<LayoutTemplate>
<table runat="server" id="tblCategories"
cellspacing="0" cellpadding="1" width="440px" border="1">
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Select" CommandName="Select" />
</td>
</tr>
</ItemTemplate>
<SelectedItemTemplate>
<tr runat="server" style="background-color:#90EE90">
<td>
<asp:Label runat="server" ID="NameLabel" Text='<%#Eval("Name") %>' />
</td>
<td style="width:40px">
<asp:LinkButton runat="server" ID="SelectCategoryButton"
Text="Delete" CommandName="Delete" />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
<br />
<b>Subcategories</b>
<asp:GridView runat="server" ID="SubCategoriesGridView" Width="300px"
DataSourceID="SubCategoriesDataSource" DataKeyNames="ProductSubcategoryID"
AutoGenerateColumns="True" />
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="CategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductCategoryID], [Name]
FROM Production.ProductCategory">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SubCategoriesDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductSubcategoryID], [Name]
FROM Production.ProductSubcategory
WHERE ProductCategoryID = @ProductCategoryID
ORDER BY [Name]">
<SelectParameters>
<asp:ControlParameter Name="ProductCategoryID" DefaultValue="0"
ControlID="CategoriesListView" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
注解
单击 ItemDeleting 项的“删除”按钮或 DeleteItem 调用 方法时,但在控件删除该项之前 ListView ,将引发 事件。 (“删除”按钮是一个按钮控件,其 CommandName 属性设置为“Delete”。) 这样,每当发生此事件时,就可以执行自定义例程,例如取消删除操作。
对象 ListViewDeleteEventArgs 将传递给事件处理程序,这使你可以确定当前项的索引。 它还允许指示应取消删除操作。 若要取消删除操作,请将 对象的 属性ListViewDeleteEventArgs设置为 Canceltrue
。 在将值传递到数据源之前, Keys 还可以使用 和 Values 集合。
有关如何处理事件的详细信息,请参阅 处理和引发事件。