Peter Bucher - Mein Experiment, meine Spielereien, meine Welt...   ·   Stefan Falz   ·   Jürgen Gutsch   ·   Golo Roden   ·   ASP.NET Zone   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

UserControl und CustomControls per web.config verfuegbar machen

In grösseren Projekten sammeln sich im optimalen Fall natürlich auch eine grosse Menge an Controls an.
Diese müssen im Normallfall per Register Direktive in jeder ASPX Seite registriert und somit verfügbar gemacht werden.

Es ist ab ASP.NET 2.0 aber auch möglich, die Controls per web.config Global zu registrieren.
Das hat den Vorteil, das die Registrierung auf jeder Seite entfällt.
Es ergeben sich dabei auch keine Nachteile, denn per Intellisense sieht man auch sofort, welche Controls verfügbar sind.

Ein UserControl bezieht sich immer auf eine physisch vorhandene Datei, deshalb muss ein UserControl ein wenig anders registriert werden, als ein CustomControl. Folgend zeige ich beide Wege auf.

Allgemein
Wir editieren in der web.config den Zweig <system.web>, bei einem neuen Projekt sind die benötigten Unterzweige noch nicht vorhanden.
Als Grundlage verwenden wir die folgende Dekleration:


<system.web>
    <pages>
        <controls>
        </controls>
    </pages>
[...]

 

UserControls verfügbar machen
Für UserControls werden drei Attribute benötigt.

  • tagPrefix
  • tagName
  • src

tagPrefix ist - wie der Name schon sagt - der Präfix des Controls. Bei Original ASP.NET Controls ist das asp.
tagName bestimmt den Namen des Controls im deklerativen Code.
src         gibt die Quell ASCX Datei des Controls an.

Beispieldeklaration:


<controls>
    <add tagPrefix="t4m" tagName="TestUserControl" src="~/UserControls/TestUserControl.ascx" />
</controls>

Das Tilde Zeichen repräsentiert den Root Pfad des Projektes.
In diesem Fall befindet sich die ASCX Datei im folgenden Pfad: <Projektroot>/UserControls/

 

CustomControls verfügbar machen

Ja, bei CustomControl sind auch drei, jedoch andere :-)

  • tagPrefix
  • namespace
  • assembly

tagPrefix (siehe oben)
namespace gibt den Namespace an, in dem das Control zu finden ist
assembly    gibt den Assembly Namen des Controls an (Meist der Name des Controls)

 

Beispieldeklaration:


<controls>
    <add tagPrefix="t4m" namespace="t4m.Controls" assembly="TestCustomControl" />
</controls>

 

Ab dem Moment an dem die web.config gespeichert wurde, wird auch Intellisense in Visual Studio für die Controls aktiv:

Anbei findet ihr noch ein Beispiel zum Download.
Das beinhaltet eine Web Applikation mit einem User- und CustomControl.
Beim CustomControl ist noch darauf zu achten, das eine Referenz auf das Projekt bzw. die Dll zu erledigen ist, bevor das Control erkannt wird.

Via Kai und Kai :-)

Veröffentlicht Donnerstag, 27. September 2007 19:55 von Peter Bucher

Kommentare

# Ein simples Listen Menü mit ASP.NET

Das mitgelieferte Menü Control von ASP.NET rendert Tabellen und vieles unnötiges Markup. Mit den CSS

Dienstag, 1. April 2008 19:48 by Peter Bucher

# Events für User- und CustomControls definieren und benutzen

In der Welt von ASP.NET gibt es - im Gegensatz zu Classic ASP - ein Eventsystem das in der ASP.NET Engine

Donnerstag, 12. Juni 2008 21:45 by Peter Bucher

# CustomControl im App_Code registrieren

In einem WebSite-Project (Siehe: VS2008 ASP.NET Web Application Project und Kommentare dazu) gibt es

Freitag, 20. Juni 2008 13:26 by Peter Bucher

# CustomControl im App_Code Ordner registrieren

In einem WebSite-Project (Siehe: VS2008 ASP.NET Web Application Project und Kommentare dazu) gibt es

Freitag, 20. Juni 2008 13:27 by Peter Bucher
Anonyme Kommentare sind nicht zugelassen