Freigeben über


ObjectDataSourceView.DeleteMethod Eigenschaft

Definition

Ruft den Namen der Methode oder der Funktion auf, die vom ObjectDataSourceView-Objekt zum Löschen von Daten aufgerufen wird, oder legt diesen fest.

public:
 property System::String ^ DeleteMethod { System::String ^ get(); void set(System::String ^ value); };
public string DeleteMethod { get; set; }
member this.DeleteMethod : string with get, set
Public Property DeleteMethod As String

Eigenschaftswert

Eine Zeichenfolge, die den Namen der Methode oder der Funktion darstellt, mit deren Hilfe die ObjectDataSourceView Daten löscht. Der Standardwert ist eine leere Zeichenfolge ("").

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein ObjectDataSource -Steuerelement mit einem Geschäftsobjekt und einem GridView -Steuerelement zum Löschen von Daten verwenden. Die GridView zeigt zunächst eine Gruppe aller Mitarbeiter an, wobei die methode verwendet wird, die von der SelectMethod -Eigenschaft angegeben wird, um die Daten aus dem EmployeeLogic -Objekt abzurufen. Da die AutoGenerateDeleteButton -Eigenschaft auf truefestgelegt ist, zeigt das GridView Steuerelement automatisch die Schaltfläche Löschen an.

Wenn Sie auf die Schaltfläche Löschen klicken, wird der Delete Vorgang mit der Methode ausgeführt, die von der DeleteMethod -Eigenschaft angegeben wird, und allen Parametern, die in der DeleteParameters Auflistung angegeben sind. In diesem Codebeispiel werden auch einige Vor- und Nachverarbeitungsschritte ausgeführt. Der NorthwindEmployeeDeleting Delegat wird aufgerufen, um das Deleting Ereignis zu behandeln, bevor der Delete Vorgang ausgeführt wird, und der NorthwindEmployeeDeleted Delegat wird aufgerufen, um das Deleted Ereignis nach Abschluss des Delete Vorgangs zu behandeln, um eine Ausnahmebehandlung auszuführen. Wenn in diesem Beispiel ein NorthwindDataException ausgelöst wird, wird es von diesem Delegaten behandelt.

Informationen zur Implementierung des Geschäftsobjekts der EmployeeLogic mittleren Ebene, das in diesem Codebeispiel verwendet wird, finden Sie unter ObjectDataSourceStatusEventArgs.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ 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">
private void NorthwindEmployeeDeleting(object source, ObjectDataSourceMethodEventArgs e)
{
  // The GridView passes the ID of the employee
  // to be deleted. However, the buisiness object, EmployeeLogic,
  // requires a NorthwindEmployee parameter, named "ne". Create
  // it now and add it to the parameters collection.
  IDictionary paramsFromPage = e.InputParameters;
  if (paramsFromPage["EmpID"] != null) {
    NorthwindEmployee ne
      = new NorthwindEmployee( Int32.Parse(paramsFromPage["EmpID"].ToString()));
    // Remove the old EmpID parameter.
    paramsFromPage.Clear();
    paramsFromPage.Add("ne", ne);
  }
}

