DetailsViewDeleteEventHandler デリゲート
アセンブリ: System.Web (system.web.dll 内)

Public Delegate Sub DetailsViewDeleteEventHandler ( _ sender As Object, _ e As DetailsViewDeleteEventArgs _ )
public delegate void DetailsViewDeleteEventHandler ( Object^ sender, DetailsViewDeleteEventArgs^ e )
/** @delegate */ public delegate void DetailsViewDeleteEventHandler ( Object sender, DetailsViewDeleteEventArgs e )

DetailsView コントロールは、コントロール内の Delete ボタン (CommandName プロパティが "Delete" に設定されたボタン) がクリックされた場合に、DetailsView コントロールが実際にレコードを削除した後に ItemDeleting イベントを発生させます。これにより、このイベントが発生するたびにカスタム ルーチン (削除操作の結果を確認するなど) を実行するイベント ハンドラを提供できます。
DetailsViewDeleteEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントとデリゲート」を参照してください。

DetailsViewDeleteEventHandler デリゲートを、プログラムによって DetailsView コントロールの ItemDeleting イベントに追加する方法のコード例を次に示します。
<%@ page language="VB"%> <script runat="server"> Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Create a new DetailsView object. Dim customerDetailsView As New DetailsView() ' Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView" customerDetailsView.DataSourceID = "DetailsViewSource" customerDetailsView.AutoGenerateRows = True customerDetailsView.AutoGenerateDeleteButton = True customerDetailsView.AllowPaging = True customerDetailsView.PagerSettings.Mode = PagerButtons.NextPrevious Dim keyArray() As String = {"CustomerID"} customerDetailsView.DataKeyNames = keyArray ' Programmatically register the event-handling method ' for the ItemDeleting event of a DetailsView control. AddHandler customerDetailsView.ItemDeleting, AddressOf CustomerDetailsView_ItemDeleting ' Add the DetailsView object to the Controls collection ' of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView) End Sub Sub CustomerDetailsView_ItemDeleting(ByVal sender As Object, ByVal e As DetailsViewDeleteEventArgs) ' Get customer ID and name from the Keys and Values ' properties. Dim keyValue As String = e.Keys("CustomerID").ToString() Dim customerName As String = e.Values("CompanyName").ToString() ' Cancel the delete operation if the user attempts to ' delete protected record. In this example, records ' with a customer ID that starts with with "A" cannot ' be deleted. If keyValue.StartsWith("A") Then e.Cancel = True MessageLabel.Text = "You cannot delete " & _ customerName & ". This customer is protected." Else MessageLabel.Text = "Row " & e.RowIndex.ToString() & _ " deleted." End If End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewDeleteEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:PlaceHolder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" deletecommand="Delete [Customers] Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ page language="C#"%> <script runat="server"> void Page_Load(Object sender, EventArgs e) { // Create a new DetailsView object. DetailsView customerDetailsView = new DetailsView(); // Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView"; customerDetailsView.DataSourceID = "DetailsViewSource"; customerDetailsView.AutoGenerateRows = true; customerDetailsView.AutoGenerateDeleteButton = true; customerDetailsView.AllowPaging = true; customerDetailsView.PagerSettings.Mode = PagerButtons.NextPrevious; customerDetailsView.DataKeyNames = new String[1] { "CustomerID" }; // Programmatically register the event-handling method // for the ItemDeleting event of a DetailsView control. customerDetailsView.ItemDeleting += new DetailsViewDeleteEventHandler(this.CustomerDetailsView_ItemDeleting); // Add the DetailsView object to the Controls collection // of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView); } void CustomerDetailsView_ItemDeleting(Object sender, DetailsViewDeleteEventArgs e) { // Get customer ID and name from the Keys and Values // properties. String keyValue = e.Keys["CustomerID"].ToString(); String customerName = e.Values["CompanyName"].ToString(); // Cancel the delete operation if the user attempts to // delete protected record. In this example, records // with a customer ID that starts with with "A" cannot // be deleted. if (keyValue.StartsWith("A")) { e.Cancel = true; MessageLabel.Text = "You cannot delete " + customerName + ". This customer is protected."; } else { MessageLabel.Text = "Row " + e.RowIndex.ToString() + " deleted."; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewDeleteEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:PlaceHolder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" deletecommand="Delete [Customers] Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
DetailsViewDeleteEventHandler デリゲートを、宣言によって DetailsView コントロールの ItemDeleting イベントに追加する方法のコード例を次に示します。
<%@ page language="VB" autoeventwireup="false"%> <script runat="server"> Sub CustomerDetailsView_ItemDeleting(ByVal sender As Object, _ ByVal e As DetailsViewDeleteEventArgs) _ Handles CustomerDetailsView.ItemDeleting ' Get customer ID and name from the Keys and Values ' properties. Dim keyValue As String = e.Keys("CustomerID").ToString() Dim customerName As String = e.Values("CompanyName").ToString() ' Cancel the delete operation if the user attempts to ' delete protected record. In this example, records ' with a customer ID that starts with with "A" cannot ' be deleted. If keyValue.StartsWith("A") Then e.Cancel = True MessageLabel.Text = "You cannot delete " & _ customerName & ". This customer is protected." Else MessageLabel.Text = "Row " & e.RowIndex.ToString() & _ " deleted." End If End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewDeleteEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogeneratedeletebutton="true" allowpaging="true" datakeynames="CustomerID" runat="server"> <pagersettings mode="NextPrevious"/> </asp:detailsview> <br/><br/> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" deletecommand="Delete [Customers] Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ page language="C#"%> <script runat="server"> void CustomerDetailsView_ItemDeleting(Object sender, DetailsViewDeleteEventArgs e) { // Get customer ID and name from the Keys and Values // properties. String keyValue = e.Keys["CustomerID"].ToString(); String customerName = e.Values["CompanyName"].ToString(); // Cancel the delete operation if the user attempts to // delete protected record. In this example, records // with a customer ID that starts with with "A" cannot // be deleted. if (keyValue.StartsWith("A")) { e.Cancel = true; MessageLabel.Text = "You cannot delete " + customerName + ". This customer is protected."; } else { MessageLabel.Text = "Row " + e.RowIndex.ToString() + " deleted."; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewDeleteEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogeneratedeletebutton="true" allowpaging="true" datakeynames="CustomerID" onitemdeleting="CustomerDetailsView_ItemDeleting" runat="server"> <pagersettings mode="NextPrevious"/> </asp:detailsview> <br/><br/> <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="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" deletecommand="Delete [Customers] Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- DetailsViewDeleteEventHandler デリゲートのページへのリンク