This article is for beginners who are learning. NET.This will be really helpful for them. Beginners will be wondered how to pass values between User Controls and ASPX page. In this article I have listed some of the ways through which you can access and set the User control values in an ASPX page. I started of with some of the basics, advantages and disadvantages of user controls.
User Control:
User Control is the custom, reusable controls. User Controls offers a way to partition and reuse User Interface (UI) functionality across ASP.NET Applications.
Advantages of User Control:
- Code Reuse.
- Cache the output of the control independently using technique called fragment caching. This will improve performance if used appropriately.
- Can program against any properties declared in the control, just like ASP.NET web controls.
Disadvantages of User Control:
- User Controls can be instantiated in the pages that resides in the same web application. If you want to use across applications, you need to place same .ascx control in each application.
- Can't hide code of user controls like server controls by compiling into an assembly.
Adding User Controls to an WebForms Page:
At the top of the .aspx page, add the below line above <Html> tag.
<%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %>
This directive registers the control so that it can be recognized when the page is processed. TagPrefix determines the unique namespace of the control, TagName is the name of the user control and Src is the path of the user control.
Declare user controls like
<
Test:TestControl id="TestControl" runat="Server"/>
Accessing and Setting User Controls Values in the .aspx Page:
User can access and set the values of the User Control from .aspx page through properties,using javascript and in code-behind of aspx page.The details of it are shown below
- Using Properties.
If the test.ascx control has two textboxes and submit button.You can access the values of the textboxes in the control from an .aspx page by declaring public property in the .ascx page.
-
Public
Property FirstName() As String
Get
Return txtFirstName.Text
End Get
Set
txtFirstName.Text = Value
End Set
End Property
In .aspx page,you can access FirstName using
TestControl.FirstName
You can set the FirstName of the control from aspx page using
TestControl.FirstName = "Suzzanne"
- Using Javascript.
You can set the values of the controls declared in the .ascx page by
Private
document.forms(0)("TestControl:txtFirstName").value ="Suzzanne"You can get the values of the controls declared in the .ascx page by
Private
document.forms(0)("TestControl:txtFirstName").value
-
In ASPX code behind file.
Private objTestControl As TestControl = CType(Page.FindControl("TestControl"), TestControl)
Private objTextBox As TextBox = objTestControl.FindControl("txtFirstName")Private strFirstName As String = objTextBox.Text
This will find the control named TestControl declared in the aspx page and look for the TextBox named txtFirstName in the user control and instantiate object of it. In this way also you can access the value of the user control.This is not recommended as it consumes more memory.
NOTE: THIS ARTICLE IS CONVERTED FROM C# TO VB.NET USING A CONVERSION TOOL. ORIGINAL ARTICLE CAN BE FOUND ON C# CORNER (WWW.C-SHARPCORNER.COM).