Problem:
How to pass values into a usercontrol as querystrings in asp.net.
More References to the problem as as follows:
Solution:
- One Can definitely use Session Variables to give the functionality. Set the session variable value in the page and then retrieve the value in the user control.
- Another way is to set the Public Property for the userControl.
- And one solution is described below which i implemented successfully. It also works for dynamically loaded usercontrol.
The Alternative New Method:
Method is simple:
- Add Invisible buttons(or label) to the user control on the page where it will be rendered.
- Set the text property of the buttons to the value of the querystring.
UserControl mycontrol = new UserControl();
mycontrol = (UserControl)Page.LoadControl(“./UserControls/CustomCallDetailsChart.ascx”);Button btnName=new Button();
btnName.Visible = false;
btnName.Text=this.Name;
mycontrol.Controls.AddAt(0, btnName);this.Controls.Add(mycontrol);
- In the page load event of the usercontrol find the control and typecast the text value to the required datatype.
protected void Page_Load(object sender, EventArgs e)
{
Button btnName = (Button)this.Controls[0];
this.ChartName = btnName.Text.ToString();
}