Skip to main content

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;
}

Comments

Popular posts from this blog

Show Image on canvas HTML5

Here is the sample code to select image from system and display it on html5 canvas and javascript: <input type= "file" id= "selectedImage" /> <canvas id= "myCanvas" width= "500" height= "500" > </canvas> Javascript code: $( "#selectedImage" ).change( function (e) { var URL = window .URL; var url = URL.createObjectURL(e.target.files[ 0 ]); img.src = url; img.onload = function () { var canvas = document .getElementById( "myCanvas" ); var ctx = canvas.getContext( "2d" ); var imgSize = calculateAspectRatioFit(img.width, img.height, canvas.clientWidth, canvas.clientHeight); ctx.clearRect( 0 , 0 , canvas.width, canvas.height); ctx.drawImage(img, 0 , 0 , imgSize.width, imgSize.height); } }); function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) { var ratio = Math .min(maxWi

Pass byte array from C# to C++ and vice-versa

Pass byte array from C# to C++                           If you want to pass a byte array to native DLL as parameter, you can use the Intptr to do this, please check the demo below. /C++ API code: TestDLL_API void TestArrayPara (BYTE * pArray, int nSize) { for ( int i= 0 ; i<nSize; i++) printf( "%d\n" , pArray[i]); } //C# code: class TestClass { [DllImport(@"TestDll.dll")] public static extern void TestArrayPara (IntPtr pArray, int nSize); public static void Test () { byte [] array = new byte [ 16 ]; for ( int i = 0 ; i < 16 ; i++) { array[i] = ( byte )(i + 97 ); } int size = Marshal.SizeOf(array[ 0 ]) * array.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try { // Copy the array to unmanaged memory. Marshal.Copy(array, 0 , pnt, array

Display Tooltip for Combo Box item C#.NET Winforms

In windows form combo box control sometimes while adidng items dynamically we have items whose width is greater than width of combox box control. In this case for making UI more user friendly we can show tooltip over such item. Here is the sample C# code to display such tooltip:  Add a Tooltip control on the form.  Add following code : this . combo_box1 . DropDownStyle = System . Windows . Forms . ComboBoxStyle . DropDownList; this . combo_box1 . DrawMode = DrawMode . OwnerDrawFixed; this . combo_box1 . DrawItem += new DrawItemEventHandler(combo_box1_DrawItem); this . combo_box1 . DropDownClosed += new EventHandler(combo_box1_DropDownClosed); this . combo_box1 . MouseLeave += new EventHandler(combo_box1_Leave); void combo_box1_DrawItem( object sender, DrawItemEventArgs e) { if (e . Index < 0 ) { return ; } string text = combo_box1 . GetItemText(combo_box1 . Items[e . Index