在PostBacks上保留GridView数据?

时间:2011-04-04 18:12:28

标签: asp.net vb.net persistence

好的,所以这是我的基本ASP.NET页面设置:我有一个带有GridView的页面,里面有ContentTemplates。您可以随时添加行并编辑/删除行。有一个“新建”按钮可以创建一个新行。

所有这些数据都绑定到自定义数据对象。因此,如果我有一个GridView的“People”并且每行都有“FirstName”,“LastName”和“Gender”(使用TextBox和DropDown控件),那么我就有一个“Person”对象,它具有“FirstName”的公共属性,“LastName”等我正确设置了绑定,我可以将数据从对象推送到GridView中,并使用Session变量保存对象。我的页面生命周期结构如下所示:

  • Page_Load:从List(Of Person)
  • 加载Session()
  • 触发任何事件,并修改List(Of Person)
  • 在任何事件之后,List(Of Person)将被保存回Session(),然后是DataBound到GridView(以及任何后续字段也是DataBound,例如DropDownList。

我的问题是:每当我在GridView中填入行,然后添加一个新行(没有任何数据库保存),我的字段就会清除,并且不会在PostBacks中保留。那么,如何在回发中使用数据绑定来保留我的自定义数据对象?

2 个答案:

答案 0 :(得分:1)

在Pre_Init事件中使用自定义数据对象。

将数据保存为ViewState,而不是会话。通过这种方式,您可以确保不会失去会话,从而确保您的工作。

答案 1 :(得分:0)

自己想出来。我只需要处理TextChangedSelectedIndexChanged等事件,然后将新数据保存到我的自定义对象中。现在我考虑一下是有道理的。

感谢大家的帮助。