Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ObjectDataSource.TypeName-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft ab oder legt den Namen der Klasse, die die ObjectDataSource -Objekt darstellt.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public string TypeName { get; set; }

Eigenschaftswert

Type: System.String

Eine teilweise oder vollständig qualifizierte Klassenname, der den Typ des Objekts identifiziert, die die ObjectDataSource darstellt. Der Standardwert ist eine leere Zeichenfolge ("").

Zum Erstellen einer Instanz des Objekts, die ObjectDataSource -Steuerelement gebunden ist, das Steuerelement verwendet Reflektion, um den Typ zu laden, die zur Laufzeit durch den Typnamen identifiziert wird. Daher ist der Wert von der TypeName -Eigenschaft kann ein teilweise qualifizierter Typ für Code, der in den Verzeichnissen Bin bzw. App_Code befindet oder einen vollqualifizierten Typnamen für Code, der im globalen Assemblycache registriert sein. Wenn Sie im globalen Assemblycache verwenden, müssen Sie den entsprechenden Verweis hinzufügen der assemblies -Abschnitt der Datei Machine.config oder Web.config.

Der Typ muss über einen Standardkonstruktor verfügen, es sei denn, Sie behandeln die ObjectCreating Ereignis eine Instanz davon erstellen. Eine Instanz des Typs wird für jeden Aufruf erstellt die Select, Update, Insert, und Delete Methoden, wenn die Methoden für den Typ Membermethoden sind. Eine Instanz wird nicht erstellt werden, wenn die Methoden sind static (Shared in Visual Basic). Wenn der Typ implementiert die IDisposable -Schnittstelle, die Dispose Methode wird aufgerufen, bevor das Objekt zerstört wird.

Im folgenden Codebeispiel wird veranschaulicht, wie ein GridView Steuerelement kann Daten anzeigen, indem Sie mit einer ObjectDataSource Steuerelement auf einer Web Forms-Seite. Die ObjectDataSource Gibt einen teilweise oder vollständig qualifizierten Klassennamen mit seiner TypeName -Eigenschaft und eine Methode, die aufgerufen wird, um das Abrufen von Daten mit der SelectMethod Eigenschaft. Zur Laufzeit wird das Objekt erstellt, und die Methode mithilfe von Reflektion aufgerufen wird. Die GridView -Steuerelement durchläuft die IEnumerable -Auflistung, die von zurückgegeben wird die SelectMethod -Eigenschaft und die Daten angezeigt.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="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">
<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" />

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.CS.EmployeeLogic" />

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

Das folgende Beispiel zeigt der Klasse, die die TypeName Eigenschaftswert bezieht sich auf.

namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Collections.Specialized;
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 one can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

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

      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.
        foreach (DataRowView row in IDs) {
          string id = row["EmployeeID"].ToString();
          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(object anID) {
      return new NorthwindEmployee(anID);
    }

    public static void UpdateEmployeeInfo(NorthwindEmployee ne) {
      bool retval = ne.Save();
      if (! retval) { throw new NorthwindDataException("UpdateEmployee failed."); }
    }

    public static void DeleteEmployee(NorthwindEmployee ne) { }

  }

  public class NorthwindEmployee {

    public NorthwindEmployee () {
      ID = DBNull.Value;
      lastName = "";
      firstName = "";
      title="";
      titleOfCourtesy = "";
      reportsTo = -1;
    }

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

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

		SqlConnection conn = new SqlConnection (cts.ConnectionString);
      SqlCommand sc =
        new SqlCommand(" SELECT FirstName,LastName,Title,TitleOfCourtesy,ReportsTo " +
                       " 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();
          this.title            = sdr["Title"].ToString();
          this.titleOfCourtesy  = sdr["TitleOfCourtesy"].ToString();
          if (! sdr.IsDBNull(4)) {
            this.reportsTo        = sdr.GetInt32(4);
          }
        }
        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;

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

    private string firstName;
    public string FirstName {
      get { return firstName; }
      set { firstName = value;  }
    }

    private string title;
    public String Title {
      get { return title; }
      set { title = value; }
    }

    private string titleOfCourtesy;
    public string Courtesy {
      get { return titleOfCourtesy; }
      set { titleOfCourtesy = value; }
    }

    private int    reportsTo;
    public int Supervisor {
      get { return reportsTo; }
      set { reportsTo = value; }
    }

    public bool Save () {
      return true;
    }
  }

  internal class NorthwindDataException: Exception {
    public NorthwindDataException(string msg) : base (msg) { }
  }
}

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: