Question

J'ai créé une partie Web en C # pour SharePoint. c'est essentiellement un formulaire avec des zones de texte, des littéraux, des validateurs et des boutons.

Je ne suis pas sûr de savoir comment rendre ce formulaire pour le rendre joli. La mise en page, etc. est entièrement réalisée dans cette classe c #.

Pour le moment, démarrez simplement la méthode CreateChildControls () et en ajoutant chaque contrôle de formulaire en utilisant quelque chose comme: this.Controls.Add (submitButton);

des idées sur la meilleure façon de mettre en forme ce formulaire?

Merci.

Était-ce utile?

La solution

Lors de la création de composants Web personnalisés, je préfère également les implémenter en remplaçant les méthodes CreateChildControls () et Render () . Dans la méthode Render () , j'ai le contrôle total sur la sortie HTML et je peux restituer mes contrôles internes en appelant this.someInnerControl.RenderControl (writer) .

Disposer d'un contrôle total sur la sortie HTML facilite également le style du code HTML à l'aide de CSS. Comme d'autres personnes le suggèrent, utilisez un fichier CSS externe et appliquez les nuances à l'attribut class sur les éléments HTML ou la propriété CssClass sur le contrôle Web ASP.NET.

Lorsque j'implémente des composants Web, qui ne nécessitent pas de personnalisation particulière, je préfère réutiliser les classes CSS définies par SharePoint. Cela garantira que mon Webpart est visuellement similaire au Webpart fourni par SharePoint et que je conserve un aspect cohérent.

Lorsque vous utilisez les styles CSS définis par SharePoint, vous devez connaître votre sortie HTML. Certaines classes CSS nécessitent une structure HTML spécifique pour être correctement restituées. Vous pouvez toujours utiliser les navigateurs " View Source " vérifier le code HTML de l'élément SharePoint que vous essayez d'imiter.

Autres conseils

Je vous conseillerais de récupérer le code source dans une page SharePoint existante et d'utiliser les styles définis par sharepoint. Ce lien vers les styles de 2003 est ancien, mais reste un bon guide pour Commencer. La plupart des noms de classe CSS n'ont pas changé.

Dans mes composants WebPart, j'inclus des fichiers CSS dans la solution et les insère dans la page à l'aide de quelque chose comme:

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

Vous pouvez remplacer la méthode RenderContents (...) pour restituer manuellement le code HTML de la manière que vous souhaitez. Cela inclut l’ajout de tous les éléments css inclus, les scripts inclus, etc. que vous souhaitez / utilisez.

Vous pouvez rendre vos contrôles enfants en chaînes, puis les exporter également, mais vous ne devez probablement PAS appeler la méthode base.RenderContents (...).

Assurez-vous de ne pas oublier de rendre vos contrôles enfants.

S'il est important pour vous de voir ce que vous concevez, utilisez le SmartPart qui incorpore un contrôle utilisateur. dans une partie Web. (Si vous ne le saviez pas, les contrôles utilisateur peuvent être conçus à l'aide des outils de Visual Studio.)

Si vous préférez coder à la main, vous êtes sur la bonne voie. Créez et définissez simplement les propriétés initiales de vos contrôles dans CreateChildControls () et utilisez this.Controls.Add () comme vous l'avez été.

Dans les deux cas, utilisez si possible la propriété CssClass afin de pouvoir modifier l'aspect et la convivialité d'un fichier CSS sans avoir à recompiler. Vous pourriez coder en dur les noms de classe CSS, mais il serait préférable d’utiliser les propriétés du composant WebPart ou une source de configuration externe pour les stocker. Avoir une référence au fichier CSS dans votre page maître ou l'injecter dans la page en utilisant les autres techniques mentionnées dans cette réponse.

Les articles MSDN composants WebPart dans Windows SharePoint Services ou < a href = "http://msdn.microsoft.com/en-us/library/ms415817.aspx" rel = "nofollow noreferrer"> La création d'un composant WebPart de base peut également aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top