ASP.NET Custom Server Controls: Round Cornered box control in ASP.NET - Closing the body (content) and creating the footer
(Page 5 of 5 )
In the previous section, we already opened the center cell. But we haven't closed it yet. In this section we are going to close it.
writer.RenderEndTag() 'td
'middle right
writer.AddAttribute(HtmlTextWriterAttribute.Width, "0px")
writer.AddAttribute(HtmlTextWriterAttribute.Height,
"0px")
If Me.ImageMiddleRightURL.Trim.Length > 0 Then
writer.AddStyleAttribute
(HtmlTextWriterStyle.BackgroundImage, "url("
&Me.ImageMiddleRightURL.Trim & ")")
writer.AddStyleAttribute("background-repeat",
"repeat-y")
End If
writer.RenderBeginTag(HtmlTextWriterTag.Td)
writer.RenderEndTag() 'td
writer.RenderEndTag() 'tr
The above is quite straightforward for closing the previously opened “<TD>” tag. But the above code is not part of the “RenderBeginTag” method. Instead, it is from the “RenderEndTag” method. We further proceed to create the footer row by adding the same type of code (with very few modifications) available in the “Creating the Header” section to the above code fragment. As the coding is quite similar, you can get it from the downloadable.
Everything until now is fine. How did I implement the trick to get the “developer specified content” into my control? This is from the following code fragment.
Protected Overrides Sub RenderContents(ByVal writer As
System.Web.UI.HtmlTextWriter)
writer.Write(Text)
End Sub
Even though it is only three lines, it should be considered the heart of the control. In other words, when the control is getting rendered, it first executes the "RenderBeginTag” method followed by the “RenderContents” method and finally the “RenderEndTag.” For a detailed explanation of “rendereing” issues, I suggest you to refer my previous articles of the same series.
Even though I started emitting exclusive HTML using “writer” methods, you can also do the same by extending your control from an already existing “table” web control. If you directly extend it from the “table” web control, you can work with an almost .NET based ASP.NET framework model to add table rows and cells, which looks convenient and even readable. But in that case, we need to understand a bit about the “rendering” issues of child controls within the parent control.
I leave it to the developers for further enhancing this control. The areas of improving the it would include eventing, better JavaScript for validation, data-binding, and so on. Good luck.
Any comments, suggestions, bugs, errors, feedback etc. are highly appreciated at jag_chat@yahoo.com.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |