Monday 28 October 2013

Adding user control and defining it's functionality in C#.Net

Advantages of using a User control:

  1. User controls provide an easy way to combine several controls into a single unit of functionality that can be dragged onto multiple webpages in the same site.
  2. User controls in ASP.NET are created as ASCX files. An ASCX file is similar to the webpage’s ASPX file and can have its own code-behind page.
  3. It helps you define a consistent user interface.  

You can add user control to your website and define it's events by following the below steps:

  • Creating the website and the user control:

  1. Open Visual studio and create a website.
  2. Right click the solution explorer and add New item dialog box and select Web User control.
  3. This adds a file with the .ascx extension to your application. The user control has both a Design view and a Source view, similar to that of an ASPX page.
  4. You can add controls on to the user control in a similar manner as you do for any web page (You can add text boxes, buttons etc).
  5. You may now need to define user control events. For example: You have a "Save" button on the design and you want to save the content of the text box when user click on that button.
  6. To do so, you can add a button click event and an event handler to the user control. You can use this event to raise the event to the host of the user control. Following code shows how to add an event and event handler to a user control file:
public event EventHandler SaveButtonClick;

protected void ButtonSave_Click(object sender, EventArgs e)
{
  if (SaveButtonClick != null)
  {
    SaveButtonClick(this, new EventArgs());
  }
}

  • Hosting the user control on the webpage:

  1. Open the .aspx file in the design view on which you want to add the user control.
  2. Drag and drop the user control (.ascx file). This will add the user control on to the webpage.
  3. You may now need to trap the event fired by the user control when the user click on the "Save" button. 
  4. In C#, you need to first add a method to the page. This method should have the same signature as the event exposed by the user control. You then need to associate the event from the user control to the newly defined method. You can do this inside the page’s Init method. The following code shows an example.
protected void AddressUserControl1_SaveButtonClick(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
    AddressUserControl1.SaveButtonClick +=
  this.AddressUserControl1_SaveButtonClick;
}