1

我在网页 (aspx) 上使用 Shield UI ASP.NET 图表。我需要根据下拉列表中的选定项刷新图表并显示数据。但是发生的情况是,当按下按钮时,页面会重新加载,我需要其他图表保留它们选择的系列。这是我的代码:

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (DropDownList1.SelectedIndex == 0) {
            ShieldChart3.DataSource = new List<int>() { 12, 3, 4, 2, 12, 3, 4, 17, 22, 34, 54, 67 };
        }
        if (DropDownList1.SelectedIndex == 1)
        {
            ShieldChart3.DataSource = new List<int>() { 3, 9, 12, 14, 22, 32, 45, 12, 67, 45, 55, 7 };
        }
        if (DropDownList1.SelectedIndex == 2)
        {
            ShieldChart3.DataSource = new List<int>() { 23, 19, 11, 134, 242, 352, 435, 22, 637, 445, 555, 57 };
        }
        if (DropDownList1.SelectedIndex == 3)
        {
            ShieldChart3.DataSource = new List<int>() { 13, 19, 112, 114, 212, 332, 435, 132, 67, 45, 55, 7 };
        }
    }

如何仅刷新重新加载页面的图表之一?

4

2 回答 2

0

您需要一个按钮,但它的代码不会从 C# 代码模块中处理,而是在脚本中处理。为此,您需要声明一个 JS 函数。见代码:

    function PS(qtr){
        var SD = SalesData[qtr].values;
        detailChartElement = $('#' + "<%=ShieldChart3.ClientID%>"),
        detailChart = detailChartElement.swidget(),
        initialOptions = detailChart.initialOptions,
        headerText = ' Your sales data... ';
        detailChart.destroy();
        detailChartElement.shieldChart($.extend(initialOptions, {
            primaryHeader: {
                text: headerText

            },
            dataSeries: [{
                seriesType: 'line',
                collectionAlias: 'Sales data...',
                data: SD
            }]
        }));
    }

比,在按钮的单击事件中,您应该在函数中放置一个 clal。或者更简单地说,您可以使用 select 将 tha 值传递给函数:

<select id="Quarter" onChange="PS(this.value)">
    <option value="0">Option 1</option>
    <option value="1">Option 2</option>
    <option value="2">Option 3</option>
    <option value="3">Option 4</option>
</select>
于 2013-08-05T15:29:26.230 回答
0

您可以将图表控件放置在UpdatePanel控件中,并使此按钮成为 UpdatePanel 的触发器。这样,当您单击它时 - 页面将仅执行部分回发,并且只有 UpdatePanel 内的图表将在按钮单击时刷新。

于 2013-08-05T13:24:22.603 回答