User Controls


A user control is a kind of composite control that works much like an ASP.NET Web page—you can add existing Web server controls and markup to a user control, and define properties and methods for the control. You can then embed them in ASP.NET Web pages, where they act as a unit.

To include a user control in a Web Forms page

In the containing ASP.NET Web page, create an @ Register directive that includes:

A TagPrefix attribute, which associates a prefix with the user control. This prefix will be included in opening tag of the user control element.

A TagName attribute, which associates a name with the user control. This name will be included in the opening tag of the user control element.

A Src attribute, which defines the virtual path to the user control file that you are including.

In User control page:-     File name = WebUserControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs"
    Inherits="WebUserControl" %>
<asp:TextBox ID="txtDateControl" runat="server"></asp:TextBox><asp:Calendar ID="dtpicker"
    runat="server"></asp:Calendar>


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="DemoWebUserControl.ascx.cs" Inherits="DemoWebUserControl" %>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" />


In my web form we need to register user control.

<%@ Register TagPrefix="Uc1"  TagName="UserControl" Src="~/DemoWebUserControl.ascx"  %>


Added user control in my page

        <Uc1:UserControl   ID="ddl1" runat="server" />




        <asp:Button ID="btnSubmit" runat="server" Text="Submit"
            onclick="btnSubmit_Click" />

Now if we want to access the textbox and calendar control in my code behind file, we use following code.

    protected void btnSubmit_Click(object sender, EventArgs e)
    {

        

        DropDownList  ddl1 = (DropDownList)dtpicker.FindControl("ddl1");
       
        txt.Text = ddl1.SelectedValue.ToString();

        spMsg.InnerText = txt.Text;

    }


In above code to get control values of Calendar and Textbox we need to FindControl method.
Then we can easily access values of these controls.

Comments