Элемент управления ASP.NET Chart обновляется на странице пост назад - но я не хочу, чтобы это было - PullRequest
1 голос
/ 04 августа 2010

Элемент управления ASP.NET Chart обновляется на странице пост назад - но я не хочу, чтобы это было.

В моем aspx у меня есть:

    <asp:Panel runat="server" ID="PanelRight" CssClass="roadmapRight">
        <asp:Chart ID="ChartRemainingDaysHistory" runat="server">
            <Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartAreaLineGraph">
                    <AxisY Title="Days Remaining" />
                    <AxisX Title="Date" IsLabelAutoFit="True">
                        <LabelStyle Angle="90" Interval="2" />
                    </AxisX>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
    </asp:Panel>

В коде позади:

protected void Page_Load(object sender, EventArgs e)
{
    /* A bunch of code that needs to run */

    if(IsPostback) return;  // return if it is postback

    // On first run build the graph

    IQueryable<int> _users = 
        (metaPlanningDataContext.TasksCurrents.Where(....)).Distinct();

    var s = new Series { 
        ChartType = SeriesChartType.Area, 
        Legend = "Engineer", 
        LegendText = "someName" };
    foreach (DateTime dateTimeKey in someDataSet.Keys)
    {
        s.Points.AddXY(dateTimeKey.ToOADate(), someDataSet[dateTimeKey]);
    }
}

Проблема в том, что при обратной передаче из какого-либо другого элемента управления (Telerik RadGrid) содержимое серии диаграмм исчезает.

Как я могу защитить элемент управления от уничтожения при обратной передаче?

1 Ответ

7 голосов
/ 04 августа 2010

Проблема в том, что после обратной передачи диаграмма не соответствует тому, что было сгенерировано при загрузке страницы?Я думаю, что на графике есть настройка с именем EnableViewState ... вы можете попробовать установить ее на true

<asp:Panel runat="server" ID="PanelRight" CssClass="roadmapRight">
    <asp:Chart ID="ChartRemainingDaysHistory" runat="server" EnableViewState="true">
        <Series>
        </Series>
        <ChartAreas>
            <asp:ChartArea Name="ChartAreaLineGraph">
                <AxisY Title="Days Remaining" />
                <AxisX Title="Date" IsLabelAutoFit="True">
                    <LabelStyle Angle="90" Interval="2" />
                </AxisX>
            </asp:ChartArea>
        </ChartAreas>
    </asp:Chart>
</asp:Panel>

Оставить комментарий, если я на неправильном трамвае ...

...