2009-03-03 4 views
4

J'ai créé une partie Web dans C# pour sharepoint. c'est fondamentalement un formulaire avec des zones de texte, des littéraux, des validateurs et des boutons. Je ne sais pas comment rendre ce formulaire pour le rendre joli. La mise en page, etc. est entièrement réalisée dans cette classe C#.Mise en forme d'un formulaire à l'aide de C# pour une partie Web dans sharepoint

Au moment de commencer im juste overrinding CreateChildControls() méthode 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 la mise en page ce formulaire?

Merci.

Répondre

3

Lors de la création webparts personnalisés, je préfère aussi les mettre en œuvre en remplaçant les CreateChildControls() et render() méthodes. Dans la méthode Render() j'ai le contrôle total de la sortie html et je peux rendre mes contrôles internes en appelant this.someInnerControl.RenderControl (writer).

Avoir le contrôle total de la sortie html facilite également le style HTML en utilisant CSS.Comme d'autres personnes le suggèrent, utilisez un fichier CSS externe et appliquez les attributs à l'attribut classe sur les éléments html ou à la propriété CssClass sur le contrôle Web ASP.NET. Lorsque j'implémente des webparts, qui ne nécessitent pas de marque particulière, je préfère réutiliser les classes CSS définies par SharePoint. Cela garantira que mon composant WebPart est visuellement similaire au composant 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 requièrent une structure html spécifique pour un rendu correct. Vous pouvez toujours utiliser les navigateurs "View Source" pour vérifier le code HTML de l'élément SharePoint que vous essayez d'imiter.

1

Je vous recommande de saisir la source à partir d'une page de partage existante et d'utiliser les styles définis par sharepoint. This link to the styles in 2003 est vieux, mais toujours un bon guide pour commencer. La plupart des noms de classes CSS n'ont pas changé.

0

Dans mes webparts j'inclure des fichiers CSS dans la solution et les réinjecter dans la page en utilisant quelque chose comme:

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

Vous pouvez remplacer la méthode RenderContents (...) pour rendre manuellement le code HTML de toute façon tu veux. Cela inclut l'ajout de toute inclusion de css, de scripts inclus, etc. que vous voulez/utilisez.

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

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

0

S'il est important que vous voyiez lorsque vous concevez, utilisez le SmartPart qui incorpore un contrôle utilisateur dans un composant WebPart. (Au cas où vous ne le sauriez 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. Il suffit de créer et de définir les propriétés initiales de vos contrôles dans la méthode CreateChildControls() et d'utiliser this.Controls.Add() comme vous l'avez été.

Dans les deux cas, si possible, utilisez la propriété CssClass pour pouvoir modifier l'apparence d'un fichier CSS sans devoir le recompiler. Vous pouvez coder en dur les noms de classes CSS, mais il serait préférable d'utiliser les propriétés de partie Web 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 Web Parts in Windows SharePoint Services ou Creating a Basic Web Part peuvent également aider.