Bagikan melalui


ObjectDataSourceView.DeleteMethod Properti

Definisi

Mendapatkan atau mengatur nama metode atau fungsi yang ObjectDataSourceView dipanggil objek untuk menghapus data.

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

Nilai Properti

String yang mewakili nama metode atau fungsi yang ObjectDataSourceView digunakan untuk menghapus data. Defaultnya adalah string kosong ("").

Contoh

Contoh kode berikut menunjukkan cara menggunakan ObjectDataSource kontrol dengan objek bisnis dan GridView kontrol untuk menghapus data. Awalnya GridView menampilkan sekumpulan semua karyawan, menggunakan metode yang ditentukan oleh SelectMethod properti untuk mengambil data dari EmployeeLogic objek . AutoGenerateDeleteButton Karena properti diatur ke true, GridView kontrol secara otomatis menampilkan tombol Hapus.

Jika Anda mengklik tombol Hapus , Delete operasi dilakukan menggunakan metode yang ditentukan oleh DeleteMethod properti dan parameter apa pun yang ditentukan dalam DeleteParameters koleksi. Dalam contoh kode ini, beberapa langkah praproses dan pasca-pemrosesan juga dilakukan. NorthwindEmployeeDeleting Delegasi dipanggil untuk menangani Deleting peristiwa sebelum Delete operasi dilakukan, dan NorthwindEmployeeDeleted delegasi dipanggil untuk menangani Deleted peristiwa setelah Delete operasi selesai, untuk melakukan penanganan pengecualian. Dalam contoh ini, jika dilemparkan NorthwindDataException , itu ditangani oleh delegasi ini.

Untuk memeriksa implementasi EmployeeLogic objek bisnis tingkat menengah yang digunakan contoh kode ini, lihat 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>

Keterangan

Metode yang diidentifikasi oleh DeleteMethod properti dapat menjadi metode instans atau static metode (Shared dalam Visual Basic). Jika ini adalah metode instans, objek bisnis dibuat dan dihancurkan setiap kali metode yang ditentukan oleh DeleteMethod properti dipanggil. Anda dapat menangani ObjectCreated peristiwa untuk bekerja dengan objek bisnis sebelum metode yang ditentukan oleh DeleteMethod properti dipanggil. Anda juga dapat menangani ObjectDisposing peristiwa yang dimunculkan setelah metode yang ditentukan oleh DeleteMethod properti dipanggil. Jika metodenya adalah static metode (Shared dalam Visual Basic), objek bisnis tidak pernah dibuat dan Anda tidak dapat menangani peristiwa ini.

Jika objek bisnis yang ObjectDataSource bekerja dengan kontrol menerapkan lebih dari satu metode atau fungsi dengan nama yang sama (metode kelebihan beban), kontrol sumber data mencoba memanggil yang benar sesuai dengan serangkaian kondisi, termasuk parameter dalam DeleteParameters koleksi. Jika parameter dalam DeleteParameters koleksi tidak cocok DeleteMethod dengan tanda tangan metode, sumber data akan memberikan pengecualian.

Nilai DeleteMethod properti disimpan dalam status tampilan.

Untuk informasi selengkapnya, lihat DeleteMethod.

Berlaku untuk

Lihat juga