WebPartChrome.RenderPartContents(HtmlTextWriter, WebPart) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Renders the main content area of a WebPart control, excluding the header and footer.
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)
Parameters
- writer
- HtmlTextWriter
The HtmlTextWriter that receives the webPart
content.
- webPart
- WebPart
The control currently being rendered.
Examples
The following code example demonstrates use of the RenderPartContents method. For the full code required to run the example, see the Example section of the WebPartChrome class overview topic.
The following section from the code example demonstrates how to override the RenderPartContents method. The overridden method does two things to customize the rendering for the body of the WebPart control. First, it checks to determine whether the control is currently selected, and if so, writes out a string and does not render the contents. Second, if the control is not selected, and if the control's zone is of type MyZone
, the method renders the control. This latter check could be used if you wanted to ensure that a custom WebPartChrome class can be used only to render WebPart controls in a specific type of WebPartZone zone that is designed to contain the WebPartChrome object.
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
If you load the Web page in a browser, you can see that the content of each control is rendered normally. If you switch the page into design mode (by selecting Design in the Display Mode drop-down list control) and drag one of the controls into the empty zone labeled WebPartZone2, the contents of the control are rendered differently, because the custom WebPartChrome object is not being used for the rendering in a standard zone. This is the same effect that you would achieve if you tried to use the custom WebPartChrome class with any other zone besides the MyZone
class, due to the preceding source code.
Remarks
The RenderPartContents method enables you to override the rendering of the body area of webPart
, while leaving rendering of the header and footer to the default rendering.
Notes to Inheritors
You can optionally override the RenderPartContents(HtmlTextWriter, WebPart) method. If so, you can simply perform whatever rendering customizations you want for webPart
, and then call its RenderControl(HtmlTextWriter) method. If you also want to rely on the default rendering in the event of connection errors, call the base method first, and then customize the writer
that is returned from the base method.