Frage

Ich erstelle eine benutzerdefinierte Verbundsteuerung basiert weg von einem asp: Label-Steuerelement. Ich möchte in der Lage sein, die Standard-Label-Eigenschaften skinable zu haben sowie zusätzliche Eigenschaften, die mich zu meiner Kontrolle hinzufügen.

Aber wenn ich eine Haut Definition auf die Default.skin Datei in meinen Themen Verzeichnis hinzuzufügen, und fügen Sie die Steuerung auf meine Seite mit dem SkinID angegeben, kann ich nicht herausfinden, wie die Kontrolle zu bekommen mit den Enthäutete Eigenschaften zu machen.

Weitere Punkte:

  • My Custom Control wird in einer separaten Bibliothek / DLL definiert.
  • Ich habe eine Testeigenschaft, und hinzugefügt, um das [Themeable (false)] Attribut. Dann habe ich diese Eigenschaft in der .skin Datei. Ich habe nicht alle Fehler, wenn ich versuche, um die Seite anzuzeigen, so scheint es mir, dass die .skin Datei nicht angewandt zu werden oder dass die Steuer def in der Skin-Datei bekommt nicht mit der Steuer def in der abgestimmt aspx Seite.

Von der Skin-Datei:

<ctrl:ExtendedLabel SkinId="test" runat="server"
 Expandable="true" Lookup="true" Required="true"
 RequiredCssClass="required" Text="Hello" />

Von der aspx Seite:

<ctrl:ExtendedLabel SkinID="test" runat="server"/>

Von web.config:

<pages>
  <controls>
     <add tagPrefix="ctrl" namespace="MyCompany.WebControls"
          assembly="MyCompany.Web" />
  </controls>
</pages>

ich eine Test-Eigenschaft auf das Steuerelement hinzugefügt, markierte sie als [Themeable (false)], um zu testen, ob ich den Laufzeitfehler erhalten würde, wenn diese Eigenschaft in der Skin-Datei festlegen. Kein Fehler.

Beachten Sie, dass die Seiten-Tag kein styleSheetTheme Attribut hat. Ich mache jedoch eine Basisseitenklasse, die StyleSheetTheme Eigenschaft überschreibt, die sonst für alles scheint zu funktionieren.

Wenn ich das styleSheetTheme Attribut auf die Seiten-Tag in web.config hinzufügen, die Haut Zeug funktioniert, auch immer den Fehler, wenn ich versuche, die nicht-Themeable Eigenschaft festzulegen.

Was ist der Unterschied? Wie kann ich es mit der Basisseitenklasse Fewokode zu arbeiten?

War es hilfreich?

Lösung

Was bekommen Sie, wenn Sie dies versuchen? Ich habe nur ein einfaches Testprojekt und konnte eine benutzerdefinierte Eigenschaft auf einem Web-Steuerelement, um die Haut. Meine Schritte waren:

  • Erstellen Sie das benutzerdefinierte Steuerelement.
  • Fügen Sie [Themeable (true)] Attribut der Klassendefinition in der Code-Behind-Datei.
  • Fügen Sie ein Label-Steuerelement zu meinen benutzerdefinierten Kontrolle.
  • eine Eigenschaft hinzufügen namens „Labeltext“ zu meinen benutzerdefinierten Steuerelement, das die Label-Steuerelemente Textwert empfängt / setzt.
  • In web.config, fügt 'theme = "TestTheme"' auf den system.web / pages Abschnitt.
  • In web.config, fügen Sie den system.web / pages / steuert Abschnitt ''.
  • In meiner Default.skin Datei hinzugefügt ‚
  • In Default.aspx aufgenommen '

die Seite nach oben einlegen und den Text „Test Text“ sehen, die in der Haut Datei nur vorhanden war.

Hoffentlich eine meiner Schritte werden über etwas, das Sie vergessen haben, aber wenn nicht, bitte aktualisieren Sie Ihre Frage mit Details auf, was Sie versuchen und was Sie sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top