ASP.NET页面控件在页面回发时刷新 - 但我不希望它

时间:2010-08-03 22:19:45

标签: asp.net ajax postback

ASP.NET页面控件在页面回发时刷新 - 但我不希望它。

在我的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 个答案:

答案 0 :(得分:7)

问题是在回发图表之后是不是在页面加载上产生了什么?我认为图表中有一个名为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>

如果我在错误的电车上发表评论......