WebPartChrome.RenderPartContents(HtmlTextWriter, WebPart) メソッド

定義

ヘッダーとフッターを除く、 WebPart コントロールのメイン コンテンツ領域をレンダリングします。

protected:
 virtual void RenderPartContents(System::Web::UI::HtmlTextWriter ^ writer, System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
protected virtual void RenderPartContents(System.Web.UI.HtmlTextWriter writer, System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member RenderPartContents : System.Web.UI.HtmlTextWriter * System.Web.UI.WebControls.WebParts.WebPart -> unit
override this.RenderPartContents : System.Web.UI.HtmlTextWriter * System.Web.UI.WebControls.WebParts.WebPart -> unit
Protected Overridable Sub RenderPartContents (writer As HtmlTextWriter, webPart As WebPart)

パラメーター

writer
HtmlTextWriter

HtmlTextWriterコンテンツを受け取るwebPart

webPart
WebPart

現在レンダリングされているコントロール。

次のコード例は、 RenderPartContents メソッドの使用を示しています。 この例を実行するために必要な完全なコードについては、「 WebPartChrome クラスの概要」トピックの「例」セクションを参照してください。

コード例の次のセクションでは、 RenderPartContents メソッドをオーバーライドする方法を示します。 オーバーライドされたメソッドは、 WebPart コントロールの本体のレンダリングをカスタマイズするために 2 つの処理を行います。 最初に、コントロールが現在選択されているかどうかを確認し、選択されている場合は文字列を書き出し、内容はレンダリングしません。 次に、コントロールが選択されていない場合、およびコントロールのゾーンが MyZone型の場合、メソッドはコントロールをレンダリングします。 この後者のチェックは、カスタム WebPartChrome クラスを使用して、WebPart オブジェクトを含むように設計された特定の種類のWebPartZone ゾーンにWebPartChrome コントロールをレンダリングする場合にのみ使用できます。

protected override void RenderPartContents(HtmlTextWriter writer, 
  WebPart part)
{

    if (part == this.WebPartManager.SelectedWebPart)
      HttpContext.Current.Response.Write("<span>Not rendered</span>");
    else
      if(this.Zone.GetType() == typeof(MyZone))
        part.RenderControl(writer);
}
Protected Overrides Sub RenderPartContents _
  (ByVal writer As HtmlTextWriter, ByVal part As WebPart)

  If part Is Me.WebPartManager.SelectedWebPart Then
    HttpContext.Current.Response.Write("<span>Not rendered</span>")
  Else
    If (Me.Zone.GetType() Is GetType(MyZone)) Then
      part.RenderControl(writer)
    End If
  End If

End Sub

ブラウザーで Web ページを読み込む場合、各コントロールのコンテンツが正常にレンダリングされていることがわかります。 ページをデザイン モードに切り替え ([表示モード] ドロップダウン リスト コントロールで [デザイン] を選択) し、コントロールの 1 つを WebPartZone2 というラベルの付いた空の領域にドラッグすると、カスタム WebPartChrome オブジェクトが標準ゾーンでのレンダリングに使用されていないため、コントロールの内容が異なる方法でレンダリングされます。 これは、上記のソース コードが原因で、WebPartChrome クラス以外のゾーンでカスタム MyZone クラスを使用しようとした場合と同じ効果です。

注釈

RenderPartContents メソッドを使用すると、ヘッダーとフッターのレンダリングを既定のレンダリングのままにしたまま、webPartの本文領域のレンダリングをオーバーライドできます。

注意 (継承者)

必要に応じて、 RenderPartContents(HtmlTextWriter, WebPart) メソッドをオーバーライドできます。 その場合は、 webPartに必要な任意のレンダリングカスタマイズを実行し、その RenderControl(HtmlTextWriter) メソッドを呼び出すことができます。 また、接続エラーが発生した場合に既定のレンダリングに依存する場合は、最初に基本メソッドを呼び出してから、基本メソッドから返される writer をカスタマイズします。

適用対象

こちらもご覧ください