将图表放在特定的RadTabStrip选项卡上

时间:2012-08-07 14:33:18

标签: asp.net telerik controls

我要做的是放置一个在特定标签上动态创建的特定图表。例如,图表A将转到ColorTab,图表B将转到HistoryTab

<telerik:RadAjaxPanel ID="StripPanel" runat="server" Width="100%">
    <telerik:RadTabStrip ID="TabStrip" runat="server" MultiPageID="Monetary" SelectedIndex="0">
        <Tabs>
            <telerik:RadTab Text="MonetaryTab">
            </telerik:RadTab>
            <telerik:RadTab Text="VTab">
            </telerik:RadTab>
            <telerik:RadTab Text="ColorTab">
            </telerik:RadTab>
            <telerik:RadTab Text="HistoryTab">
            </telerik:RadTab>
            <telerik:RadTab Text="AdTab">
            </telerik:RadTab>
        </Tabs>
    </telerik:RadTabStrip>
</telerik:RadAjaxPanel>

这就是我正在尝试的

Control masterC = FindControl("MonetaryTab");
                RadHtmlChart CarLotChart = ChartCreationClass.HTMLChartCreation();
                masterC.Controls.Add(CarLotChart);

它永远不会找到放置图表的控件。

2 个答案:

答案 0 :(得分:0)

使用this主题中的建议来完成此任务:

RadHtmlChart CarLotChart = ChartCreationClass.HTMLChartCreation();
TabStrip.Tabs["MonetaryTab"].Controls.Add(CarLotChart);

通过following methods中的任何一个参考所需的标签。

答案 1 :(得分:0)

RadTabStrip与RadmultiPage控件配合使用。首先在其中定义RafTabStrip和Tabs。然后有一个RadMultiPage并为您在TabStrip中定义的每个选项卡定义一个页面(类型为RadPageView)。控件需要添加到PageView而不是直接添加到选项卡。

我已根据您在问题中定义的TabStrip创建了一个小型演示。

这是TabStrip代码:

<telerik:RadTabStrip ID="TabStrip" runat="server" MultiPageID="Monetary" SelectedIndex="0" >
            <Tabs>
                <telerik:RadTab Text="MonetaryTab">
                </telerik:RadTab>
                <telerik:RadTab Text="VTab">
                </telerik:RadTab>
                <telerik:RadTab Text="ColorTab">
                </telerik:RadTab>
                <telerik:RadTab Text="HistoryTab">
                </telerik:RadTab>
                <telerik:RadTab Text="AdTab">
                </telerik:RadTab>
            </Tabs>
        </telerik:RadTabStrip>

现在这里是RadMultiPage定义:

<telerik:RadMultiPage ID="Monetary" runat="server" SelectedIndex="0" OnLoad="Monetary_Load">
            <telerik:RadPageView runat="server" ID="monetaryTabPageView"/>
            <telerik:RadPageView runat="server" ID="vTabPageView"/>
            <telerik:RadPageView runat="server" ID="colorTabPageView"/>
            <telerik:RadPageView runat="server" ID="historyTabPageView"/>
            <telerik:RadPageView runat="server" ID="adTabPageView"/>
        </telerik:RadMultiPage>

请注意,我正在收听RadMultiPage的OnLoad事件。在这个演示中 - 当RadMultiPage加载时,我将创建图表并将其添加到我们拥有的eacg pageview中。这是事件处理程序代码:

 protected void Monetary_Load(object sender, EventArgs e)
    {
        AddChart(monetaryTabPageView);
        AddChart(vTabPageView);
        AddChart(colorTabPageView);
        AddChart(historyTabPageView);
        AddChart(adTabPageView);
    }

    private void AddChart(RadPageView pageView)
    {
        RadHtmlChart chart = new RadHtmlChart();
        chart.ChartTitle.Text = pageView.ID + " chart";
        pageView.Controls.Add(chart);
    }

正如您所看到的,我只是将控件直接添加到了pageview的控件集合中。

注意:作为概念证明,我创建了一个空图表,即仅定义了标题的图表。如果需要,你可以继续使用一些有意义的数据绑定。

这是截图:

TabStrip demo

希望这能回答你的问题。

Lohith(技术传播者,Telerik India)