0

我意识到 asp:chart 控制器正在刷新页面。

例如,如果我单击一个按钮以显示图表,则当前页面会刷新,但我不希望它如此。

假设我想显示两个图表。我的 default.aspx 文件中有以下代码(使用工具箱生成的代码):

    <div>
    <asp:Chart ID="Chart1" runat="server">
        <series>
            <asp:Series Name="Series1">
            </asp:Series>
        </series>
        <chartareas>
            <asp:ChartArea Name="ChartArea1">
            </asp:ChartArea>
        </chartareas>
    </asp:Chart>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </div>
    <div>
    <asp:Chart ID="Chart2" runat="server">
        <series>
            <asp:Series Name="Series1">
            </asp:Series>
        </series>
        <chartareas>
            <asp:ChartArea Name="ChartArea1">
            </asp:ChartArea>
        </chartareas>
    </asp:Chart>
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
    </div>

以及 default.aspx.cs 文件中的后台代码:

    protected void Button1_Click(object sender, EventArgs e)
    {
        double[] yValues = { 71.15, 23.19, 5.66 };
        string[] xValues = { "AAA", "BBB", "CCC" };
        Chart1.Series["Series1"].Points.DataBindXY(xValues, yValues);
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        double[] yValues = { 71.15, 23.19, 5.66 };
        string[] xValues = { "DDD", "EEE", "FFF" };
        Chart2.Series["Series1"].Points.DataBindXY(xValues, yValues);
    }

我的问题是,当我单击 Button1 时,会出现我的第一个图表。但是当我单击 Button2 时,第一个图表消失了,而第二个图表出现了。

我想保持两个图表都显示!

可能吗?如何?

4

1 回答 1

0

页面上有 2 个按钮,每个按钮都会触发自己的点击事件。这样,您当然一次只能看到一个图表。

如果您想一直看到两者,请这样做(两个按钮都指向一个共享事件处理程序):

<div>
<asp:Chart ID="Chart1" runat="server">
    <series>
        <asp:Series Name="Series1">
        </asp:Series>
    </series>
    <chartareas>
        <asp:ChartArea Name="ChartArea1">
        </asp:ChartArea>
    </chartareas>
</asp:Chart>
    <asp:Button ID="Button1" runat="server" onclick="ChartButtons_Click" Text="Button" />
</div>
<div>
<asp:Chart ID="Chart2" runat="server">
    <series>
        <asp:Series Name="Series1">
        </asp:Series>
    </series>
    <chartareas>
        <asp:ChartArea Name="ChartArea1">
        </asp:ChartArea>
    </chartareas>
</asp:Chart>
    <asp:Button ID="Button2" runat="server" onclick="ChartButtons_Click" Text="Button" />
</div>

在您的 CS 文件上:

protected void ChartButtons_Click(object sender, EventArgs e)
{
    double[] yValues = { 71.15, 23.19, 5.66 };
    string[] xValues = { "AAA", "BBB", "CCC" };
    Chart1.Series["Series1"].Points.DataBindXY(xValues, yValues);

    yValues = { 71.15, 23.19, 5.66 };
    xValues = { "DDD", "EEE", "FFF" };
    Chart2.Series["Series1"].Points.DataBindXY(xValues, yValues);
}
于 2013-07-24T08:49:39.487 回答