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
- Can't hide code of user controls like server controls by compiling into an assembly.
Adding User Controls to a WebForms Page
At the top of the .aspx page, add the below line above <Html> tag.
- <%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %>
Declare user controls like
- <Test:TestControl id="TestControl" runat="Server"/>
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
1) 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 a .aspx page by declaring public property in the .ascx page.
- public string FirstName
- {
- get{return txtFirstName.Text;}
- set{txtFirstName.Text = value;}
- }
TestControl.FirstName
You can set the FirstName of the control from aspx page using
TestControl.FirstName = "Suzzanne"
2) Using Javascript
You can set the values of the controls declared in the .ascx page by
- document.forms[0]['TestControl:txtFirstName'].value ="Suzzanne";
- document.forms[0]['TestControl:txtFirstName'].value
- TestControl objTestControl = (TestControl)Page.FindControl("TestControl");
- TextBox objTextBox = objTestControl.FindControl("txtFirstName");
- string strFirstName = objTextBox.Text;
Toan TranPosted May 11, 2020, 9:58 PM
Thank you very much. You have save me.
Manoj KallaPosted Dec 12, 2015, 5:16 AM
Good one
Jatin PatelPosted Aug 18, 2015, 2:11 AM
its now working using javascript
Maya GonzalezPosted Aug 9, 2013, 12:56 PM
great article, helped me a lot!
matt cuprykPosted Jun 7, 2011, 2:23 PM
Create a form in your code and you can past via get or post and do a request string in your aspx page.
Chris SmithPosted Dec 22, 2007, 11:17 AM
I am trying to pass a variable in a web page using the param tag. What changes do I need to make in my c# user control so I can read this value from the same web page.