|
I have heard lots of complaining about how difficult is custom control programming. It can be really easy and productive. You can use same simple control in different pages easily. This post assumes that you have basic understanding about Visual Studio and ASP.Net programming.
Creating projects
Steps:
- Create Web Site.
You can use Web Site or Web Application project. It makes no difference in this demo.
- Create Class Library project.
- Add Class Libray reference to web site.
- Add System.Web reference to Class Library projec
I always use different project for custom controls.
Programming a control
Steps:
- Create a new class.
- Add additional usings.
using System.Web.UI;
using System.Web.UI.WebControls;
- Add base class for your component.
public class Posting : Panel
- Create a new property called Title.
public string Title { get; set; }
- Override RenderBeginTag.
public override void RenderBeginTag(HtmlTextWriter writer)
- Add custom rendering code.
writer.WriteLine("<div class=\"post\">");
writer.WriteLine("<h2 class=\"title\">{0}</h2>", Title);
writer.WriteLine("<div class=\"entry\">");
- Override RenderEndTag.
public override void RenderEndTag(HtmlTextWriter writer)
- Add custom rendering code.
writer.WriteLine("</div>");
writer.WriteLine("</div>");
Now we have finished our coding.
Using custom control on page
Steps
- Open Web.config.
- Find pages block and add new entry to controls section.
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="sc" namespace="SC.Components.Web.UI.WebComponents" assembly="SC.Components"/>
</controls>
</pages>
- Open Default.aspx page.
- Add custom control to page.
<sc:Posting ID="Posting1" runat="server" Title="Lorem Ipsum">
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
</p>
</sc:Posting>
|