2009-03-03 4 views
4

Ich habe ein Webpart in C# für sharepoint erstellt. ist im Grunde eine Form mit Textfeldern, Literalen, Validatoren und Schaltflächen.Layout eines Formulars mit C# für ein Webpart in Sharepoint

ich bin nicht sicher, wie man dieses Formular rendert, um es hübsch aussehen zu lassen. Das Layout usw. wird vollständig innerhalb dieser C# -Klasse durchgeführt.

Im Moment habe gerade angefangen im zu bekommen overrinding CreateChildControls() Methode und Hinzufügen jedes Formular-Steuerelement mit so etwas wie: this.Controls.Add(submitButton);

irgendwelche Ideen, wie man am besten, diese Form Layout?

Danke.

Antwort

3

Wenn benutzerdefinierte webparts Schaffung Ich ziehe es auch ihnen die Create durch zwingende zu implementieren() und Render() Methoden. In der Render() Methode habe ich die volle Kontrolle über die HTML-Ausgabe und ich kann meine inneren Kontrollen durch Aufruf this.someInnerControl.RenderControl (Schriftsteller).

Die vollständige Kontrolle der HTML-Ausgabe macht es auch einfach, den HTML-Code mit CSS zu stylen.Wie andere Leute vorschlagen, verwenden Sie eine externe CSS-Datei und wenden Sie die Gerstenkorn auf die Klasse Attribut auf HTML-Elemente oder CssClass Eigenschaft auf ASP.NET Web-Steuerelement.

Wenn ich Webparts implementieren, die kein spezielles Branding erfordern, verwende ich lieber die von SharePoint definierten CSS-Klassen. Dadurch wird sichergestellt, dass mein Webpart visuell dem von SharePoint bereitgestellten Webpart ähnelt und dass ich ein konsistentes Erscheinungsbild habe.

Wenn Sie die von SharePoint definierten CSS-Stile verwenden, sollten Sie Ihre HTML-Ausgabe kennen. Einige der CSS-Klassen erfordern eine bestimmte HTML-Struktur, um richtig zu rendern. Sie können immer den Browser "Quelltext anzeigen" verwenden, um das HTML des SharePoint-Elements zu überprüfen, das Sie zu imitieren versuchen.

1

Ich würde empfehlen, die Quelle von einer vorhandenen Sharepoint-Seite zu greifen und die durch Sharepoint definierten Stile zu verwenden. This link to the styles in 2003 ist alt, aber immer noch eine gute Anleitung, um loszulegen. Die meisten CSS-Klassennamen wurden nicht geändert.

0

In meinen Web-Teilen umfassen I CSS-Dateien in der Lösung und injizieren sie in der Seite mit so etwas wie:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false); 
0

Sie die Render außer Kraft setzen können (...) Methode, um manuell in irgendeiner Weise die HTML-Render du möchtest. Dazu gehört das Hinzufügen von CSS-Includes, Scripting-Includes usw., die Sie verwenden möchten.

Sie können Ihre untergeordneten Steuerelemente in Strings rendern und sie dann auch ausgeben, aber Sie sollten wahrscheinlich nicht die Methode base.RenderContents (...) aufrufen.

Nur sicherstellen, dass Sie nicht vergessen, Ihre Kindsteuerelemente zu rendern.

0

Wenn es für Sie wichtig ist, während des Entwurfs zu sehen, verwenden Sie die SmartPart, die ein Benutzersteuerelement in ein Webpart einbettet. (Falls Sie es nicht wussten, können Benutzersteuerelemente mithilfe der Tools in Visual Studio erstellt werden.)

Wenn Sie lieber manuell codieren möchten, sind Sie auf dem richtigen Weg. Erstellen und setzen Sie einfach die Anfangseigenschaften für Ihre Kontrollen innerhalb der CreateChildControls() Methode und verwenden Sie this.Controls.Add() wie Sie waren.

In beiden Fällen sollten Sie, wo möglich, die CssClass-Eigenschaft verwenden, damit Sie in einer CSS-Datei mit dem Look & Feel experimentieren können, ohne erneut kompilieren zu müssen. Sie könnte hart-Code die CSS-Klassennamen, aber es wäre besser, die Webpart-Eigenschaften oder eine externe Konfigurationsquelle zu verwenden, um diese zu speichern. Verweisen Sie auf die CSS-Datei in Ihrer Masterseite oder fügen Sie sie mithilfe der anderen in dieser Antwort genannten Techniken in die Seite ein.

Die MSDN-Artikel Web Parts in Windows SharePoint Services oder Creating a Basic Web Part könnten ebenfalls hilfreich sein.

Verwandte Themen