This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ObjectDataSource.DeleteParameters الخاصية

Visual Studio 2010

تطبيق DeleteMethod، ، و يتم توفير أساليب لتمكين تعقب الولاية العرض عنصر تحكم.

مساحة الاسم:  System.Web.UI.WebControls
التجميع:  System.Web (في System.Web.dll)

[PersistenceModeAttribute(PersistenceMode.InnerProperty)]
public ParameterCollection DeleteParameters { get; }

قيمة الخاصية

النوع: System.Web.UI.WebControls.ParameterCollection
إذا قمت بالنقر فوق ParameterCollectionيحذف زر، عملية اليحذف هو تنفيذ باستخدام الأسلوب الذي هو المحدد بواسطة خاصية أو أي معلمات محددة في مجموعة.DeleteMethod

DeleteParameters تفويض هو استدعاء لمعالجة DeleteMethodحدث قبل تشغيل هو تنفيذ و تفويض هو استدعاء لمعالجة حدث بعد اكتمال تشغيل لتقوم بمعالجة ‏‏ استثناء. في ترتيب هو المثال تعليمات برمجية، إذا OldValuesParameterFormatStringهو طرح، هو التي تمت معالجتها بواسطة الأسلوب. يظهر المثال تعليمات برمجية التالي الفئة التي هو المستخدمة في السابق رمز المثال. الحصول أو تعيين اسم الأسلوب أو دالة Deleteعنصر تحكم استدعاء لحذف بيانات.استخدام معلمات مع التحكم ObjectDataSource

إذا قمت بتغيير DeleteParametersخاصية، DeleteParametersحدث هو raهوed، يسبب أية عناصر تحكم ترتبط ObjectDataSourceViewrebind.ObjectDataSource

DeleteMethod خاصية هو معينة إلى "EmployeeDetails"، ولكن يمكن لأي القيمة سلسلة العمل المفتاح.

هذا مقطع يحتوي على الثاني بالتعليمات البرمجية الأمثلة. The first code example demonstrates how to use an ObjectDataSource object with a business object and a GridView control to delete data. The third مثال shows the data access فئة that interacts with the Northwind database.EmployeeLogic

The following code example demonstrates how to use the DeleteParameters property of the ObjectDataSource control with a business object and a GridView control to delete data. Initially, the GridView control displays a set of all employees, using the method that is specified by the SelectMethod property to retrieve the data from the EmployeeLogic object. لأن AutoGenerateDeleteButtonخاصية هو تعيين إلى true، GridViewالتحكم تلقائياً dهوplays الزر يحذف .

If you click the Delete button, the Deleting event is called with two parameters. يمكنك معالجة EmpIDو DataGridالأحداث للعمل مع كائن الأعمال قبل DataKeyNamesخاصية هو تسمى. يمكنك أيضا معالجة DeleteParametersالأحداث التي هو raهوed بعد خاصية هو تسمى. كائن الأعمال يقوم بتنفيذ EmployeeLogicالواجهة، DeleteEmployeeأسلوب هو المسمى من قبل الكائن هو إتلاف. إذا كان الأسلوب هو أسلوب NorthwindEmployee(Int32في Vهوual أساسى) ، الكائن العمل هو مطلقا بإنشائها والتي لا يمكن معالجتها anID، ، و الأحداث. In the Deleting event, the entries in the InputParameters property are adjusted to include only one parameter named anID with the value from original_EmpID. تتم تمت الإضافة معلمات إلى DeleteEmployeeمجموعة من ثلاثة المصادر:

The following code example shows the Web page that displays the DataGrid control and handles the Deleting event.


<%@ 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)
{
  IDictionary paramsFromPage = e.InputParameters;

  paramsFromPage.Remove("anID");
  paramsFromPage.Add("anID", (int)paramsFromPage["EmpID"]);
  paramsFromPage.Remove("EmpID");

}
</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"
          DataKeyNames="EmpID">
        </asp:gridview>

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

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


وبدلاً من تحديد العديد من المعلمات التي تم تمريرها إلى EmployeeLogic، ، و وظائف، يمكنك إنشاء كائن واحد تجمع عدة حقل البيانات قيم.


namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates
  // the operations you can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees () {
      ArrayList al = new ArrayList();

      // Use the SqlDataSource class to wrap the
      // ADO.NET code required to query the database.
      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

      SqlDataSource sds
        = new SqlDataSource(cts.ConnectionString,
                            "SELECT EmployeeID FROM Employees");
      try {
        IEnumerable IDs = sds.Select(DataSourceSelectArguments.Empty);

        // Iterate through the Enumeration and create a
        // NorthwindEmployee object for each ID.
        IEnumerator enumerator = IDs.GetEnumerator();
        while (enumerator.MoveNext()) {
          // The IEnumerable contains DataRowView objects.
          DataRowView row = enumerator.Current as DataRowView;
          int id = (int) row["EmployeeID"];
          NorthwindEmployee nwe = new NorthwindEmployee(id);
          // Add the NorthwindEmployee object to the collection.
          al.Add(nwe);
        }
      }
      finally {
        // If anything strange happens, clean up.
        sds.Dispose();
      }

      return al;
    }

    public static NorthwindEmployee GetEmployee(int anID) {
      return new NorthwindEmployee(anID);
    }

    public static void DeleteEmployee(NorthwindEmployee ne) {
      bool retval = ne.Delete();
      if (! retval) { throw new NorthwindDataException("Employee delete failed."); }
      // Delete the object in memory.
      ne = null;
    }

    public static void DeleteEmployee(int anID) {
        NorthwindEmployee tempEmp = new NorthwindEmployee(anID);
        DeleteEmployee(tempEmp);
    }
  }
  public class NorthwindEmployee {

    public NorthwindEmployee (int anID) {
      this.ID = anID;

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];
      SqlConnection conn = new SqlConnection (cts.ConnectionString);
      SqlCommand sc =
        new SqlCommand(" SELECT FirstName,LastName " +
                       " FROM Employees " +
                       " WHERE EmployeeID = @empId",
                       conn);
      // Add the employee ID parameter and set its value.
      sc.Parameters.Add(new SqlParameter("@empId",SqlDbType.Int)).Value = Int32.Parse(anID.ToString());
      SqlDataReader sdr = null;

      try {
        conn.Open();
        sdr = sc.ExecuteReader();

        // This is not a while loop. It only loops once.
        if (sdr != null && sdr.Read()) {
          // The IEnumerable contains DataRowView objects.
          this.firstName        = sdr["FirstName"].ToString();
          this.lastName         = sdr["LastName"].ToString();
        }
        else {
          throw new NorthwindDataException("Data not loaded for employee id.");
        }
      }
      finally {
        try {
          if (sdr != null) sdr.Close();
          conn.Close();
        }
        catch (SqlException) {
          // Log an event in the Application Event Log.
          throw;
        }
      }
    }

    private object ID;
    public object EmpID {
      get { return ID; }
    }

    private string lastName;
    public string LastName {
      get { return lastName; }
      set { lastName = value; }
    }

    private string firstName;
    public string FirstName {
      get { return firstName; }
      set { firstName = value;  }
    }
    public bool Delete () {
      if (ID.Equals(DBNull.Value)) {
        // The Employee object is not persisted.
        return true;
      }
      else {
        // The Employee object is persisted.
        // Use the SqlDataSource control as a convenient wrapper for
        // the ADO.NET code needed to delete a record from the database.
        ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];
        SqlDataSource sds = new SqlDataSource();
        try {
          sds.ConnectionString = cts.ConnectionString;
          sds.DeleteCommand = "DELETE FROM Employees WHERE EmployeeID=@empID;";
          sds.DeleteParameters.Add(new Parameter("empID",TypeCode.Int32,this.ID.ToString()));

          /* To make this sample fully functional, uncomment these lines
          int retval = sds.Delete();
          if (retval == 1) { return true; }
          return false; */

          return true;
        }
        finally {
          sds.Dispose();
        }
      }
    }
  }
  internal class NorthwindDataException: Exception {
    public NorthwindDataException(string msg) : base (msg) { }
  }
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: