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

Public Delegate Sub FormViewDeleteEventHandler ( _ sender As Object, _ e As FormViewDeleteEventArgs _ )
/** @delegate */ public delegate void FormViewDeleteEventHandler ( Object sender, FormViewDeleteEventArgs e )

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

FormViewDeleteEventHandler デリゲートを、プログラムによって FormView コントロールの ItemDeleting イベントに追加する方法を次の例に示します。
<%@ page language="VB" %> <%@ import namespace="System.Data"%> <script runat="server"> ' To dynamically create a template for a FormView control, ' you must create a custom template class to represent ' the template. This template class represents the item ' template for a FormView control. Private NotInheritable Class EmployeeTemplate Implements ITemplate ' When implementing the ITemplate interface, you must ' implement the InstantiateIn method. The FormView ' control calls this method to create the template's ' content. Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn ' Create the child controls contained in the template. ' For this example, the item template displays the ' FirstName, LastName, and Title fields from the data ' source. To support data-binding, create event handlers ' for the DataBinding event of each child control. ' The event handlers must bind the appropriate value ' to each control. Dim firstNameLabel As New Label() firstNameLabel.ID = "FirstNameLabel" AddHandler firstNameLabel.DataBinding, AddressOf FirstNameLabel_DataBinding Dim lastNameLabel As New Label() lastNameLabel.ID = "LastNameLabel" AddHandler lastNameLabel.DataBinding, AddressOf LastNameLabel_DataBinding Dim titleNameLabel As New Label() titleNameLabel.ID = "TitleLabel" AddHandler titleNameLabel.DataBinding, AddressOf TitleLabel_DataBinding Dim space As New LiteralControl(" ") Dim titleLineBreak As New LiteralControl("<br/>") Dim buttonLineBreak As New LiteralControl("<br/>") Dim deleteButton As New Button() deleteButton.ID = "DeleteButton" deleteButton.CommandName = "Delete" deleteButton.Text = "Delete" ' Add the controls to the Controls collection of the ' container control. container.Controls.Add(firstNameLabel) container.Controls.Add(Space) container.Controls.Add(lastNameLabel) container.Controls.Add(titleLineBreak) container.Controls.Add(titleNameLabel) container.Controls.Add(buttonLineBreak) container.Controls.Add(deleteButton) End Sub ' This event handler binds the value of the FirstName field ' to the FirstNameLabel Label control displayed in the template. Private Sub FirstNameLabel_DataBinding(ByVal sender As Object, ByVal e As EventArgs) ' Use the sender parameter to retrieve the Label control ' being bound to data. Dim firstNameLabelControl As Label = CType(sender, Label) ' Retrieve the value to bind to the Label control. First, ' use the NamingContainer property to retrieve the parent ' control of the Label control. In this example, the parent ' control is the FormView control. Dim formViewContainer As FormView = CType(firstNameLabelControl.NamingContainer, FormView) ' Get the data item bound to the FormView control. Dim rowView As DataRowView = CType(formViewContainer.DataItem, DataRowView) ' Use the data item to retrieve the value of the FirstName field. ' Set the Text property of the Label control to this value. firstNameLabelControl.Text = rowView("FirstName").ToString() End Sub ' This event handler binds the value of the LastName field ' to the LastNameLabel Label control displayed in the template. Private Sub LastNameLabel_DataBinding(ByVal sender As Object, ByVal e As EventArgs) ' Use the sender parameter to retrieve the Label control ' being bound to data. Dim lastNameLabelControl As Label = CType(sender, Label) ' Retrieve the value to bind to the Label control. First, ' use the NamingContainer property to retrieve the parent ' control of the Label control. In this example, the parent ' control is the FormView control. Dim formViewContainer As FormView = CType(lastNameLabelControl.NamingContainer, FormView) ' Get the data item bound to the FormView control. Dim rowView As DataRowView = CType(formViewContainer.DataItem, DataRowView) ' Use the data item to retrieve the value of the LastName field. ' Set the Text property of the Label control to this value. lastNameLabelControl.Text = rowView("LastName").ToString() End Sub ' This event handler binds the value of the Title field ' to the TitleLabel Label control displayed in the template. Private Sub TitleLabel_DataBinding(ByVal sender As Object, ByVal e As EventArgs) ' Use the sender parameter to retrieve the Label control ' being bound to data. Dim titleLabelControl As Label = CType(sender, Label) ' Retrieve the value to bind to the Label control. First, ' use the NamingContainer property to retrieve the parent ' control of the Label control. In this example, the parent ' control is the FormView control. Dim formViewContainer As FormView = CType(titleLabelControl.NamingContainer, FormView) ' Get the data item bound to the FormView control. Dim rowView As DataRowView = CType(formViewContainer.DataItem, DataRowView) ' Use the data item to retrieve the value of the LastName field ' Set the Text property of the Label control to this value. titleLabelControl.Text = rowView("Title").ToString() End Sub End Class Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Create a new FormView object. Dim employeesFormView As New FormView() ' Set the FormView object's properties. employeesFormView.ID = "EmployeesFormView" employeesFormView.DataSourceID = "EmployeeSource" employeesFormView.AllowPaging = True employeesFormView.HeaderText = "Employee Name" Dim keyArray() As String = {"EmployeeID"} employeesFormView.DataKeyNames = keyArray ' Programmatically register the event handler for the ' ItemDeleting event of the FormView control. AddHandler employeesFormView.ItemDeleting, AddressOf EmployeeFormView_ItemDeleting ' Create the dynamic template using the custom template class. employeesFormView.ItemTemplate = New EmployeeTemplate() ' Add the FormView object to the Controls collection ' of the PlaceHolder control. FormViewPlaceHolder.Controls.Add(employeesFormView) End Sub Sub EmployeeFormView_ItemDeleting(ByVal sender As Object, ByVal e As FormViewDeleteEventArgs) ' Use the sender parameter to retrieve the FormView ' control that raised the event. Dim employeeFormView As FormView = CType(sender, FormView) ' Retrieve the TitleLabel Label control from the ' data row. Dim row As FormViewRow = employeeFormView.Row Dim titleLabel As Label = CType(row.FindControl("TitleLabel"), Label) ' 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 (titleLabel.Text.Equals("Sales Manager")) Then e.Cancel = True MessageLabel.Text = "You cannot delete this record." End If End Sub </script> <html> <body> <form runat="server"> <h3>FormViewDeleteEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated FormView control. --> <asp:placeholder id="FormViewPlaceHolder" 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="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="C#" %> <%@ import namespace="System.Data"%> <script runat="server"> // To dynamically create a template for a FormView control, // you must create a custom template class to represent // the template. This template class represents the item // template for a FormView control. private sealed class EmployeeTemplate : ITemplate { // When implementing the ITemplate interface, you must // implement the InstantiateIn method. The FormView // control calls this method to create the template's // content. void ITemplate.InstantiateIn(Control container) { // Create the child controls contained in the template. // For this example, the item template displays the // FirstName, LastName, and Title fields from the data // source. To support data-binding, create event handlers // for the DataBinding event of each child control. // The event handlers must bind the appropriate value // to each control. Label firstNameLabel = new Label(); firstNameLabel.ID = "FirstNameLabel"; firstNameLabel.DataBinding += new EventHandler(FirstNameLabel_DataBinding); Label lastNameLabel = new Label(); lastNameLabel.ID = "LastNameLabel"; lastNameLabel.DataBinding += new EventHandler(LastNameLabel_DataBinding); Label titleNameLabel = new Label(); titleNameLabel.ID = "TitleLabel"; titleNameLabel.DataBinding += new EventHandler(TitleLabel_DataBinding); LiteralControl space = new LiteralControl(" "); LiteralControl titleLineBreak = new LiteralControl("<br/>"); LiteralControl buttonLineBreak = new LiteralControl("<br/>"); Button deleteButton = new Button(); deleteButton.ID = "DeleteButton"; deleteButton.CommandName = "Delete"; deleteButton.Text = "Delete"; // Add the controls to the Controls collection of the // container control. container.Controls.Add(firstNameLabel); container.Controls.Add(space); container.Controls.Add(lastNameLabel); container.Controls.Add(titleLineBreak); container.Controls.Add(titleNameLabel); container.Controls.Add(buttonLineBreak); container.Controls.Add(deleteButton); } // This event handler binds the value of the FirstName field // to the FirstNameLabel Label control displayed in the template. private void FirstNameLabel_DataBinding(Object sender, EventArgs e) { // Use the sender parameter to retrieve the Label control // being bound to data. Label firstNameLabelControl = (Label)sender; // Retrieve the value to bind to the Label control. First, // use the NamingContainer property to retrieve the parent // control of the Label control. In this example, the parent // control is the FormView control. FormView formViewContainer = (FormView)firstNameLabelControl.NamingContainer; // Get the data item bound to the FormView control. DataRowView rowView = (DataRowView)formViewContainer.DataItem; // Use the data item to retrieve the value of the FirstName field. // Set the Text property of the Label control to this value. firstNameLabelControl.Text = rowView["FirstName"].ToString(); } // This event handler binds the value of the LastName field // to the LastNameLabel Label control displayed in the template. private void LastNameLabel_DataBinding(Object sender, EventArgs e) { // Use the sender parameter to retrieve the Label control // being bound to data. Label lastNameLabelControl = (Label)sender; // Retrieve the value to bind to the Label control. First, // use the NamingContainer property to retrieve the parent // control of the Label control. In this example, the parent // control is the FormView control. FormView formViewContainer = (FormView)lastNameLabelControl.NamingContainer; // Get the data item bound to the FormView control. DataRowView rowView = (DataRowView)formViewContainer.DataItem; // Use the data item to retrieve the value of the LastName field. // Set the Text property of the Label control to this value. lastNameLabelControl.Text = rowView["LastName"].ToString(); } // This event handler binds the value of the Title field // to the TitleLabel Label control displayed in the template. private void TitleLabel_DataBinding(Object sender, EventArgs e) { // Use the sender parameter to retrieve the Label control // being bound to data. Label titleLabelControl = (Label)sender; // Retrieve the value to bind to the Label control. First, // use the NamingContainer property to retrieve the parent // control of the Label control. In this example, the parent // control is the FormView control. FormView formViewContainer = (FormView)titleLabelControl.NamingContainer; // Get the data item bound to the FormView control. DataRowView rowView = (DataRowView)formViewContainer.DataItem; // Use the data item to retrieve the value of the LastName field // Set the Text property of the Label control to this value. titleLabelControl.Text = rowView["Title"].ToString(); } } void Page_Load(Object sender, EventArgs e) { // Create a new FormView object. FormView employeesFormView = new FormView(); // Set the FormView object's properties. employeesFormView.ID = "EmployeesFormView"; employeesFormView.DataSourceID = "EmployeeSource"; employeesFormView.AllowPaging = true; employeesFormView.HeaderText = "Employee Name"; employeesFormView.DataKeyNames = new String[1] { "EmployeeID" }; // Programmatically register the event handler for the // ItemDeleting event of the FormView control. employeesFormView.ItemDeleting += new FormViewDeleteEventHandler(EmployeeFormView_ItemDeleting); // Create the dynamic template using the custom template class. employeesFormView.ItemTemplate = new EmployeeTemplate(); // Add the FormView object to the Controls collection // of the PlaceHolder control. FormViewPlaceHolder.Controls.Add(employeesFormView); } void EmployeeFormView_ItemDeleting(Object sender, FormViewDeleteEventArgs e) { // Use the sender parameter to retrieve the FormView // control that raised the event. FormView employeeFormView = (FormView)sender; // Retrieve the TitleLabel Label control from the // data row. FormViewRow row = employeeFormView.Row; Label titleLabel = (Label)row.FindControl("TitleLabel"); // 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 (titleLabel.Text.Equals("Sales Manager")) { e.Cancel = true; MessageLabel.Text = "You cannot delete this record."; } } </script> <html> <body> <form runat="server"> <h3>FormViewDeleteEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated FormView control. --> <asp:placeholder id="FormViewPlaceHolder" 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="EmployeeSource" selectcommand="Select [EmployeeID], [LastName], [FirstName], [Title], [PhotoPath] From [Employees]" deletecommand="Delete [Employees] Where [EmployeeID]=@EmployeeID" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
FormViewDeleteEventHandler デリゲートを、宣言によって FormView コントロールの ItemDeleting イベントに追加する方法を次の例に示します。
<%@ Page language="VB" %> <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> <body> <form runat="server"> <h3>FormViewDeleteEventHandler 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="C#" %> <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> <body> <form runat="server"> <h3>FormViewDeleteEventHandler 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>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からFormViewDeleteEventHandler デリゲートを検索する場合は、下記のリンクをクリックしてください。

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