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)的回发中,图表系列内容消失。
如何确保控件不会在回发中被破坏?
答案 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>
如果我在错误的电车上发表评论......