Freigeben über


Erweitern von Funktionen durch Vererbung

Aktualisiert: November 2007

Neben den Benutzersteuerelementen kann auch Vererbung als Verfahren zum Erweitern der Funktionen der ASP.NET Mobile-Webseiten verwendet werden. Wenn Sie eine Klasse erstellen, die von einer bestehenden ASP.NET Mobile-Steuerelementklasse erbt, können Sie durch Überschreiben vorhandener Member oder Erstellen neuer Eigenschaften, Methoden und Ereignisse für die Klasse Funktionen hinzufügen.

Erstellen einer Klasse durch Vererbung

Das folgende Codebeispiel zeigt eine neue Klasse mit dem Namen CarList, die vom mobilen List-Steuerelement erbt und darauf spezialisiert ist, Informationen aus dem Automobilbereich wiederzugeben. Die CarList-Klasse kapselt die Informationen, die zum Binden an eine Liste von Car-Objekten erforderlich sind.

using System.Web.UI.MobileControls;

namespace myCompany.MobileControls
{
    class CarList : List
    {
        // Override OnInit, and set the DataValueField property
        // to the correct property of a Car object to use as the 
        // value of each list item.
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            this.DataValueField = "id";
        }
    
        // Override OnItemDataBind, and set the list item display 
        // text to a rich expression, containing the year, make, 
        // and model of the car.
        protected override void OnItemDataBind(ListDataBindEventArgs e)
        {
            base.OnItemDataBind(e);

            CarInfo car = (Car)e.DataItem;
            e.ListItem.Text = 
              String.Format("{0}{1}{2}", car.Year, car.Make, car.Model);
        }
    }
}

Ein detaillierteres Beispiel für das Erweitern der Funktionen des Steuerelements durch Vererbung finden Sie in den ASP.NET Mobile-Schnellstart-Lernprogrammen.

Bereitstellen einer neuen Klasse

Um diese Beispielklasse zu verwenden, kompilieren Sie die Klasse in eine Assembly und speichern diese im Bin-Ordner der Anwendung. Das folgende Beispiel zeigt, wie die Assembly MyCompany.CarlList.dll registriert wird. Mithilfe der @ Register-Direktive und unter Angabe eines benutzerdefinierten Tags registrieren Sie die Assembly auf einer Seite.

<%-- Register the myCompany.MobileControls namespace. --%>
<%@ Register TagPrefix="car" Namespace="myCompany.MobileControls" 
    Assembly="myCompany.CarList" %>
    // More code.
    <%-- Control declaration --%>
    <car:CarList id="myCarList"  />

Wenn das vererbte Steuerelement die Wiedergabefunktionen der übergeordneten Klasse nicht ändert, müssen Sie keinen Adapter für die Klasse schreiben. Da jedes CarList-Steuerelement auch ein List-Objekt ist, wird im vorherigen Beispiel der Adapter, der dem List-Steuerelement für den aktuellen Browser zugeordnet ist (z. B. der HtmlListAdapter), automatisch verwendet. Wenn Sie allerdings eine besondere Wiedergabe des CarList-Steuerelements für ein bestimmtes Gerät bereitstellen möchten, können Sie einen Adapter schreiben und die Zuordnung in der Datei Web.config registrieren.

Siehe auch

Weitere Ressourcen

Hinzufügen neuer Geräteadapter und Gerätunterstützung

Erstellen von benutzerdefinierten mobilen Steuerelementen