2009-03-03 1 views
4

私はsharepointのためにc#でwebpartを作成しました。 基本的には、テキストボックス、リテラル、バリデーター、ボタンを持つフォームです。シェアポイントのwebpartにc#を使用してフォームをレイアウトする

よく見えるようにこのフォームをレンダリングする方法がわかりません。 このC#クラス内でレイアウトなどが完全に行われています。 this.Controls.Add(submitButton);

このフォームをレイアウトする最善の方法上の任意のアイデアを:ちょうどCreateChildControls()方法 をoverrindingとのようなものを使用して各フォームコントロールを追加するイム始めるため現時点では

ありがとうございました。

答えて

3

カスタムWebパーツを作成するときに、私はまたCreateChildControlsのを(オーバーライドすることでそれらを実装することを好む)は(レンダリング)方法。 Render()メソッドでは、html出力を完全に制御することができ、this.someInnerControl.RenderControl(writer)を呼び出して内部コントロールをレンダリングできます。

html出力を完全に制御することで、CSSを使用してhtmlを簡単にスタイル設定することもできます。他の人が示唆するように、外部CSSファイルを使用して、html要素のクラス属性、またはASP.NET WebコントロールのCssClassプロパティにstyesを適用します。

webpartsを実装すると、特別なブランディングは必要なく、SharePointで定義されたCSSクラスを再利用することをお勧めします。これにより、私のWebパーツはSharePointによって提供されるWebパーツと視覚的に似ており、一貫したルックアンドフィールを保ちます。

SharePointで定義されたCSSスタイルを使用する場合は、html出力を認識する必要があります。 CSSクラスの中には、適切にレンダリングするための特定のHTML構造が必要なものがあります。ブラウザの「ソースの表示」を使用して、模倣しようとしているSharePoint要素のhtmlをいつでも確認できます。

1

既存の共有ポイントページからソースを取得し、sharepointによって定義されたスタイルを使用することをお勧めします。 This link to the styles in 2003は古いですが、まだ始めるには良いガイドです。ほとんどのCSSクラス名は変更されていません。私のWebパーツで

0

私は、溶液中のCSSファイルが含まれており、のようなもの使っページでそれらを注入:手動でとにかくでHTMLをレンダリングするためにあなたがのRenderContents(...)をオーバーライドすることができ

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

方法をあなたはしたい。これには、必要なCSSのインクルード、スクリプトのインクルードなどを追加することも含まれます。

子コントロールを文字列にレンダリングして出力することもできますが、base.RenderContents(...)メソッドを呼び出さないでください。

子供のコントロールをレンダリングすることを忘れないでください。

0

あなたがデザインするときに見ることが重要な場合は、SmartPartを使用して、Webパーツにユーザーコントロールを埋め込みます。 (わからない場合は、Visual Studio内のツールを使用してユーザーコントロールを設計することができます)

手作業でコードを作成することをお勧めします。 CreateChildControls()メソッド内でコントロールの初期プロパティを作成して設定し、そのままthis.Controls.Add()を使用してください。

どちらの場合も、可能であれば、CssClassプロパティを使用して、再コンパイルすることなくCSSファイルのルックアンドフィールを調整できます。 はCSSクラス名をハードコードできますが、これらを保存するにはWebパーツプロパティまたは外部設定ソースを使用する方がよいでしょう。この回答に記載されている他のテクニックを使用して、マスターページのCSSファイルへの参照を付けたり、ページに挿入したりしてください。

MSDNの記事Web Parts in Windows SharePoint ServicesまたはCreating a Basic Web Partも役に立ちます。

関連する問題