我正在使用Telerik Rad标签控件,我正在加载两个用户控件A,B。现在来自用户控件A,我想加载或调用或使用一些查询字符串参数重定向到用户控件B.
我该怎么做?
下面是标记:
<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>
答案 0 :(得分:2)
[开始编辑]
在Primary控件上,您可以创建一个事件处理程序。如果要从主控件执行该事件处理程序(例如,单击按钮),它将在发送页面上执行代码。
声明自定义事件处理程序
public delegate void ControlChangedEventHandler(string QueryString);
然后在我的第二个控制中,delcare一个公共事件处理程序进行更改:
public ControlChangedEventHandler OnControlChanged;
然后在提交控件时,检查是否已设置OnControlChanged然后执行。
if (OnControlChanged != null)
{
OnControlChanged(QueryStringParameter);
}
现在在主控件中,创建一个处理工作的函数
public void OnControlChanged(string QueryString)
{
RadTabStrip1.SelectedIndex = 1;
rmpProgressReports.SelectedIndex = 1;
PRDetails.LoadFromQuery(QueryString);
}
然后将该函数指定为用户控件的OnAddressChanged的事件处理程序。
PRDashBoards.OnControlChanged += new ControlChangedEventHandler(OnControlChanged);
[基于选项卡点击的旧答案]
您可以将RadTabStrip的AutoPostBack属性设置为True,以允许触发OnTabClick功能。
从OnTabClick函数内部,您可以访问UserControl的公共属性或函数并将数据传递给它,例如,创建公共函数,然后根据参数使数据反弹。例如:
protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e)
{
if (e.Tab.TabIndex == 0)
{
PRDashBoards.DoSomething();
}
else if (e.Tab.TabIndex == 1)
{
PRDetails.DoSomethingElse();
}
}