2009-05-13 3 views
0

I Schrieb einen Beispiel-Webpart, der den von orher Webpart übergebenen Parameter übernimmt und seinen Wert auf einem Etikett anzeigt. Hier ist der Code:WebPart-Verbindungen auf Sharepoint. - Welcher Typ soll verwendet werden?

[Guid("11a885e9-13e1-4c6e-8045-e5575794ebd8")] 
public class DisplayParameter : System.Web.UI.WebControls.WebParts.WebPart 
{ 
    protected Label _label = new Label(); 
    private string _message; 

    [ConnectionConsumer("Parameter to show")] 
    public void GetWPConnectedProviderInterface(IWebPartField connectProvider) 
    { 
     FieldCallback callback = FieldCallback; 
     connectProvider.GetFieldValue(callback); 
    } 

    private void FieldCallback(object fieldValue) 
    { 
     _message = (string)fieldValue; 
    } 

    protected override void OnPreRender(EventArgs args) 
    { 
     if (string.IsNullOrEmpty(_message)) 
      _label.Text = "No Message."; 
     else 
      _label.Text = _message; 
    } 

    protected override void CreateChildControls() 
    { 
     base.CreateChildControls(); 
     Controls.Add(_label); 
    } 
} 

Dann habe ich die WP auf einer Seite und ein Dataview-WP mit SPD erzeugt, um einen Dateinamen aus einer Doc-Bibliothek WP zu übergeben.
Es funktioniert das erste Mal in Ordnung, aber wenn ich ein anderes Dokument aus, erhalte ich die folgende Ausnahme:

Kann nicht das Objekt von Typ ‚Test.Assembly.SharepointProject.DislayParameter‘ ‚Microsoft.SharePoint einzugeben. WebPartPages.WebPart '.

Das bin ich denke, macht ... Muss ich von Microsoft.SharePoint.WebPartPages.WebPart erben müssen statt System.Web.UI.WebControls.WebParts.WebPart ?, und wenn ja, Was sind die Nachteile davon, da MSDN und Blogger vorschlagen, die letztere Klasse zu verwenden?

Antwort

1

Ich habe nie wirklich zugestimmt, die SharePoint-spezifische Unterklasse von Webpart nicht zu verwenden - der einzige Grund dagegen wäre, den Webpart in anderen Containern als SharePoint laufen zu lassen - das ist in der Theorie schön, aber ich habe nie gearbeitet Bei einem Projekt, bei dem die geringste Chance bestand, dass der Webpart außerhalb von SharePoint verwendet wurde.

Das Problem kann auch durch die Existenz einer anderen Art von Webpart in SharePoint 2003, die älter als .NET 2.0 Webparts ist, etwas getrübt sein - das ist die, die definitiv nicht verwendet werden sollte.

+0

Hallo Tom. Ich benutzte sie so ohne Probleme ... kurz gesagt. Wenn ich meine Umgebung unter Kontrolle habe, sollte das kein Problem darstellen !!! Danke für die Antwort! –