Laden...

CustomControls, Enum-Attribure und der Designer

Erstellt von Raptor 2101 vor 14 Jahren Letzter Beitrag vor 14 Jahren 878 Views
R
Raptor 2101 Themenstarter:in
119 Beiträge seit 2008
vor 14 Jahren
CustomControls, Enum-Attribure und der Designer

Hallo Community ich hab ein kleines problem, bei dem ich auf dem schlauch stehe. Ich entwickle mir gerade eine CUstomControl für GoogleMaps. Dieses soll, für einfaches deployment, in eine externe Library ausgelagert werden. So weit so gut.

Hier mal der Beispielcode


public enum MapType
  {
    /// <summary>
    /// Stellt eine Straßenkarte dar
    /// </summary>
    Topografphic = 0,
    
    /// <summary>
    /// Stellt eine Karte mittels Satellitenbildern und Luftaufnahmen dar.
    /// </summary>
    Satellite = 1,

    /// <summary>
    /// Ein Mix aus Straßenkarte und Satellitenbildern.
    /// </summary>
    Hybrid = 2,

    /// <summary>
    /// Kiene beschreibung.
    /// </summary>
    Physical = 3
  }
public class GoogleMapControl : Control
  {
    #region Public Propertys

    public string ApiCode { get; set; }

    [Bindable(true), Description("Legt die Höhe der Karte Fest")]
    public Unit Height { get; set; }

    [Bindable(true), Description("Legt die Breite der Karte Fest")]
    public Unit Width { get; set; }

    [Bindable(true), Description("Legt den zu verwndenden MapType fest.")]
    public MapType MapType { get; set; }
}

Erzeuge ich diese File inneherhalb meines Webprojektes und binde dann mittels folgenden ASPx code alles ein, funktioniert alles wunderbar.


<ext:GoogleMapControl ID="mapControl" runat="server" Height="800" Width="800"  MapType="Hybrid" />

lager ich das custom control aber in eine externe library aus, kann ich den MapType nicht mehr über den designercode zuweisen. Im code beheind funktioniert alles, lass ich ihn weg klappt auch alles. Nur wenn ich das ganze wie oben geschriben ausführe kommt folgende Fehlermeldung:
CS1061: "System.Web.UI.ControlCollection" enthält keine Definition für "MapType", und es konnte keine Erweiterungsmethode "MapType" gefunden werden, die ein erstes Argument vom Typ "System.Web.UI.ControlCollection" akzeptiert (Fehlt eine Using-Direktive oder ein Assemblyverweis?).

lass ich den Parameter weg (und nur den) funktioniert wie gesagt alles und ich bekomme ien GoogleMap angezeigt. Ich steh so ein bisschen auf dem schlauch...

P
554 Beiträge seit 2005
vor 14 Jahren

Hast du die Assembly und den Namespace für die CustomControls registriert? (Web.config oder Page direkt)

Beispiel web.config:


<system.web>
    <pages>
      <controls>
        <add assembly="MyAssembly" namespace="MyControls.CustomControls" tagPrefix="cc1" />
      </controls>
    </pages>
</system.web>

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

R
Raptor 2101 Themenstarter:in
119 Beiträge seit 2008
vor 14 Jahren

ja sonst würde die ganze control nicht funktionieren
ich nur irgendwie das gefühl das er nicht weiß wohin der den "MapType" ordnen soll

P
554 Beiträge seit 2005
vor 14 Jahren

Benutzt du irgendwo ne ControlCollection, worauf er versucht zu mappen...?

Oder versuch mal von WebControl abzuleiten.

Hatte eigentl. bisher noch nie Probleme mit Enums und dem Designer.

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

R
Raptor 2101 Themenstarter:in
119 Beiträge seit 2008
vor 14 Jahren

Ob der wechsel auf WebControl hat das Problem gelöst. So wirklich durchsteigen kann ich aber immer noch nicht, welches Magic MS da im Hintergrund wieder treibt 😉