UserControl verfügt nicht über die öffentliche Eigenschaft ContentTemplate

9

Diese Frage wurde schon einige Male gestellt. aber wurde nie gelöst.

Ich habe eine UpdatePanel

%Vor%

Aber der visuelle Seite Designer in Visual Studio (2010 (Professional (Windows (7 (Professional (64-Bit)))))) gibt den Fehler:

  

Fehler beim Erstellen der Kontrolle - UpdatePanelSetupToolbar

     

Typ 'System.Web.UI.UserControl' hat keine öffentliche Eigenschaft namens 'ContentTemplate'.


Bearbeiten: hübsche Farben in hübschen Screenshots werden für den hübschen Effekt hinzugefügt

Genau genommen trifft das nun zu: UserControl nicht haben eine öffentliche Eigenschaft namens ContentTemplate .

Glücklicherweise ist mein UpdatePanel ein UpdatePanel und hat eine öffentliche Eigenschaft namens 'ContentTemplate' .

Wie kann ich Visual Studio überzeugen, dass mein UpdatePanel ein UpdatePanel ist?

Wichtige zusätzliche Hinweise

Der obige Code schlägt tatsächlich nicht fehl, wie es ist:

%Vor%

Es schlägt nur fehl, wenn ich Inhalt in der ... ContentTemplate:

habe %Vor%
  • aber Visual Studio beschwert sich nicht über innere ToolbarSetup
  • es beschwert sich über die äußere UpdatePanelSetupToolbar control

Also, was ist los mit

?
  

Geben Sie für '% s' keine öffentliche Eigenschaft mit dem Namen '% s' ein.

?

Unwichtige zusätzliche Notizen

Die ASP.net-Website kompiliert, erstellt und führt fein aus. Es ist nur der Designer von Visual Studio (2010), der sich beschwert.

Also, was ist der Deal mit Type '%s' does not have a public property named '%s'. ?

Serie

Diese Frage gehört zur laufenden Stackoverflow-Reihe, "Benutzersteuerelemente für Vorlagen erstellen" :

Ian Boyd 25.07.2012, 18:55
quelle

2 Antworten

1

Das Update-Panel ist wirklich cool, aber Sie können wirklich keine Benutzersteuerelemente damit machen. Die gute Nachricht ist, dass Sie asp.net-Benutzersteuerelemente erstellen können, die über eine JavaScript-Nutzlast verfügen, indem Sie demselben Entwurfsmuster folgen, mit dem das Update-Panel für das ajaxcontroltoolkit erstellt wurde.

Ich habe das im März 2009 zurückgebaut, weil ich eine Nachrichtenbox brauchte, die das UI nicht blockierte. Ich folgte dem Design-Muster für Benutzerkontrollen mit dem Ajaxcontroltoolkit. Es hat eine vollständige Quelle und die VS-Intellisense funktioniert auf dem Javascript. Es ist eine Benutzerkontrolle, die Sie einfach auf die Seite fallen lassen und sie trägt ihre eigene Javascript-Nutzlast, die Sie nach Herzenslust ajaxifizieren können. Es funktioniert sogar in einem Datenrepeater ohne Änderungen. Es wurde tatsächlich als ajaxcontroltoolkit usercontrol auf der Website asp.net akzeptiert.

Es ist kostenlos, du kannst es auf github oder ein anderes Repository setzen, wenn du willst.

Ссылка

Ссылка

    
danny117 06.11.2013 15:27
quelle
0

Sie sollten das pro Design lösen.

Platzieren Sie Ihr Update-Panel auf einer Seite und machen Sie den Benutzer ohne ein Update-Panel zu steuern.

Grund: Das Update-Panel soll Client-Scripting für asynchrones Postback automatisch generieren, wie Sie sicher wissen. Das Benutzersteuerelement ist ein Baustein mit einer eigenständigen Funktionalität, die die Komplexität einkapselt, die überall ohne Anforderungen an den Kontext platziert werden kann. In diesem Fall benötigen Sie zumindest einen Skriptmanager auf der Seite, der die Steuerung instanziiert.

    
T. Nielsen 05.11.2013 12:24
quelle