我正在显示包含适当数据的图表。如果用户点击图表,我希望能够显示详细数据。但是,我似乎无法弄清楚如何让按钮点击事件回到代码隐藏。我正在使用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
答案 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"
执行相同操作。