ObjectDataSourceView.DeleteMethod Özellik

Tanım

Nesnenin verileri silmek için çağırdığını yöntem veya işlevin ObjectDataSourceView adını alır veya ayarlar.

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

Özellik Değeri

Veri silmek için kullandığı yöntemin veya işlevin ObjectDataSourceView adını temsil eden bir dize. Varsayılan değer, boş dizedir ("").

Örnekler

Aşağıdaki kod örneği, verileri silmek için bir ObjectDataSource iş nesnesi ve GridView bir denetimle bir denetimin nasıl kullanılacağını gösterir. başlangıçta GridView , nesnesinden verileri almak için özelliği tarafından SelectMethod belirtilen yöntemi kullanarak tüm çalışanlardan oluşan EmployeeLogic bir küme görüntüler. AutoGenerateDeleteButton özelliği olarak ayarlandığındantrueGridView, denetim otomatik olarak bir Sil düğmesi görüntüler.

Sil düğmesine tıklarsanız, Delete işlem özelliği tarafından DeleteMethod belirtilen yöntem ve koleksiyonda DeleteParameters belirtilen parametreler kullanılarak gerçekleştirilir. Bu kod örneğinde bazı ön işleme ve işlem sonrası adımları da gerçekleştirilir. TemsilciNorthwindEmployeeDeleting, işlem gerçekleştirilmeden önce Delete olayı işlemek Deleting için çağrılır ve NorthwindEmployeeDeleted bir özel durum işleme gerçekleştirmek için, işlem tamamlandıktan sonra Delete olayı işlemek Deleted için temsilci çağrılır. Bu örnekte, bir NorthwindDataException oluşturulursa, bu temsilci tarafından işlenir.

Bu kod örneğinin EmployeeLogic kullandığı orta katman iş nesnesinin uygulamasını incelemek için bkz 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>

Açıklamalar

özelliği tarafından DeleteMethod tanımlanan yöntem bir örnek yöntemi veya static (Shared Visual Basic'te) yöntemi olabilir. Bu bir örnek yöntemiyse, özelliği tarafından DeleteMethod belirtilen yöntem her çağrıldığında iş nesnesi oluşturulur ve yok edilir. özelliği tarafından DeleteMethod belirtilen yöntem çağrılmadan önce iş nesnesiyle çalışmak için olayı işleyebilirsinizObjectCreated. Özelliği tarafından DeleteMethod belirtilen yöntem çağrıldıktan sonra tetiklenen olayı da işleyebilirsinizObjectDisposing. Yöntem bir static (Shared Visual Basic'te) yöntemiyse, iş nesnesi hiçbir zaman oluşturulmaz ve bu olayları işleyemezsiniz.

Denetimin ObjectDataSource birlikte çalıştığı iş nesnesi aynı ada sahip birden fazla yöntem veya işlev uygularsa (yöntem aşırı yüklemeleri), veri kaynağı denetimi koleksiyondaki parametreler de dahil olmak üzere bir dizi koşula göre doğru olanı çağırmaya DeleteParameters çalışır. Koleksiyondaki DeleteParameters parametreler yöntem imzasının parametreleriyle DeleteMethod eşleşmiyorsa, veri kaynağı bir özel durum oluşturur.

özelliğinin DeleteMethod değeri görünüm durumunda depolanır.

Daha fazla bilgi için bkz. DeleteMethod.

Şunlara uygulanır

Ayrıca bkz.