Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 10 Webserversteuerelemente selbst erstellen
|  | 10.1 Benutzersteuerelemente (User Controls)
|  |  | 10.1.1 Ein einfaches Benutzersteuerelement erstellen
|  |  | 10.1.2 Die Control-Direktive
|  |  | 10.1.3 Die Register-Direktive für Benutzersteuerelemente verwenden
|  |  | 10.1.4 Die Basisklasse UserControl
|  |  | 10.1.5 Eigenschaften für Benutzersteuerelemente definieren
|  |  | 10.1.6 In Benutzersteuerelementen auf Ereignisse reagieren
|  | 10.2 Benutzerdefinierte Steuerelemente (Custom Controls)
|  |  | 10.2.1 Eine zählende Schaltfläche
## 10.2 Benutzerdefinierte Steuerelemente (Custom Controls) Benutzersteuerelemente sind Ausschnitte aus aspx-Seiten und mischen dementsprechend HTML- und Skript-Anteile. Im Unterschied dazu sind benutzerdefinierte Steuerelemente Klassen, die ausschließlich auf der Basis von VB.NET- beziehungsweise C#-Code aufgebaut werden. Unter ASP.NET haben Sie verschiedene Möglichkeiten, eigene Steuerelemente zu entwickeln. Die Dokumentation nennt drei prinzipielle Möglichkeiten.
| Wenn Sie ein vorhandenes Webserversteuerelement um einige Merkmale erweitern möchten, dann können Sie ein eigenes Steuerelement von dieser Basisklasse ableiten und lediglich die zusätzlich gewünschten Merkmale ergänzen.
| Sie können mehrere Steuerelemente zu einem zusammengesetzten Steuerelement verbinden.
| Sie können ein völlig eigenes Steuerelement entwickeln, indem Sie eine Klasse beispielsweise von der Basisklasse Control direkt ableiten und alle Funktionen selbst programmieren.
Je nach Aufgabenstellung kann die Entwicklung von benutzerdefinierten Steuerelementen sehr komplex werden. Im Rahmen dieses Buches möchte ich lediglich demonstrieren, wie Sie ein eigenes Steuerelement von einem vorhandenen Webserversteuerelement ableiten können. Als einfaches Beispiel soll eine Schaltfläche dienen, die auf ihrer Beschriftung anzeigt, wie oft sie angeklickt wurde. ### 10.2.1 Eine zählende Schaltfläche zaehlbutton01.vb enthält den Code für die Klasse, die die zählende Schaltfläche realisiert. Zunächst müssen Sie hier mit einigen Imports-Befehlen die benötigten Namensräume einbinden.
    Imports System
    Imports System.ComponentModel
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
Als Nächstes müssen Sie auf jeden Fall einen eigenen Namensraum angeben. Das Beispiel verwendet die Bezeichnung meineControls. Die Klasse für Ihr eigenes Steuerelement muss innerhalb dieses Namensraums liegen.
    Namespace meineControls
    ' ...
    End Namespace
Die Klasse für die zählende Schaltfläche leiten Sie von der Basisklasse Button ab, so dass sich diese Signatur ergibt:
    Public Class zaehlbutton
                 Inherits System.Web.UI.WebControls.Button
    ' ...
    End Class
Im Konstruktor geben Sie die Beschriftung der Schaltfläche an. Außerdem merken Sie sich im ViewState, dass die Schaltfläche bislang noch nicht aufgerufen wurde, vergeben also den Zähler 0.
       Public Sub New()
          Me.Text = "0-mal angeklickt"
          ViewState("AnzahlClicks") = 0
       End Sub
Die Funktionalität selbst, dass die Schaltfläche beim Anklicken ihre Beschriftung ändert und die Anzahl der Klicks mitzählt, realisieren Sie, indem Sie die Ereignisprozedur für das Click-Ereignis überschreiben. Innerhalb der Methode OnClick inkrementieren Sie den im ViewState gespeicherten Zähler, definieren die Beschriftung neu und reichen das Click-Ereignis anschließend zur weiteren Bearbeitung an die OnClick-Methode der Basisklasse weiter. Die Klasse zaehlbutton01.vb hat damit insgesamt diese Form:
    ' zaehlbutton01.vb
    Imports System
    Imports System.ComponentModel
    Imports System.Web.UI
    Imports System.Web.UI.WebControls

    Namespace meineControls
    Public Class zaehlbutton
                 Inherits System.Web.UI.WebControls.Button
       Public Sub New()
          Me.Text = "0-mal angeklickt"
          ViewState("AnzahlClicks") = 0
       End Sub

       Protected Overrides Sub OnClick _
                               (ByVal e As EventArgs)
          ViewState("AnzahlClicks") = _
                     CInt (ViewState("AnzahlClicks")) + 1
          Me.Text = CStr(ViewState("AnzahlClicks")) _
                    & "-mal angeklickt"
          MyBase.OnClick(e)
       End Sub

    End Class
    End Namespace
Dann stellt sich die Aufgabe, diese selbst erstellte Klasse zu kompilieren. Der Aufruf für den Kommandozeilencompiler lautet:
    vbc /t:library /out:zaehlbutton01.dll zaehlbutton01.vb /r:System.dll /r:System.Web.dll
Mit /t:library geben Sie an, dass eine dll-Datei (und keine exe-Datei) erstellt werden soll. Mit /out:zaehlbutton01.dll definieren Sie den Namen der zu erstellenden Datei. Anschließend nennt zaehlbutton01.vb den Namen der Quelldatei. Mit /r:System.dll und /r:System.Web.dll geben Sie die benötigten Verweise an. Der Compiler erstellt die Datei zaehlbutton01.dll. Diese dll-Datei kopieren Sie anschließend in das /bin-Verzeichnis Ihrer Webanwendung. zaehlbutton01.aspx ruft das selbst erstellte Steuerelement auf.
    <!-- zaehlbutton01.aspx -->
    <%@ Page Language="VB" Debug="True" Strict="True" %>
    <%@ Register TagPrefix="mlohrer"
                 Namespace="meineControls"
                 Assembly="zaehlbutton01" %>
    <html><head><title>Zähl-Button</title></head>
    <body>
    <h3>Gezählt!</h3>
    <form runat="server">
    <mlohrer:zaehlbutton runat="server" />
    </form></body></html>
In der aspx-Seite müssen Sie das selbst erstellte Steuerelement zunächst mit der Register-Direktive registrieren. Mit dem Attribut TagPrefix legen Sie ein Präfix fest, das Sie innerhalb der aspx-Seite für Ihr eigenes Steuerelement verwenden. Mit dem Attribut Namespace geben Sie den Namensraum an, den Sie innerhalb der VB-Datei festgelegt haben. Mit dem Attribut Assembly geben Sie den Namen der dll-Datei an, die Ihr selbst erstelltes Steuerelement enthält. Abbildung 10.3 zeigt die Darstellung im Browser. Jedes Mal, wenn die Schaltfläche angeklickt wird, zählt sie in der Beschriftung mit. Hier klicken, um das Bild zu Vergrößern Abbildung 10.3 Das selbst erstellte Steuerelement zählt, wie oft es angeklickt wurde.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de