Extend the simple Webpart
Now that we know how to create a simple Webpart, we want to add more functionality to it. Let us start with some Controls.
- Declare a Control as class variable
- Create it in CreateChildControls
- Modify the Control in OnPreRender
- Render the Control with its content
Declare a Control
public
class
simpleWebpart:WebPart
{
private
HtmlGenericControl _MyDiv;
CreateChildControls
This method creates the control. After the creation, we will be able to access the control from elsewhere, to modify its properties or its content.
protected
override
void CreateChildControls()
{
base.CreateChildControls();
// Create a new instance, and add it to the Controls
_MyDiv = new
HtmlGenericControl(“DIV”);
Controls.Add(_MyDiv);
}
Modify the Control
After the control exists, we can modify it.
protected
override
void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
_MyDiv.Attributes.Add(“style”, “padding: 20px; margin: 20px; border-style: groove; background-color: #FFFFFF;");
_MyDiv.InnerHtml = “I like SharePoint”;
}
Rendering
Finally we render our controls, so that we actually see what we created. If we forget to do so, the controls will be generated, but not visible.
protected
override
void Render(HtmlTextWriter writer)
{
// Determines whether the server control contains child controls.
// If it does not, it creates child controls.
<span style="font-family:Courier New;font-size:10pt">EnsureChildControls();<br /> </span>
// Renders the ChildControls
<span style="font-family:Courier New;font-size:10pt">RenderChildren(writer);<br /> </span>
}