I am using Telerik Rad tabstrip control in which I am loading two user controls A, B. Now from User Control A , I want to load or call or redirect to User Control B with some query string parameters.
How can I do it ?
Below is markup:
<telerik:radtabstrip id="RadTabStrip1" runat="server" skin="Black"
multipageid="rmpProgressReports" selectedindex="0" cssclass="tabStrip" OnTabClick="RadTabStrip1_TabClick">
<Tabs>
<telerik:RadTab Text="DASHBOARD" PageViewID="rpvDashBoard" TabIndex="0" Selected="True" SelectedCssClass="SelectedTab">
</telerik:RadTab>
<telerik:RadTab Text="REPORT DETAILS" PageViewID="rpvReportDetails" TabIndex="1" SelectedCssClass="SelectedTab">
</telerik:RadTab>
</Tabs>
</telerik:radtabstrip>
<telerik:radmultipage id="rmpProgressReports" runat="server" selectedindex="0">
<telerik:RadPageView ID="rpvDashBoard" runat="server" TabIndex="0">
<uc1:PRDashBoards ID="PRDashBoards" runat="server" />
</telerik:RadPageView>
<telerik:RadPageView ID="rpvReportDetails" runat="server" TabIndex="1">
<uc2:PRDetails ID="PRDetails" runat="server" />
</telerik:RadPageView>
</telerik:radmultipage>
[begin edit]
On your Primary control, you could make an event handler. When you want to execute that event handler from the primary control (on button click for example) it will execute the code on the sending page.
Declare the custom Event Handler
public delegate void ControlChangedEventHandler(string QueryString);
Then in my your second control, delcare a public eventhandler for the change:
public ControlChangedEventHandler OnControlChanged;
Then on submission of your control, check to see if OnControlChanged has been set and then execute.
if (OnControlChanged != null)
{
OnControlChanged(QueryStringParameter);
}
Now in your main control, create a function to handle the work
public void OnControlChanged(string QueryString)
{
RadTabStrip1.SelectedIndex = 1;
rmpProgressReports.SelectedIndex = 1;
PRDetails.LoadFromQuery(QueryString);
}
and then assign that function as the event handler for the OnAddressChanged for the usercontrol.
PRDashBoards.OnControlChanged += new ControlChangedEventHandler(OnControlChanged);
[old answer based on clicking on the tabs]
You can set the AutoPostBack property of the RadTabStrip to True to allow the OnTabClick function to fire.
From inside of the OnTabClick function, you can access a public property or function of the UserControl and pass data to it, for example, creating a public function to then cause the data to be rebound based on a parameter. For example:
protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e)
{
if (e.Tab.TabIndex == 0)
{
PRDashBoards.DoSomething();
}
else if (e.Tab.TabIndex == 1)
{
PRDetails.DoSomethingElse();
}
}