我可以使用asp.net处理asp:Chart控件上的Click事件吗?

时间:2013-08-26 19:04:03

标签: asp.net vb.net

我正在显示包含适当数据的图表。如果用户点击图表,我希望能够显示详细数据。但是,我似乎无法弄清楚如何让按钮点击事件回到代码隐藏。我正在使用vb.net。

有人能指出我正确的方向吗?

asp代码:

<asp:Chart ID="ChartSalesA" runat="server" Width="350px" Height="250px" 
        OnClick="Chart_Click"
        ToolTip="Previous 5 Weeks" BorderlineColor="Transparent"> 
    <Titles>
        <asp:Title Font="Calibri, 11pt, style=Bold" Name="Title1" Text="Previous 5 Weeks">
        </asp:Title>
    </Titles>
    <Legends>
        <asp:Legend Name="Default" Alignment="Center" BackColor="Lavender" BorderColor="Black" Docking="Bottom" LegendStyle="Row"> 
        </asp:Legend> 
    </Legends>
    <Series> 
        <asp:Series ChartType="Column" ChartArea="MainChartArea" Name="Series1" Color="#9955ff" Legend="Default" LegendText="Sales" XAxisType="Primary"></asp:Series>
        <asp:Series ChartType="Line" ChartArea="MainChartArea" Name="Series2" YAxisType="Secondary" Legend="Default" Color="#99ccff" Enabled="True" LegendText="Customers" LabelBorderWidth="1" BorderWidth="3"></asp:Series>  
    </Series> 
    <ChartAreas> 
        <asp:ChartArea Name="MainChartArea" Area3DStyle-Enable3D="false">
            <AxisY Title="Weekly Sales"><LabelStyle Font="Calibri, 8pt" /></AxisY>
            <AxisY2 Title="Weekly Customers" ><LabelStyle Font="Calibri, 8pt" /></AxisY2>
            <AxisX Interval="1" IntervalType ="Weeks" IntervalAutoMode = "FixedCount"  ><LabelStyle Font="Calibri, 8pt" /></AxisX>
        </asp:ChartArea>
    </ChartAreas> 
</asp:Chart> 

代码隐藏:

Protected Sub Chart_Click() Handles ChartSalesA.Click
    'do something here when user clicks chart

    Dim x As Int16 = 0

End Sub

1 个答案:

答案 0 :(得分:3)

在您的aspx部分中添加XValueMember="yourValueORID" PostBackValue="#VALX"到您要回发给代码的系列,并执行任何操作。 yourValueORID将是您绑定到图表的数据源中的任何列。

然后修改您的点击事件签名,如下所示。

Protected Sub Chart_Click(object sender, ImageMapEventArgs e) Handles ChartSalesA.Click

    'You will get your value from the XValueMember as below.
    Dim x As String = Convert.ToString(e.PostBackValue)        

End Sub

如果您想将YValue会员传递给后面的代码,您也可以对YValueMember="yourValueORID" PostBackValue="#VALY"执行相同操作。