我的页面中有我的代码:
public partial class Utworz : System.Web.UI.Page
{
private List<Codes> Codes;
protected void Page_Load(object sender, EventArgs e)
{
this.GridView1.DataSource = Codes;
Codes = new List<Codes>();
}
protected void btn_AddKodManually_Click(object sender, EventArgs e)
{
Codes.Add(new Codes(code: this.TextBox1.Text, codeType: this.DropDownList1.SelectedValue));
this.GridView1.DataBind();
}
}
我的页面包含UpdatePanel,其中包含表单。我以这种形式键入数据并添加到GridView。 问题是,每当我调用Click方法时,我的页面都是新建的,而我的变量代码也是。为什么这个变量不能保存他的状态?
答案 0 :(得分:1)
问题#1:每次加载页面时,代码变量都会设置为新对象。它永远不会有多个代码。
问题#2:此处没有任何内容可以将代码列表的值从页面视图保存到页面视图。您需要以某种方式存储它并在每次要重新绑定时检索它。例如,创建一个名为Codes的属性并将值存储在viewstate中。添加新代码后,重新绑定网格。
我知道你可能希望网格保持它的状态,但你每次都要重新绑定一个新对象。其他人可能会在这里发出声响,但您可以通过调用:
来恢复代码对象Codes = this.GridView1.Datasource