private void NorthwindEmployeeDeleted(object source, ObjectDataSourceStatusEventArgs e)
{
  // Handle the Exception if it is a NorthwindDataException
  if (e.Exception != null)
  {

    // Handle the specific exception type. The ObjectDataSource wraps
    // any Exceptions in a TargetInvokationException wrapper, so
    // check the InnerException property for expected Exception types.
    if (e.Exception.InnerException is NorthwindDataException)
    {
      Label1.Text = e.Exception.InnerException.Message;
      // Because the exception is handled, there is
      // no reason to throw it.
      e.ExceptionHandled = true;
    }
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1"
          autogeneratedeletebutton="true"
          autogeneratecolumns="false"
          datakeynames="EmpID">
          <columns>
            <asp:boundfield headertext="EmpID" datafield="EmpID" />
            <asp:boundfield headertext="First Name" datafield="FirstName" />
            <asp:boundfield headertext="Last Name" datafield="LastName" />
          </columns>
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          deletemethod="DeleteEmployee"
          ondeleting="NorthwindEmployeeDeleting"
          ondeleted="NorthwindEmployeeDeleted"
          typename="Samples.AspNet.CS.EmployeeLogic">
          <deleteparameters>
            <asp:parameter name="EmpID" type="Int32" />
          </deleteparameters>
        </asp:objectdatasource>

        <asp:label id="Label1" runat="server" />

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ 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">
' Called before a Delete operation.
    Private Sub NorthwindEmployeeDeleting(ByVal source As Object, ByVal e As ObjectDataSourceMethodEventArgs)

        ' The GridView passes the ID of the employee
        ' to be deleted. However, the business object, EmployeeLogic,
        ' requires a NorthwindEmployee parameter, named "ne". Create
        ' it now and add it to the parameters collection.
        Dim paramsFromPage As IDictionary = e.InputParameters
  
        If Not paramsFromPage("EmpID") Is Nothing Then
    
            Dim ne As New NorthwindEmployee(paramsFromPage("EmpID").ToString())
            ' Remove the old EmpID parameter.
            paramsFromPage.Clear()
            paramsFromPage.Add("ne", ne)
    
    
        End If
    End Sub ' NorthwindEmployeeDeleting

    ' Called after a Delete operation.
    Private Sub NorthwindEmployeeDeleted(ByVal source As Object, ByVal e As ObjectDataSourceStatusEventArgs)
        ' Handle the Exception if it is a NorthwindDataException.
        If Not e.Exception Is Nothing Then

            ' Handle the specific exception type. The ObjectDataSource wraps
            ' any Exceptions in a TargetInvokationException wrapper, so
            ' check the InnerException property for the expected Exception types.
            If e.Exception.InnerException.GetType().Equals(GetType(NorthwindDataException)) Then

                Label1.Text = e.Exception.InnerException.Message
                ' Because the exception is handled, there is
                ' no reason to throw it.
                e.ExceptionHandled = True
      
            End If
        End If
    End Sub ' NorthwindEmployeeDeleted
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1"
          autogeneratedeletebutton="true"
          autogeneratecolumns="false"
          datakeynames="EmpID">
          <columns>
            <asp:boundfield headertext="EmpID" datafield="EmpID" />
            <asp:boundfield headertext="First Name" datafield="FirstName" />
            <asp:boundfield headertext="Last Name" datafield="LastName" />
          </columns>
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          deletemethod="DeleteEmployee"
          ondeleting="NorthwindEmployeeDeleting"
          ondeleted="NorthwindEmployeeDeleted"
          typename="Samples.AspNet.VB.EmployeeLogic">
          <deleteparameters>
            <asp:parameter name="EmpID" type="Int32" />
          </deleteparameters>
        </asp:objectdatasource>

        <asp:label id="Label1" runat="server" />

    </form>
  </body>
</html>

Hinweise

Die Methode, die durch die DeleteMethod -Eigenschaft identifiziert wird, kann eine instance-Methode oder eine static (Shared in Visual Basic) -Methode sein. Wenn es sich um eine instance-Methode handelt, wird das Geschäftsobjekt jedes Mal erstellt und zerstört, wenn die von der DeleteMethod -Eigenschaft angegebene Methode aufgerufen wird. Sie können das ObjectCreated Ereignis behandeln, um mit dem Geschäftsobjekt zu arbeiten, bevor die von der DeleteMethod -Eigenschaft angegebene Methode aufgerufen wird. Sie können auch das ObjectDisposing Ereignis behandeln, das ausgelöst wird, nachdem die durch die DeleteMethod -Eigenschaft angegebene Methode aufgerufen wurde. Wenn es sich bei der Methode um eine static (Shared in Visual Basic)-Methode handelt, wird das Geschäftsobjekt nie erstellt, und Sie können diese Ereignisse nicht verarbeiten.

Wenn das Geschäftsobjekt, mit dem das ObjectDataSource Steuerelement arbeitet, mehr als eine Methode oder Funktion mit demselben Namen (Methodenüberladungen) implementiert, versucht das Datenquellensteuerelement, die richtige methode gemäß einer Reihe von Bedingungen aufzurufen, einschließlich der Parameter in der DeleteParameters Auflistung. Wenn die Parameter in der DeleteParameters Auflistung nicht mit denen der DeleteMethod Methodensignatur übereinstimmen, löst die Datenquelle eine Ausnahme aus.

Der Wert der DeleteMethod Eigenschaft wird im Ansichtszustand gespeichert.

Weitere Informationen finden Sie unter DeleteMethod.

Gilt für:

Weitere Informationen