1

我已经实现了一个模块,我正在使用 Telerik 红色条形图。我想在现有图表的点击条上生成另一个条形图,即有两个图表,一个显示在页面加载时,第二个是详细的一个,在单击后显示在第一张图表的任何条上。在下面提到了我的代码:-

<asp:Panel ID="Panel1" runat="server">
    <telerik:radhtmlchart id="RadHtmlChart2" runat="server" width="600" height="400"
        onclientseriesclicked="OnClientSeriesClicked">
                <%-- <ClientEvents OnSeriesClick="OnSeriesClick" />--%>
                <PlotArea>
                    <Series>
                        <telerik:ColumnSeries Name="Series 1">
                            <SeriesItems>
                                <telerik:CategorySeriesItem Y="30" />
                                <telerik:CategorySeriesItem Y="10" />
                                <telerik:CategorySeriesItem Y="20" />
                            </SeriesItems>
                        </telerik:ColumnSeries>
                    </Series>
                    <XAxis>
                        <LabelsAppearance RotationAngle="33">
                        </LabelsAppearance>
                        <Items>
                            <telerik:AxisItem LabelText="Item 1" />
                            <telerik:AxisItem LabelText="Item 2" />
                            <telerik:AxisItem LabelText="Item 3" />
                        </Items>
                    </XAxis>
                </PlotArea>
            </telerik:radhtmlchart>
    <asp:Panel ID="Panel2" runat="server">
        //My Second chart Shown Here
    </asp:Panel>
</asp:Panel>

上面的代码我用来生成我的第一个图表

我试图填写我的 asp Panel2 的第二张图表。

protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
    RadHtmlChart chart = new RadHtmlChart();
    chart.ID = "chart2";
    ColumnSeries cs = new ColumnSeries();
    CategorySeriesItem csi = new CategorySeriesItem();
    cs.DataFieldY = "TOTALCALLS";

    cs.SeriesItems.Add(csi);
    chart.PlotArea.Series.Add(cs);
    Panel2.Controls.Add(chart);
}

我的阿贾克斯电话

<telerik:radcodeblock id="RadCodeBlock1" runat="server">    
    <script>
        function getAjaxManager() {
            return $find("<%=RadAjaxManager1.ClientID%>");
        }
    </script>    
</telerik:radcodeblock>

我只想填充第二个条形图,即我想使用客户端系列事件在红色图表中调用我的服务器端方法

4

1 回答 1

2

通过 RadAjaxManager 客户端 API 调用 AJAX 请求:http: //docs.telerik.com/devtools/aspnet-ajax/controls/ajax/client-side-programming/overview。就像是:

getAjaxManager().ajaxRequest("someOptionalArgument");

您可以在下钻图表演示中找到类似的代码:http: //demos.telerik.com/aspnet-ajax/htmlchart/examples/drilldownchart/defaultcs.aspx。它改变了当前图表的数据源,但客户端逻辑是一样的。

在服务器上,只需确保在每次后续回发时重新创建第二个图表,就像任何其他服务器控件一样。

于 2015-09-08T10:27:55.470 回答