如何通过回发保存数据?

You*_*sef 9 c# asp.net postback state-management

我正在开发一个ASP.NET/C#网站.

我正在从数据库中读取数据,将其保存在字典中

Dictionary<string, decimal> Results
Run Code Online (Sandbox Code Playgroud)

然后将其绑定到ASP.NET图表

PieChart.Series["Series"].Points.DataBind(Results, "Key", "Value", string.Empty);  
Run Code Online (Sandbox Code Playgroud)

我想在单击按钮时更改Point的标签.

protected void Button_Click(object sender, EventArgs e)
{
    PieChart.Series["Series"].Points[0].Label = "abc"
}
Run Code Online (Sandbox Code Playgroud)

但是当我点击按钮,发生PostBack并且"结果"字典中保存的数据以及图表丢失时出现问题.

有没有办法,在发生回发时不丢失数据而不必再次从数据库中读取?

感谢您的任何帮助.

Pra*_*ana 10

是利用ViewState在回发之间保留数据.

public Dictionary<string, decimal> Results
{ 
  get { return ViewState["Results"]; }
  set { ViewState["Results"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

注意: 检查viewstate的Null值否则会抛出异常或错误